{lib, drivers/intel}: Add splash screen footer
This commit introduces the `SPLASH_SCREEN_FOOTER` Kconfig option, enabling a custom footer image or logo on the firmware splash screen. This provides an additional branding opportunity for device manufacturers. `soc_load_logo_by_coreboot()` now conditionally loads and renders `footer_logo.bmp` when this option is enabled. The footer logo is positioned at the bottom of the screen. A new `SPLASH_SCREEN_FOOTER_LOGO_PATH` Kconfig option is added to define the footer logo's file path. It defaults to a mainboard-specific location. `Makefile.mk` is updated to ensure this logo is included in the CBFS. This additional branding is made possible by rendering bitmaps using coreboot's native implementation (`USE_COREBOOT_FOR_BMP_RENDERING`). FSP currently lacks the necessary callbacks to support this feature. Currently, the OEM footer branding will appear even when the system is booting in low-battery mode. A planned update will fix this by exiting early from the boot process, preventing the footer from showing and conserving power. BUG=b:423591644 TEST=Able to display custom footer logo on boot. Change-Id: I57f8af910e8b8f56e8a4a88f8cca6d60fad380b6 Signed-off-by: Subrata Banik <subratabanik@google.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/88029 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Kapil Porwal <kapilporwal@google.com>
This commit is contained in:
parent
be5609bdaf
commit
4373eea5d8
5 changed files with 42 additions and 1 deletions
|
|
@ -179,6 +179,27 @@ void soc_load_logo_by_coreboot(void)
|
|||
copy_logo_to_framebuffer(framebuffer_bar, bytes_per_scanline, blt_buffer_addr, logo_width,
|
||||
logo_height, logo_coords.x, logo_coords.y);
|
||||
|
||||
if (CONFIG(SPLASH_SCREEN_FOOTER)) {
|
||||
bmp_release_logo();
|
||||
logo_ptr = (uintptr_t)bmp_load_logo_by_type(BOOTSPLASH_FOOTER, &logo_ptr_size);
|
||||
if (!logo_ptr || logo_ptr_size < sizeof(efi_bmp_image_header)) {
|
||||
printk(BIOS_ERR, "%s: BMP image (%zu) is less than expected minimum size (%zu).\n",
|
||||
__func__, logo_ptr_size, sizeof(efi_bmp_image_header));
|
||||
return;
|
||||
}
|
||||
|
||||
/* Convert BMP logo to GOP BLT format */
|
||||
fsp_convert_bmp_to_gop_blt(logo_ptr, logo_ptr_size, &blt_buffer_addr, &blt_size,
|
||||
&logo_height, &logo_width, config->panel_orientation);
|
||||
|
||||
logo_coords = calculate_logo_coordinates(horizontal_resolution,
|
||||
vertical_resolution, logo_width, logo_height, FW_SPLASH_VALIGNMENT_BOTTOM);
|
||||
|
||||
/* Copy the logo to the framebuffer */
|
||||
copy_logo_to_framebuffer(framebuffer_bar, bytes_per_scanline, blt_buffer_addr,
|
||||
logo_width, logo_height, logo_coords.x, logo_coords.y);
|
||||
}
|
||||
|
||||
/* Clear temporary Write Combine (WC) MTRR */
|
||||
clear_var_mtrr(temp_mtrr_index);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -10,6 +10,8 @@ enum bootsplash_type {
|
|||
BOOTSPLASH_LOW_BATTERY,
|
||||
/* Indicates a Main OEM defined bootsplash logo for center of the splash screen. */
|
||||
BOOTSPLASH_CENTER,
|
||||
/* Indicates an optional OEM defined bootsplash logo for footer of the splash screen. */
|
||||
BOOTSPLASH_FOOTER,
|
||||
|
||||
/* It's used to determine the total number of bootsplash types. */
|
||||
BOOTSPLASH_MAX_NUM,
|
||||
|
|
|
|||
|
|
@ -254,6 +254,21 @@ config PLATFORM_LOW_BATTERY_INDICATOR_LOGO_PATH
|
|||
default "3rdparty/blobs/mainboard/\$(MAINBOARDDIR)/low_battery.bmp"
|
||||
endif
|
||||
|
||||
config SPLASH_SCREEN_FOOTER
|
||||
bool "Enable custom footer on firmware splash screen"
|
||||
depends on BMP_LOGO
|
||||
help
|
||||
Enable this option to display a custom footer image or logo on the
|
||||
firmware splash screen during the boot process. This provides an
|
||||
additional branding opportunity for device manufacturers, allowing
|
||||
them to display a logo or other graphic at the bottom of the
|
||||
splash screen, complementing the main OEM splash image.
|
||||
|
||||
config SPLASH_SCREEN_FOOTER_LOGO_PATH
|
||||
string "Path to splash screen footer logo file"
|
||||
depends on SPLASH_SCREEN_FOOTER
|
||||
default "3rdparty/blobs/mainboard/\$(MAINBOARDDIR)/logo.bmp"
|
||||
|
||||
endmenu
|
||||
|
||||
config HAVE_EARLY_POWEROFF_SUPPORT
|
||||
|
|
|
|||
|
|
@ -447,3 +447,5 @@ endif
|
|||
|
||||
$(eval $(call add_bmp_logo_file_to_cbfs,CONFIG_PLATFORM_HAS_LOW_BATTERY_INDICATOR, \
|
||||
low_battery.bmp,CONFIG_PLATFORM_LOW_BATTERY_INDICATOR_LOGO_PATH))
|
||||
$(eval $(call add_bmp_logo_file_to_cbfs,CONFIG_SPLASH_SCREEN_FOOTER, \
|
||||
footer_logo.bmp,CONFIG_SPLASH_SCREEN_FOOTER_LOGO_PATH))
|
||||
|
|
|
|||
|
|
@ -12,7 +12,8 @@ static const struct cbmem_entry *logo_entry;
|
|||
/* Mapping of different bootsplash logo name based on bootsplash type */
|
||||
static const char *bootsplash_list[BOOTSPLASH_MAX_NUM] = {
|
||||
[BOOTSPLASH_LOW_BATTERY] = "low_battery.bmp",
|
||||
[BOOTSPLASH_CENTER] = "logo.bmp"
|
||||
[BOOTSPLASH_CENTER] = "logo.bmp",
|
||||
[BOOTSPLASH_FOOTER] = "footer_logo.bmp"
|
||||
};
|
||||
|
||||
/*
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue