diff options
author | Shelley Chen <shchen@google.com> | 2024-01-03 14:00:07 -0800 |
---|---|---|
committer | Subrata Banik <subratabanik@google.com> | 2024-01-11 03:54:42 +0000 |
commit | fddf9162a3f82ab6da5b29d3bf88b1d46b04f56d (patch) | |
tree | e97aed9aaf84b0a974b2bd201c0bb85f86bc9371 /src/vendorcode | |
parent | 4f24c354eafa4ec6654df40c896ce2a5f32b5587 (diff) |
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>
Diffstat (limited to 'src/vendorcode')
-rw-r--r-- | src/vendorcode/google/chromeos/Kconfig | 23 | ||||
-rw-r--r-- | src/vendorcode/google/chromeos/Makefile.inc | 12 | ||||
-rw-r--r-- | src/vendorcode/google/chromeos/splash.c | 12 |
3 files changed, 47 insertions, 0 deletions
diff --git a/src/vendorcode/google/chromeos/Kconfig b/src/vendorcode/google/chromeos/Kconfig index 09796527a1..74f23d60ac 100644 --- a/src/vendorcode/google/chromeos/Kconfig +++ b/src/vendorcode/google/chromeos/Kconfig @@ -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 diff --git a/src/vendorcode/google/chromeos/Makefile.inc b/src/vendorcode/google/chromeos/Makefile.inc index dce4d9ccf1..af37a0981e 100644 --- a/src/vendorcode/google/chromeos/Makefile.inc +++ b/src/vendorcode/google/chromeos/Makefile.inc @@ -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) diff --git a/src/vendorcode/google/chromeos/splash.c b/src/vendorcode/google/chromeos/splash.c new file mode 100644 index 0000000000..3532fb8f5a --- /dev/null +++ b/src/vendorcode/google/chromeos/splash.c @@ -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"; +} |