vc/google: Show different logos for different ChromeOS devices

This commit adds support for showing different logos on the ChromeOS
firmware splash screen based on the device model (between
Chromebook-Plus and regular ChromeOS devices like Chromebook and
Chromebox). This allows OEMs to customize the branding on their
devices.

This patch also introduces three new Kconfigs:
 - CHROMEOS_FW_SPLASH_SCREEN
 - CHROMEOS_LOGO_PATH
 - CHROMEBOOK_PLUS_LOGO_PATH
which allow users to enable the fw splash screen feature in the
vendorcode. Previously, we were using the BMP_LOGO Kconfig in
drivers/intel/fsp2_0, but we didn't want the top level Kconfigs to be
located inside the architecture specific files.

BUG=b:317880956
BRANCH=None
TEST=emerge-rex coreboot chromeos-bootimage
     verify that FW splash screen appears

Change-Id: I56613d1e7e81e25b31ad034edae0f716c94c4960
Signed-off-by: Shelley Chen <shchen@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/79775
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Julius Werner <jwerner@chromium.org>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
This commit is contained in:
Shelley Chen
2024-01-03 14:00:07 -08:00
committed by Subrata Banik
parent 4f24c354ea
commit fddf9162a3
7 changed files with 67 additions and 2 deletions

View File

@ -79,5 +79,28 @@ config CHROMEOS_NVS
bool
depends on ACPI_SOC_NVS
config CHROMEOS_FW_SPLASH_SCREEN
bool "Display Splash Screen in firmware"
default n
select BMP_LOGO
select HAVE_CUSTOM_BMP_LOGO
help
Select this option to display the manufacturer's logo or
custom image (OEM splash screen) early in the boot process.
This can enhance the user experience by providing visual
feedback while the system starts up. For example, ChromeOS
devices use this option to show their logo before the operating
system loads.
config CHROMEOS_LOGO_PATH
string "Path to ChromeOS logo file"
depends on CHROMEOS_FW_SPLASH_SCREEN
default "3rdparty/blobs/mainboard/\$(MAINBOARDDIR)/logo.bmp"
config CHROMEBOOK_PLUS_LOGO_PATH
string "Path to Chromebook Plus logo file"
depends on CHROMEOS_FW_SPLASH_SCREEN
default "3rdparty/blobs/mainboard/\$(MAINBOARDDIR)/logo.bmp"
endif # CHROMEOS
endmenu

View File

@ -20,3 +20,15 @@ romstage-y += watchdog.c
ramstage-y += watchdog.c
romstage-$(CONFIG_CHROMEOS_DRAM_PART_NUMBER_IN_CBI) += dram_part_num_override.c
ramstage-$(CONFIG_CHROMEOS_FW_SPLASH_SCREEN) += splash.c
# Add logo to the cbfs image
cbfs-files-$(CONFIG_CHROMEOS_FW_SPLASH_SCREEN) += cb_logo.bmp
cb_logo.bmp-file := $(call strip_quotes,$(CONFIG_CHROMEOS_LOGO_PATH))
cb_logo.bmp-type := raw
cb_logo.bmp-compression := $(CBFS_COMPRESS_FLAG)
cbfs-files-$(CONFIG_CHROMEOS_FW_SPLASH_SCREEN) += cb_plus_logo.bmp
cb_plus_logo.bmp-file := $(call strip_quotes,$(CONFIG_CHROMEBOOK_PLUS_LOGO_PATH))
cb_plus_logo.bmp-type := raw
cb_plus_logo.bmp-compression := $(CBFS_COMPRESS_FLAG)

View File

@ -0,0 +1,12 @@
/* SPDX-License-Identifier: GPL-2.0-only */
#include <bootsplash.h>
#include <vendorcode/google/chromeos/chromeos.h>
const char *bmp_logo_filename(void)
{
if (chromeos_device_branded_plus())
return "cb_plus_logo.bmp";
else
return "cb_logo.bmp";
}