lib/coreboot_table: Show splashscreen in lb_table_init
Every vga init implementation needs to cache the framebuffer state
to be able to fill the lb_framebuffer struct later on in the
fill_lb_framebuffer call. Showing the bootsplash afterwards
guarantees to have the same interface into all the vga drivers.
This is by far from ideal, as it only allows for a single driver at
compile-time and should be adapted in the future.
It was tested on the wip razer blade stealth using vgabios @ 1280x1024
and also in Qemu @ 1280x1024.
By default the qemu framebuffer will be initialized in 800x600@32.
This can be overwriten by configuration by setting
CONFIG_DRIVERS_EMULATION_QEMU_BOCHS_{X,Y}RES .
Change-Id: I4bec06d22423627e8f429c4b47e0dc9920f1464e
Signed-off-by: Johanna Schander <coreboot@mimoja.de>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/34599
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Nico Huber <nico.h@gmx.de>
			
			
This commit is contained in:
		
				
					committed by
					
						 Nico Huber
						Nico Huber
					
				
			
			
				
	
			
			
			
						parent
						
							bfb0c2d543
						
					
				
				
					commit
					c544a85d2a
				
			| @@ -21,22 +21,6 @@ | ||||
|  | ||||
| #include "jpeg.h" | ||||
|  | ||||
| void set_vesa_bootsplash(void) | ||||
| { | ||||
| 	const vbe_mode_info_t *mode_info = vbe_mode_info(); | ||||
| 	if (mode_info != NULL) { | ||||
| 		unsigned int x_resolution = le16_to_cpu(mode_info->vesa.x_resolution); | ||||
| 		unsigned int y_resolution = le16_to_cpu(mode_info->vesa.y_resolution); | ||||
| 		unsigned int fb_resolution = mode_info->vesa.bits_per_pixel; | ||||
| 		unsigned char *framebuffer = | ||||
| 			(unsigned char *)le32_to_cpu(mode_info->vesa.phys_base_ptr); | ||||
|  | ||||
| 		set_bootsplash(framebuffer, x_resolution, y_resolution, fb_resolution); | ||||
| 	} else { | ||||
| 		printk(BIOS_ERR, "VBE modeinfo invalid\n"); | ||||
| 	} | ||||
| } | ||||
|  | ||||
|  | ||||
| void set_bootsplash(unsigned char *framebuffer, unsigned int x_resolution, | ||||
| 		    unsigned int y_resolution, unsigned int fb_resolution) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user