Attention is currently required from: Eran Mitrani, Jakub Czapiga, Kapil Porwal, Tarun Tuli.
Subrata Banik has uploaded this change for review. ( https://review.coreboot.org/c/coreboot/+/76922?usp=email )
Change subject: soc/intel/meteorlake: Add provision to show pre-boot splash screen ......................................................................
soc/intel/meteorlake: Add provision to show pre-boot splash screen
This patch adds the ability to show a pre-boot splash screen on Meteor Lake systems using FSP-S.
The patch calls into `fsp_convert_bmp_to_gop_blt()` when the `BMP_LOGO_TO_GOP_BLT` config is enabled. This function converts a BMP file to a BLT buffer, which is then used by FSP-S to render the splash screen.
Additionally, increase the heap size (malloc'able size) upto 512KB (when BMP_LOGO_TO_GOP_BLT config is enabled) to accommodate high resolution logo file.
BUG=b:284799726 TEST=Able to see pre-boot splash screen while booting google/rex.
Signed-off-by: Subrata Banik subratabanik@google.com Change-Id: I3608bfacc21574e12cde0e2012a16e6388ce54df --- M src/soc/intel/meteorlake/Kconfig M src/soc/intel/meteorlake/fsp_params.c 2 files changed, 11 insertions(+), 1 deletion(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/22/76922/1
diff --git a/src/soc/intel/meteorlake/Kconfig b/src/soc/intel/meteorlake/Kconfig index 2eb1405..90d6645 100644 --- a/src/soc/intel/meteorlake/Kconfig +++ b/src/soc/intel/meteorlake/Kconfig @@ -186,6 +186,7 @@
config HEAP_SIZE hex + default 0x80000 if BMP_LOGO_TO_GOP_BLT default 0x10000
# Intel recommends reserving the PCIe TBT root port resources as below: diff --git a/src/soc/intel/meteorlake/fsp_params.c b/src/soc/intel/meteorlake/fsp_params.c index 30800e6..72d9479 100644 --- a/src/soc/intel/meteorlake/fsp_params.c +++ b/src/soc/intel/meteorlake/fsp_params.c @@ -10,6 +10,7 @@ #include <device/pci.h> #include <fsp/api.h> #include <fsp/fsp_debug_event.h> +#include <fsp/fsp_gop_blt.h> #include <fsp/ppi/mp_service_ppi.h> #include <fsp/util.h> #include <option.h> @@ -859,5 +860,13 @@ /* Handle FSP logo params */ void soc_load_logo(FSPS_UPD *supd) { - bmp_load_logo(&supd->FspsConfig.LogoPtr, &supd->FspsConfig.LogoSize); + if (CONFIG(BMP_LOGO_TO_GOP_BLT)) + fsp_convert_bmp_to_gop_blt(&supd->FspsConfig.LogoPtr, + &supd->FspsConfig.LogoSize, + &supd->FspsConfig.BltBufferAddress, + &supd->FspsConfig.BltBufferSize, + &supd->FspsConfig.LogoPixelHeight, + &supd->FspsConfig.LogoPixelWidth); + else + bmp_load_logo(&supd->FspsConfig.LogoPtr, &supd->FspsConfig.LogoSize); }