Comments should be wrapped with blank comment lines, so comments like
  // Determine BGRT display offsets
Should be
  //
  // Determine BGRT display offsets
  //
There are at least 4 instances to be corrected in Logo.c
And some in BoardBootManager.c

// MinPlatform has the FSP draw the logo.
Please make the comment more generic as it really could be implemented many 
ways and we wouldn't want to be overly specific here, for example if the 
features is used by a bootloader without FSP support.  There shouldn't be 
anything that ties this to FSP as far as I can see.

Please update the Readme.md removing JPEG comments and updating for new 
behaviors.

Please remove AspireVn7Dash572G use of PcdJpgEnable as this results in a build 
error for that board.

Otherwise, looks good to me.

Regards,
Isaac

-----Original Message-----
From: Benjamin Doron <benjamin.doro...@gmail.com> 
Sent: Monday, July 25, 2022 10:12 AM
To: devel@edk2.groups.io
Cc: Chaganty, Rangasai V <rangasai.v.chaga...@intel.com>; Oram, Isaac W 
<isaac.w.o...@intel.com>; Desimone, Nathaniel L 
<nathaniel.l.desim...@intel.com>; Sinha, Ankit <ankit.si...@intel.com>; Dong, 
Eric <eric.d...@intel.com>; Bi, Dandan <dandan...@intel.com>; Gao, Liming 
<gaolim...@byosoft.com.cn>
Subject: [PATCH v1 3/3] LogoFeaturePkg,BoardModulePkg: Set existing logo as BGRT

In MinPlatform, FSP-S displays the logo to the user early. However, this means 
that no BGRT is written either. To reduce duplication in the flash image, a new 
LogoDxe will set this BMP as the BGRT buffer. The previous LogoDxe drivers 
here, along with a BootLogoEnableLogo() patch to BDS libraries, would begin 
displaying the Intel logo over the board FDF's choice - presently, these are 
the TianoCore logo.

Also begin using BootLogoUpdateProgress().

Tested on KabylakeOpenBoardPkg, the boot logo becomes also a BGRT logo.

A follow-up patch can be considered to set all platforms to use Intel's logo.

Cc: Sai Chaganty <rangasai.v.chaga...@intel.com>
Cc: Isaac Oram <isaac.w.o...@intel.com>
Cc: Nate DeSimone <nathaniel.l.desim...@intel.com>
Cc: Ankit Sinha <ankit.si...@intel.com>
Cc: Eric Dong <eric.d...@intel.com>
Cc: Dandan Bi <dandan...@intel.com>
Cc: Liming Gao <gaolim...@byosoft.com.cn>
Signed-off-by: Benjamin Doron <benjamin.doro...@gmail.com>
---
 Features/Intel/AdvancedFeaturePkg/Include/AdvancedFeaturesPcd.dsc              
   |   8 -
 Features/Intel/UserInterface/LogoFeaturePkg/Include/LogoFeature.dsc            
   |   6 +-
 Features/Intel/UserInterface/LogoFeaturePkg/Include/PostMemory.fdf             
   |   6 +-
 Features/Intel/UserInterface/LogoFeaturePkg/LogoDxe/JpegLogo.idf               
   |  10 --
 Features/Intel/UserInterface/LogoFeaturePkg/LogoDxe/JpegLogoDxe.inf            
   |  52 ------
 Features/Intel/UserInterface/LogoFeaturePkg/LogoDxe/Logo.c                     
   | 183 +++++++-------------
 Features/Intel/UserInterface/LogoFeaturePkg/LogoDxe/Logo.idf                   
   |  10 --
 Features/Intel/UserInterface/LogoFeaturePkg/LogoDxe/Logo.jpg                   
   | Bin 9741 -> 0 bytes
 Features/Intel/UserInterface/LogoFeaturePkg/LogoDxe/LogoDxe.inf                
   |  24 ++-
 Features/Intel/UserInterface/LogoFeaturePkg/LogoFeaturePkg.dec                 
   |   2 +-
 Features/Intel/UserInterface/LogoFeaturePkg/LogoFeaturePkg.dsc                 
   |   3 -
 Platform/Intel/BoardModulePkg/Library/BoardBdsHookLib/BoardBdsHookLib.c        
   |   3 +-
 Platform/Intel/BoardModulePkg/Library/BoardBdsHookLib/BoardBdsHookLib.inf      
   |   1 +
 Platform/Intel/BoardModulePkg/Library/BoardBootManagerLib/BoardBootManager.c   
   |  31 ++++
 
Platform/Intel/BoardModulePkg/Library/BoardBootManagerLib/BoardBootManagerLib.inf
 |   5 +
 Platform/Intel/MinPlatformPkg/Include/Dsc/CoreCommonLib.dsc                    
   |   1 +
 16 files changed, 120 insertions(+), 225 deletions(-)

diff --git a/Features/Intel/AdvancedFeaturePkg/Include/AdvancedFeaturesPcd.dsc 
b/Features/Intel/AdvancedFeaturePkg/Include/AdvancedFeaturesPcd.dsc
index 5365f0a1b844..da663f5c833f 100644
--- a/Features/Intel/AdvancedFeaturePkg/Include/AdvancedFeaturesPcd.dsc
+++ b/Features/Intel/AdvancedFeaturePkg/Include/AdvancedFeaturesPcd.dsc
@@ -77,11 +77,3 @@
   gUserAuthFeaturePkgTokenSpaceGuid.PcdUserAuthenticationFeatureEnable      
|FALSE   gUserAuthFeaturePkgTokenSpaceGuid.PcdUseVersion1                       
   |FALSE   
gVirtualKeyboardFeaturePkgTokenSpaceGuid.PcdVirtualKeyboardFeatureEnable  
|FALSE--#-# There seems to be some build parsing odd behavior that requires 
this PCD to be specified even though-# the *.fdf that consumes it is dependent 
on the feature flag.-# This section is to ensure that boards have these PCD 
instantiated.-#-[PcdsFeatureFlag]-  gLogoFeaturePkgTokenSpaceGuid.PcdJpgEnable  
                            |FALSEdiff --git 
a/Features/Intel/UserInterface/LogoFeaturePkg/Include/LogoFeature.dsc 
b/Features/Intel/UserInterface/LogoFeaturePkg/Include/LogoFeature.dsc
index 0acce1c7dfaf..3e990a84f8ec 100644
--- a/Features/Intel/UserInterface/LogoFeaturePkg/Include/LogoFeature.dsc
+++ b/Features/Intel/UserInterface/LogoFeaturePkg/Include/LogoFeature.ds
+++ c
@@ -47,8 +47,4 @@
 # @todo: Change below line to [Components.$(DXE_ARCH)] after 
https://bugzilla.tianocore.org/show_bug.cgi?id=2308 #        is completed. 
[Components.X64]-  !if gLogoFeaturePkgTokenSpaceGuid.PcdJpgEnable == TRUE-    
LogoFeaturePkg/LogoDxe/JpegLogoDxe.inf-  !else-    
LogoFeaturePkg/LogoDxe/LogoDxe.inf-  !endif+  
LogoFeaturePkg/LogoDxe/LogoDxe.infdiff --git 
a/Features/Intel/UserInterface/LogoFeaturePkg/Include/PostMemory.fdf 
b/Features/Intel/UserInterface/LogoFeaturePkg/Include/PostMemory.fdf
index fead9f3b0298..f8e368434f72 100644
--- a/Features/Intel/UserInterface/LogoFeaturePkg/Include/PostMemory.fdf
+++ b/Features/Intel/UserInterface/LogoFeaturePkg/Include/PostMemory.fdf
@@ -6,8 +6,4 @@
 # SPDX-License-Identifier: BSD-2-Clause-Patent # ##-!if 
gLogoFeaturePkgTokenSpaceGuid.PcdJpgEnable == TRUE-  INF 
LogoFeaturePkg/LogoDxe/JpegLogoDxe.inf-!else-  INF 
LogoFeaturePkg/LogoDxe/LogoDxe.inf-!endif+INF 
LogoFeaturePkg/LogoDxe/LogoDxe.infdiff --git 
a/Features/Intel/UserInterface/LogoFeaturePkg/LogoDxe/JpegLogo.idf 
b/Features/Intel/UserInterface/LogoFeaturePkg/LogoDxe/JpegLogo.idf
deleted file mode 100644
index a39500e043e3..000000000000
--- a/Features/Intel/UserInterface/LogoFeaturePkg/LogoDxe/JpegLogo.idf
+++ /dev/null
@@ -1,10 +0,0 @@
-// /** @file-// Platform Logo image definition file.-//-// Copyright (c) 2020, 
Intel Corporation. All rights reserved.<BR>-//-// SPDX-License-Identifier: 
BSD-2-Clause-Patent-//-// **/--#image IMG_LOGO Logo.jpgdiff --git 
a/Features/Intel/UserInterface/LogoFeaturePkg/LogoDxe/JpegLogoDxe.inf 
b/Features/Intel/UserInterface/LogoFeaturePkg/LogoDxe/JpegLogoDxe.inf
deleted file mode 100644
index 47f1672a4c07..000000000000
--- a/Features/Intel/UserInterface/LogoFeaturePkg/LogoDxe/JpegLogoDxe.inf
+++ /dev/null
@@ -1,52 +0,0 @@
-## @file-#  The default logo JPEG picture shown on setup screen.-#-#  
Copyright (c) 2020, Intel Corporation. All rights reserved.<BR>-#-#  
SPDX-License-Identifier: BSD-2-Clause-Patent-#-#-##--[Defines]-  INF_VERSION    
                = 0x00010005-  BASE_NAME                      = JpegLogoDxe-  
FILE_GUID                      = 319CFE1D-8F15-4A7A-BF40-EECA953D87EF-  
MODULE_TYPE                    = DXE_DRIVER-  VERSION_STRING                 = 
1.0--  ENTRY_POINT                    = InitializeLogo-#-#  This flag specifies 
whether HII resource section is generated into PE image.-#-  
UEFI_HII_RESOURCE_SECTION      = TRUE--#-# The following information is for 
reference only and not required by the build tools.-#-#  VALID_ARCHITECTURES    
       = IA32 X64-#--[Sources]-  Logo.jpg-  Logo.c-  JpegLogo.idf--[Packages]-  
MdePkg/MdePkg.dec-  MdeModulePkg/MdeModulePkg.dec--[LibraryClasses]-  
UefiBootServicesTableLib-  UefiDriverEntryPoint-  DebugLib--[Protocols]-  
gEfiHiiDatabaseProtocolGuid        ## CONSUMES-  gEfiHiiImageExProtocolGuid     
    ## CONSUMES-  gEfiHiiPackageListProtocolGuid     ## PRODUCES CONSUMES-  
gEdkiiPlatformLogoProtocolGuid     ## PRODUCES--[Depex]-  
gEfiHiiDatabaseProtocolGuid AND-  gEfiHiiImageExProtocolGuiddiff --git 
a/Features/Intel/UserInterface/LogoFeaturePkg/LogoDxe/Logo.c 
b/Features/Intel/UserInterface/LogoFeaturePkg/LogoDxe/Logo.c
index a636b086caf6..29b913c5bda5 100644
--- a/Features/Intel/UserInterface/LogoFeaturePkg/LogoDxe/Logo.c
+++ b/Features/Intel/UserInterface/LogoFeaturePkg/LogoDxe/Logo.c
@@ -6,88 +6,26 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
  **/ #include <Uefi.h>-#include <Protocol/HiiDatabase.h>-#include 
<Protocol/GraphicsOutput.h>-#include <Protocol/HiiImageEx.h>-#include 
<Protocol/PlatformLogo.h>-#include <Protocol/HiiPackageList.h> #include 
<Library/UefiBootServicesTableLib.h> #include <Library/DebugLib.h>--typedef 
struct {-  EFI_IMAGE_ID                          ImageId;-  
EDKII_PLATFORM_LOGO_DISPLAY_ATTRIBUTE Attribute;-  INTN                         
         OffsetX;-  INTN                                  OffsetY;-} 
LOGO_ENTRY;--EFI_HII_IMAGE_EX_PROTOCOL *mHiiImageEx;-EFI_HII_HANDLE            
mHiiHandle;-LOGO_ENTRY                mLogos[] = {-  {-    IMAGE_TOKEN 
(IMG_LOGO),-    EdkiiPlatformLogoDisplayAttributeCenter,-    0,-    0-  
}-};--/**-  Load a platform logo image and return its data and attributes.--  
@param This              The pointer to this protocol instance.-  @param 
Instance          The visible image instance is found.-  @param Image           
  Points to the image.-  @param Attribute         The display attributes of the 
image returned.-  @param OffsetX           The X offset of the image regarding 
the Attribute.-  @param OffsetY           The Y offset of the image regarding 
the Attribute.--  @retval EFI_SUCCESS      The image was fetched successfully.- 
 @retval EFI_NOT_FOUND    The specified image could not be 
found.-**/-EFI_STATUS-EFIAPI-GetImage (-  IN     EDKII_PLATFORM_LOGO_PROTOCOL   
       *This,-  IN OUT UINT32                                *Instance,-     
OUT EFI_IMAGE_INPUT                       *Image,-     OUT 
EDKII_PLATFORM_LOGO_DISPLAY_ATTRIBUTE *Attribute,-     OUT INTN                 
                 *OffsetX,-     OUT INTN                                  
*OffsetY-  )-{-  UINT32 Current;-  if (Instance == NULL || Image == NULL ||-    
  Attribute == NULL || OffsetX == NULL || OffsetY == NULL) {-    return 
EFI_INVALID_PARAMETER;-  }--  Current = *Instance;-  if (Current >= ARRAY_SIZE 
(mLogos)) {-    return EFI_NOT_FOUND;-  }--  (*Instance)++;-  *Attribute = 
mLogos[Current].Attribute;-  *OffsetX   = mLogos[Current].OffsetX;-  *OffsetY   
= mLogos[Current].OffsetY;-  return mHiiImageEx->GetImageEx (mHiiImageEx, 
mHiiHandle, mLogos[Current].ImageId, Image);-}--EDKII_PLATFORM_LOGO_PROTOCOL 
mPlatformLogo = {-  GetImage-};+#include <Library/BmpSupportLib.h>+#include 
<Library/DxeServicesLib.h>+#include <Library/MemoryAllocationLib.h>+#include 
<Protocol/BootLogo2.h>+#include <Protocol/GraphicsOutput.h>  /**   Entrypoint 
of this module. -  This function is the entrypoint of this module. It installs 
the Edkii-  Platform Logo protocol.+  This function is the entrypoint of this 
module. It prepares the BGRT+  blit-buffer.    @param  ImageHandle       The 
firmware allocated handle for the EFI image.   @param  SystemTable       A 
pointer to the EFI System Table.    @retval EFI_SUCCESS       The entry point 
is executed successfully.+  @retval EFI_UNSUPPORTED   A dependency is 
unavailable.+  @retval EFI_NOT_FOUND     Failed to find the logo.  **/ 
EFI_STATUS@@ -97,57 +35,70 @@ InitializeLogo (
   IN EFI_SYSTEM_TABLE         *SystemTable   ) {-  EFI_STATUS                  
Status;-  EFI_HII_PACKAGE_LIST_HEADER *PackageList;-  EFI_HII_DATABASE_PROTOCOL 
  *HiiDatabase;-  EFI_HANDLE                  Handle;--  Status = 
gBS->LocateProtocol (-                  &gEfiHiiDatabaseProtocolGuid,-          
        NULL,-                  (VOID **) &HiiDatabase-                  );-  
ASSERT_EFI_ERROR (Status);--  Status = gBS->LocateProtocol (-                  
&gEfiHiiImageExProtocolGuid,-                  NULL,-                  (VOID 
**) &mHiiImageEx-                  );-  ASSERT_EFI_ERROR (Status);+  EFI_STATUS 
                    Status;+  EDKII_BOOT_LOGO2_PROTOCOL      *BootLogo2;+  
EFI_GRAPHICS_OUTPUT_PROTOCOL   *GraphicsOutput;+  UINT32                        
 SizeOfX;+  UINT32                         SizeOfY;+  VOID                      
     *BmpAddress;+  UINTN                          BmpSize;+  
EFI_GRAPHICS_OUTPUT_BLT_PIXEL  *Blt;+  UINTN                          BltSize;+ 
 UINTN                          Height;+  UINTN                          
Width;+  INTN                           DestX;+  INTN                           
DestY;    //-  // Retrieve HII package list from ImageHandle+  // MinPlatform 
has the FSP draw the logo.+  // Build a blit-buffer for a bitmap here and set 
it for a BGRT.   //-  Status = gBS->OpenProtocol (-                  
ImageHandle,-                  &gEfiHiiPackageListProtocolGuid,-                
  (VOID **) &PackageList,-                  ImageHandle,-                  
NULL,-                  EFI_OPEN_PROTOCOL_GET_PROTOCOL-                  );+  
Status = gBS->LocateProtocol (&gEdkiiBootLogo2ProtocolGuid, NULL, (VOID 
**)&BootLogo2);   if (EFI_ERROR (Status)) {-    DEBUG ((DEBUG_ERROR, "HII Image 
Package with logo not found in PE/COFF resource section\n"));-    return 
Status;+    return EFI_UNSUPPORTED;   } -  //-  // Publish HII package list to 
HII Database.-  //-  Status = HiiDatabase->NewPackageList (-                    
      HiiDatabase,-                          PackageList,-                      
    NULL,-                          &mHiiHandle-                          );-  
if (!EFI_ERROR (Status)) {-    Handle = NULL;-    Status = 
gBS->InstallMultipleProtocolInterfaces (-                    &Handle,-          
          &gEdkiiPlatformLogoProtocolGuid, &mPlatformLogo,-                    
NULL-                    );+  // Determine BGRT display offsets+  Status = 
gBS->HandleProtocol (gST->ConsoleOutHandle, &gEfiGraphicsOutputProtocolGuid, 
(VOID **)&GraphicsOutput);+  if (EFI_ERROR (Status)) {+    return 
EFI_UNSUPPORTED;   }++  SizeOfX = 
GraphicsOutput->Mode->Info->HorizontalResolution;+  SizeOfY = 
GraphicsOutput->Mode->Info->VerticalResolution;++  Status = GetSectionFromAnyFv 
(+             &gTianoLogoGuid,+             EFI_SECTION_RAW,+             0,+  
           &BmpAddress,+             &BmpSize+             );+  if (EFI_ERROR 
(Status)) {+    return EFI_NOT_FOUND;+  }++  // Allocates pool for blit-buffer+ 
 Status = TranslateBmpToGopBlt (+             BmpAddress,+             
BmpSize,+             &Blt,+             &BltSize,+             &Height,+       
      &Width+             );+  ASSERT_EFI_ERROR (Status);++  // 
EdkiiPlatformLogoDisplayAttributeCenter+  DestX = (SizeOfX - Width) / 2;+  
DestY = (SizeOfY - Height) / 2;++  Status = BootLogo2->SetBootLogo (BootLogo2, 
Blt, DestX, DestY, Width, Height);++  // SetBootLogo() allocates a copy pool, 
so free this.+  if (Blt != NULL) {+    FreePool (Blt);+  }+   return Status; 
}diff --git a/Features/Intel/UserInterface/LogoFeaturePkg/LogoDxe/Logo.idf 
b/Features/Intel/UserInterface/LogoFeaturePkg/LogoDxe/Logo.idf
deleted file mode 100644
index fd9c4898156d..000000000000
--- a/Features/Intel/UserInterface/LogoFeaturePkg/LogoDxe/Logo.idf
+++ /dev/null
@@ -1,10 +0,0 @@
-// /** @file-// Platform Logo image definition file.-//-// Copyright (c) 2020, 
Intel Corporation. All rights reserved.<BR>-//-// SPDX-License-Identifier: 
BSD-2-Clause-Patent-//-// **/--#image IMG_LOGO Logo.bmpdiff --git 
a/Features/Intel/UserInterface/LogoFeaturePkg/LogoDxe/Logo.jpg 
b/Features/Intel/UserInterface/LogoFeaturePkg/LogoDxe/Logo.jpg
deleted file mode 100644
index 
32de8a5532c9a75ab23ffc9c59a8e8c3e4ea4a27..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 9741
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
UQ_hBdzUubk_+m{3fDrBf50_=K6951J

diff --git a/Features/Intel/UserInterface/LogoFeaturePkg/LogoDxe/LogoDxe.inf 
b/Features/Intel/UserInterface/LogoFeaturePkg/LogoDxe/LogoDxe.inf
index 5ef93461ee4b..93840dfa71a4 100644
--- a/Features/Intel/UserInterface/LogoFeaturePkg/LogoDxe/LogoDxe.inf
+++ b/Features/Intel/UserInterface/LogoFeaturePkg/LogoDxe/LogoDxe.inf
@@ -14,12 +14,7 @@
   FILE_GUID                      = 76ED6631-44FE-4ED2-8B5D-1B5355BB25E8   
MODULE_TYPE                    = DXE_DRIVER   VERSION_STRING                 = 
1.0-   ENTRY_POINT                    = InitializeLogo-#-#  This flag specifies 
whether HII resource section is generated into PE image.-#-  
UEFI_HII_RESOURCE_SECTION      = TRUE  # # The following information is for 
reference only and not required by the build tools.@@ -28,25 +23,28 @@
 #  [Sources]-  Logo.bmp   Logo.c-  Logo.idf  [Packages]   MdePkg/MdePkg.dec   
MdeModulePkg/MdeModulePkg.dec+  LogoFeaturePkg/LogoFeaturePkg.dec  
[LibraryClasses]   UefiBootServicesTableLib   UefiDriverEntryPoint   DebugLib+  
DxeServicesLib+  MemoryAllocationLib+  BmpSupportLib  [Protocols]-  
gEfiHiiDatabaseProtocolGuid        ## CONSUMES-  gEfiHiiImageExProtocolGuid     
    ## CONSUMES-  gEfiHiiPackageListProtocolGuid     ## PRODUCES CONSUMES-  
gEdkiiPlatformLogoProtocolGuid     ## PRODUCES+  gEdkiiBootLogo2ProtocolGuid    
    ## CONSUMES+  gEfiGraphicsOutputProtocolGuid     ## CONSUMES++[Guids]+  
gTianoLogoGuid  [Depex]-  gEfiHiiDatabaseProtocolGuid AND-  
gEfiHiiImageExProtocolGuid+  gEdkiiBootLogo2ProtocolGuid   AND+  
gEfiGraphicsOutputProtocolGuiddiff --git 
a/Features/Intel/UserInterface/LogoFeaturePkg/LogoFeaturePkg.dec 
b/Features/Intel/UserInterface/LogoFeaturePkg/LogoFeaturePkg.dec
index 4fa7dfea0fcd..39cae36c5f62 100644
--- a/Features/Intel/UserInterface/LogoFeaturePkg/LogoFeaturePkg.dec
+++ b/Features/Intel/UserInterface/LogoFeaturePkg/LogoFeaturePkg.dec
@@ -23,7 +23,7 @@
  [Guids]   gLogoFeaturePkgTokenSpaceGuid  =  {0x567199de, 0xb448, 0x4aa0, 
{0x99, 0x4e, 0xd5, 0xd6, 0x82, 0x59, 0x91, 0x17}}+  gTianoLogoGuid              
   =  {0x7BB28B99, 0x61BB, 0x11D5, {0x9A, 0x5D, 0x00, 0x90, 0x27, 0x3F, 0xC1, 
0x4D}}  [PcdsFeatureFlag]   
gLogoFeaturePkgTokenSpaceGuid.PcdLogoFeatureEnable|FALSE|BOOLEAN|0xA0000001-  
gLogoFeaturePkgTokenSpaceGuid.PcdJpgEnable|FALSE|BOOLEAN|0xA0000002diff --git 
a/Features/Intel/UserInterface/LogoFeaturePkg/LogoFeaturePkg.dsc 
b/Features/Intel/UserInterface/LogoFeaturePkg/LogoFeaturePkg.dsc
index 5a6436178c4e..b820baaa0a87 100644
--- a/Features/Intel/UserInterface/LogoFeaturePkg/LogoFeaturePkg.dsc
+++ b/Features/Intel/UserInterface/LogoFeaturePkg/LogoFeaturePkg.dsc
@@ -29,8 +29,6 @@
   LogoFeaturePkg/LogoFeaturePkg.dec  [PcdsFeatureFlag]-  
gLogoFeaturePkgTokenSpaceGuid.PcdJpgEnable                              |FALSE- 
  #   # PCD needed for MinPlatform build includes   #@@ -55,5 +53,4 @@
 # all drivers in this package in 32b or 64b modes # [Components]-  
LogoFeaturePkg/LogoDxe/JpegLogoDxe.inf   LogoFeaturePkg/LogoDxe/LogoDxe.infdiff 
--git a/Platform/Intel/BoardModulePkg/Library/BoardBdsHookLib/BoardBdsHookLib.c 
b/Platform/Intel/BoardModulePkg/Library/BoardBdsHookLib/BoardBdsHookLib.c
index 0bcee7c9a4ba..deeec1055633 100644
--- a/Platform/Intel/BoardModulePkg/Library/BoardBdsHookLib/BoardBdsHookLib.c
+++ b/Platform/Intel/BoardModulePkg/Library/BoardBdsHookLib/BoardBdsHook
+++ Lib.c
@@ -9,6 +9,7 @@
  #include <Guid/EventGroup.h> +#include <Library/BootLogoLib.h> #include 
<Library/IoLib.h> #include <Library/PciLib.h> #include 
<Library/UefiBootManagerLib.h>@@ -1385,7 +1386,5 @@ 
BdsAfterConsoleReadyBeforeBootOptionCallback (
       break;   } -  Print (L"Press F2 for Setup, or F7 for BootMenu!\n");-  
}diff --git 
a/Platform/Intel/BoardModulePkg/Library/BoardBdsHookLib/BoardBdsHookLib.inf 
b/Platform/Intel/BoardModulePkg/Library/BoardBdsHookLib/BoardBdsHookLib.inf
index 69f3fcb55222..6375741f402a 100644
--- a/Platform/Intel/BoardModulePkg/Library/BoardBdsHookLib/BoardBdsHookLib.inf
+++ b/Platform/Intel/BoardModulePkg/Library/BoardBdsHookLib/BoardBdsHook
+++ Lib.inf
@@ -34,6 +34,7 @@
   PerformanceLib   TimerLib   Tcg2PhysicalPresenceLib+  BootLogoLib  
[Packages]   MdePkg/MdePkg.decdiff --git 
a/Platform/Intel/BoardModulePkg/Library/BoardBootManagerLib/BoardBootManager.c 
b/Platform/Intel/BoardModulePkg/Library/BoardBootManagerLib/BoardBootManager.c
index f6628d4125f9..0e91d9338b43 100644
--- 
a/Platform/Intel/BoardModulePkg/Library/BoardBootManagerLib/BoardBootManager.c
+++ b/Platform/Intel/BoardModulePkg/Library/BoardBootManagerLib/BoardBoo
+++ tManager.c
@@ -11,9 +11,12 @@
 #include <Library/PlatformBootManagerLib.h> #include <Library/UefiLib.h> 
#include <Library/HobLib.h>+#include <Library/PcdLib.h> #include 
<Library/PrintLib.h> #include <Library/PerformanceLib.h> #include 
<Library/BoardBootManagerLib.h>+#include <Library/BootLogoLib.h>+#include 
<Protocol/GraphicsOutput.h>   BOOLEAN    mHotKeypressed = FALSE;@@ -31,11 
+34,39 @@ BoardBootManagerWaitCallback (
   UINT16          TimeoutRemain   ) {+  EFI_GRAPHICS_OUTPUT_BLT_PIXEL_UNION  
Black;+  EFI_GRAPHICS_OUTPUT_BLT_PIXEL_UNION  White;+  UINT16                   
            TimeoutInitial;   EFI_STATUS                    Status;   
EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL  *TxtInEx;   EFI_KEY_DATA                  
KeyData;   BOOLEAN                       PausePressed; +  // Give user the 
notification, then consider being paused state.+  TimeoutInitial = PcdGet16 
(PcdPlatformBootTimeOut);++  //+  // If PcdPlatformBootTimeOut is set to zero, 
then we consider+  // that no progress update should be enacted (since we'd 
only+  // ever display a one-shot progress of either 0% or 100%).+  //+  if 
(TimeoutInitial == 0) {+    return;+  }++  Black.Raw = 0x00000000;+  White.Raw 
= 0x00FFFFFF;++  // Show progress at bottom center+  BootLogoUpdateProgress (+  
  White.Pixel,+    Black.Pixel,+    L"Press F2 for Setup, or F7 for 
BootMenu!\n",+    White.Pixel,+    (TimeoutInitial - TimeoutRemain) * 100 / 
TimeoutInitial,+    0+    );+   //   // Pause on PAUSE key   //diff --git 
a/Platform/Intel/BoardModulePkg/Library/BoardBootManagerLib/BoardBootManagerLib.inf
 
b/Platform/Intel/BoardModulePkg/Library/BoardBootManagerLib/BoardBootManagerLib.inf
index 38ff52ca81c6..3a7a72716b99 100644
--- 
a/Platform/Intel/BoardModulePkg/Library/BoardBootManagerLib/BoardBootManagerLib.inf
+++ b/Platform/Intel/BoardModulePkg/Library/BoardBootManagerLib/BoardBoo
+++ tManagerLib.inf
@@ -30,10 +30,15 @@
   DebugLib   UefiLib   HobLib+  PcdLib   UefiBootManagerLib   TimerLib+  
BootLogoLib  [Packages]   MdePkg/MdePkg.dec   MdeModulePkg/MdeModulePkg.dec   
MinPlatformPkg/MinPlatformPkg.dec++[Pcd]+  
gEfiMdePkgTokenSpaceGuid.PcdPlatformBootTimeOutdiff --git 
a/Platform/Intel/MinPlatformPkg/Include/Dsc/CoreCommonLib.dsc 
b/Platform/Intel/MinPlatformPkg/Include/Dsc/CoreCommonLib.dsc
index b77d55dfd550..5ff135136e28 100644
--- a/Platform/Intel/MinPlatformPkg/Include/Dsc/CoreCommonLib.dsc
+++ b/Platform/Intel/MinPlatformPkg/Include/Dsc/CoreCommonLib.dsc
@@ -84,6 +84,7 @@
   CapsuleLib|MdeModulePkg/Library/DxeCapsuleLibNull/DxeCapsuleLibNull.inf    
UefiBootManagerLib|MdeModulePkg/Library/UefiBootManagerLib/UefiBootManagerLib.inf+
  BootLogoLib|MdeModulePkg/Library/BootLogoLib/BootLogoLib.inf   
FileExplorerLib|MdeModulePkg/Library/FileExplorerLib/FileExplorerLib.inf   
SynchronizationLib|MdePkg/Library/BaseSynchronizationLib/BaseSynchronizationLib.inf
   
SecurityManagementLib|MdeModulePkg/Library/DxeSecurityManagementLib/DxeSecurityManagementLib.inf--
 
2.36.1



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#92254): https://edk2.groups.io/g/devel/message/92254
Mute This Topic: https://groups.io/mt/92609644/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-


Reply via email to