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` 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 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
Reviewed-on: https://review.coreboot.org/c/coreboot/+/76922
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Nick Vaccaro <nvaccaro@google.com>
This commit is contained in:
Subrata Banik 2023-08-03 10:26:21 +00:00 committed by Felix Held
parent 7bc92f03a6
commit 71a2a3d8fc
2 changed files with 8 additions and 1 deletions

View File

@ -187,6 +187,7 @@ config IED_REGION_SIZE
config HEAP_SIZE
hex
default 0x80000 if BMP_LOGO
default 0x10000
# Intel recommends reserving the PCIe TBT root port resources as below:

View File

@ -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>
@ -868,5 +869,10 @@ __weak void mainboard_silicon_init_params(FSP_S_CONFIG *s_cfg)
/* Handle FSP logo params */
void soc_load_logo(FSPS_UPD *supd)
{
bmp_load_logo(&supd->FspsConfig.LogoPtr, &supd->FspsConfig.LogoSize);
fsp_convert_bmp_to_gop_blt(&supd->FspsConfig.LogoPtr,
&supd->FspsConfig.LogoSize,
&supd->FspsConfig.BltBufferAddress,
&supd->FspsConfig.BltBufferSize,
&supd->FspsConfig.LogoPixelHeight,
&supd->FspsConfig.LogoPixelWidth);
}