From mboxrd@z Thu Jan  1 00:00:00 1970
Received: from smarthost01c.ixn.mail.zen.net.uk (smarthost01c.ixn.mail.zen.net.uk [212.23.1.22])
 by mx.groups.io with SMTP id smtpd.web10.56773.1643756120308387092
 for <devel@edk2.groups.io>;
 Tue, 01 Feb 2022 14:55:20 -0800
Authentication-Results: mx.groups.io;
 dkim=missing; spf=permerror, err=parse error for token &{10 18 sdn.klaviyomail.com}: permanent DNS error (domain: starlabs.systems, ip: 212.23.1.22, mailfrom: sean@starlabs.systems)
Received: from [217.155.46.38] (helo=sean-StarBook.lan)
	by smarthost01c.ixn.mail.zen.net.uk with esmtp (Exim 4.90_1)
	(envelope-from <sean@starlabs.systems>)
	id 1nF23P-00041v-N7; Tue, 01 Feb 2022 22:55:15 +0000
From: "Sean Rhodes" <sean@starlabs.systems>
To: devel@edk2.groups.io
Cc: guo.dong@intel.com,
	Sean Rhodes <sean@starlabs.systems>
Subject: [PATCH] UefiPayloadPkg: Provide option to use Boot Splash
Date: Tue,  1 Feb 2022 22:55:07 +0000
Message-Id: <dc0d6d7175d132b28a2d3ce16cc4373644435793.1643756107.git.sean@starlabs.systems>
X-Mailer: git-send-email 2.32.0
MIME-Version: 1.0
X-Originating-smarthost01c-IP: [217.155.46.38]
Feedback-ID: 217.155.46.38
Content-Transfer-Encoding: quoted-printable

Provide a build option to use a Boot Splash logo.

Signed-off-by: Sean Rhodes <sean@starlabs.systems>
---
 .../Library/PlatformBootManagerLib/PlatformBootManager.c | 5 +++++
 .../PlatformBootManagerLib/PlatformBootManagerLib.inf    | 2 ++
 UefiPayloadPkg/UefiPayloadPkg.dec                        | 3 +++
 UefiPayloadPkg/UefiPayloadPkg.dsc                        | 9 +++++++++
 UefiPayloadPkg/UefiPayloadPkg.fdf                        | 3 +++
 5 files changed, 22 insertions(+)

diff --git a/UefiPayloadPkg/Library/PlatformBootManagerLib/PlatformBootMana=
ger.c b/UefiPayloadPkg/Library/PlatformBootManagerLib/PlatformBootManager.c
index a8ead775ea..3bded489ef 100644
--- a/UefiPayloadPkg/Library/PlatformBootManagerLib/PlatformBootManager.c
+++ b/UefiPayloadPkg/Library/PlatformBootManagerLib/PlatformBootManager.c
@@ -243,6 +243,11 @@ PlatformBootManagerAfterConsole (
   Black.Blue =3D Black.Green =3D Black.Red =3D Black.Reserved =3D 0;=0D
   White.Blue =3D White.Green =3D White.Red =3D White.Reserved =3D 0xFF;=0D
 =0D
+  if (FixedPcdGetBool (PcdBootSplashImage)) {=0D
+    gST->ConOut->ClearScreen (gST->ConOut);=0D
+    BootLogoEnableLogo ();=0D
+  }=0D
+=0D
   EfiBootManagerConnectAll ();=0D
   EfiBootManagerRefreshAllBootOption ();=0D
 =0D
diff --git a/UefiPayloadPkg/Library/PlatformBootManagerLib/PlatformBootMana=
gerLib.inf b/UefiPayloadPkg/Library/PlatformBootManagerLib/PlatformBootMana=
gerLib.inf
index 9c4a9da943..306bd33b7a 100644
--- a/UefiPayloadPkg/Library/PlatformBootManagerLib/PlatformBootManagerLib.=
inf
+++ b/UefiPayloadPkg/Library/PlatformBootManagerLib/PlatformBootManagerLib.=
inf
@@ -39,6 +39,7 @@
   UefiRuntimeServicesTableLib=0D
   UefiLib=0D
   UefiBootManagerLib=0D
+  BootLogoLib=0D
   PcdLib=0D
   DxeServicesLib=0D
   MemoryAllocationLib=0D
@@ -73,3 +74,4 @@
   gEfiMdePkgTokenSpaceGuid.PcdUartDefaultParity=0D
   gEfiMdePkgTokenSpaceGuid.PcdUartDefaultStopBits=0D
   gEfiMdeModulePkgTokenSpaceGuid.PcdBootManagerMenuFile=0D
+  gUefiPayloadPkgTokenSpaceGuid.PcdBootSplashImage=0D
diff --git a/UefiPayloadPkg/UefiPayloadPkg.dec b/UefiPayloadPkg/UefiPayload=
Pkg.dec
index 551f0a4915..4f5756d575 100644
--- a/UefiPayloadPkg/UefiPayloadPkg.dec
+++ b/UefiPayloadPkg/UefiPayloadPkg.dec
@@ -83,6 +83,9 @@ gUefiPayloadPkgTokenSpaceGuid.PcdSystemMemoryUefiRegionSi=
ze|0x04000000|UINT32|0x
 =0D
 gUefiPayloadPkgTokenSpaceGuid.PcdPcdDriverFile|{ 0x57, 0x72, 0xcf, 0x80, 0=
xab, 0x87, 0xf9, 0x47, 0xa3, 0xfe, 0xD5, 0x0B, 0x76, 0xd8, 0x95, 0x41 }|VOI=
D*|0x00000018=0D
 =0D
+# BootSplash Image=0D
+gUefiPayloadPkgTokenSpaceGuid.PcdBootSplashImage|TRUE|BOOLEAN|0x00000021=0D
+=0D
 ## FFS filename to find the default variable initial data file.=0D
 # @Prompt FFS Name of variable initial data file=0D
  gUefiPayloadPkgTokenSpaceGuid.PcdNvsDataFile |{ 0x1a, 0xf1, 0xb1, 0xae, 0=
x42, 0xcc, 0xcf, 0x4e, 0xac, 0x60, 0xdb, 0xab, 0xf6, 0xca, 0x69, 0xe6 }|VOI=
D*|0x00000025=0D
diff --git a/UefiPayloadPkg/UefiPayloadPkg.dsc b/UefiPayloadPkg/UefiPayload=
Pkg.dsc
index 1ce96a51c1..700ac02395 100644
--- a/UefiPayloadPkg/UefiPayloadPkg.dsc
+++ b/UefiPayloadPkg/UefiPayloadPkg.dsc
@@ -33,6 +33,7 @@
   DEFINE UNIVERSAL_PAYLOAD            =3D FALSE=0D
   DEFINE SECURITY_STUB_ENABLE         =3D TRUE=0D
   DEFINE SMM_SUPPORT                  =3D FALSE=0D
+  DEFINE BOOTSPLASH_IMAGE             =3D FALSE=0D
   #=0D
   # SBL:      UEFI payload for Slim Bootloader=0D
   # COREBOOT: UEFI payload for coreboot=0D
@@ -209,6 +210,9 @@
   CapsuleLib|MdeModulePkg/Library/DxeCapsuleLibNull/DxeCapsuleLibNull.inf=
=0D
   SecurityManagementLib|MdeModulePkg/Library/DxeSecurityManagementLib/DxeS=
ecurityManagementLib.inf=0D
   UefiBootManagerLib|MdeModulePkg/Library/UefiBootManagerLib/UefiBootManag=
erLib.inf=0D
+!if $(BOOTSPLASH_IMAGE) =3D=3D TRUE=0D
+  BootLogoLib|MdeModulePkg/Library/BootLogoLib/BootLogoLib.inf=0D
+!endif=0D
   CustomizedDisplayLib|MdeModulePkg/Library/CustomizedDisplayLib/Customize=
dDisplayLib.inf=0D
   FrameBufferBltLib|MdeModulePkg/Library/FrameBufferBltLib/FrameBufferBltL=
ib.inf=0D
 =0D
@@ -399,6 +403,8 @@
   gEfiMdePkgTokenSpaceGuid.PcdPerformanceLibraryPropertyMask       | 0x1=0D
 !endif=0D
 =0D
+  gUefiPayloadPkgTokenSpaceGuid.PcdBootSplashImage|$(BOOTSPLASH_IMAGE)=0D
+=0D
 [PcdsPatchableInModule.X64]=0D
   gPcAtChipsetPkgTokenSpaceGuid.PcdRtcIndexRegister|$(RTC_INDEX_REGISTER)=
=0D
   gPcAtChipsetPkgTokenSpaceGuid.PcdRtcTargetRegister|$(RTC_TARGET_REGISTER=
)=0D
@@ -545,6 +551,9 @@
 !endif=0D
   UefiCpuPkg/CpuDxe/CpuDxe.inf=0D
   MdeModulePkg/Universal/BdsDxe/BdsDxe.inf=0D
+!if $(BOOTSPLASH_IMAGE) =3D=3D TRUE=0D
+  MdeModulePkg/Logo/LogoDxe.inf=0D
+!endif=0D
   MdeModulePkg/Application/UiApp/UiApp.inf {=0D
     <LibraryClasses>=0D
       NULL|MdeModulePkg/Library/DeviceManagerUiLib/DeviceManagerUiLib.inf=
=0D
diff --git a/UefiPayloadPkg/UefiPayloadPkg.fdf b/UefiPayloadPkg/UefiPayload=
Pkg.fdf
index c7b04978ad..a71d655687 100644
--- a/UefiPayloadPkg/UefiPayloadPkg.fdf
+++ b/UefiPayloadPkg/UefiPayloadPkg.fdf
@@ -158,6 +158,9 @@ INF MdeModulePkg/Universal/EbcDxe/EbcDxe.inf
 INF UefiPayloadPkg/BlSupportDxe/BlSupportDxe.inf=0D
 =0D
 INF MdeModulePkg/Universal/SmbiosDxe/SmbiosDxe.inf=0D
+!if $(BOOTSPLASH_IMAGE) =3D=3D TRUE=0D
+INF MdeModulePkg/Logo/LogoDxe.inf=0D
+!endif=0D
 #=0D
 # PCI Support=0D
 #=0D
--=20
2.32.0