(1) Update EDK2 TianoCore logo to the latest.
(2) Extend logo showing period to the late stage of BDS.

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: David Wei <david....@intel.com>
CC: Mike Wu  <mike...@intel.com>
CC: Mang Guo <mang....@intel.com>
---
 .../AuroraGlacier/BoardInitPostMem/BoardInit.c     |   2 +-
 .../BoardInitPostMem/BoardInitPostMem.inf          |   2 +-
 .../BensonGlacier/BoardInitPostMem/BoardInit.c     |   2 +-
 .../BoardInitPostMem/BoardInitPostMem.inf          |   2 +-
 .../Board/LeafHill/BoardInitPostMem/BoardInit.c    |   2 +-
 .../LeafHill/BoardInitPostMem/BoardInitPostMem.inf |   2 +-
 .../MinnowBoard3/BoardInitPostMem/BoardInit.c      |   2 +-
 .../BoardInitPostMem/BoardInitPostMem.inf          |   2 +-
 .../BoardInitPostMem/BoardInit.c                   |   2 +-
 .../BoardInitPostMem/BoardInitPostMem.inf          |   2 +-
 .../Board/UP2/BoardInitPostMem/BoardInit.c         |   2 +-
 .../UP2/BoardInitPostMem/BoardInitPostMem.inf      |   2 +-
 .../Common/Binaries/Logo/Tianocore.bmp             | Bin 0 -> 11958 bytes
 .../Common/Library/DxeLogoLib/DxeLogoLib.inf       |   1 -
 .../Common/Library/DxeLogoLib/Logo.c               | 299 ++++-----------------
 .../PeiFspPolicyInitLib/PeiFspPolicyInitLib.inf    |   1 -
 .../PlatformBootManagerLib/PlatformBootManager.c   |  10 +-
 .../PlatformBootManagerLib.inf                     |   4 +-
 Platform/BroxtonPlatformPkg/PlatformPkg.dec        |   3 +-
 Platform/BroxtonPlatformPkg/PlatformPkg.fdf        |  13 +-
 20 files changed, 83 insertions(+), 272 deletions(-)
 create mode 100644 
Platform/BroxtonPlatformPkg/Common/Binaries/Logo/Tianocore.bmp

diff --git 
a/Platform/BroxtonPlatformPkg/Board/AuroraGlacier/BoardInitPostMem/BoardInit.c 
b/Platform/BroxtonPlatformPkg/Board/AuroraGlacier/BoardInitPostMem/BoardInit.c
index 302edb8301..ce98086895 100644
--- 
a/Platform/BroxtonPlatformPkg/Board/AuroraGlacier/BoardInitPostMem/BoardInit.c
+++ 
b/Platform/BroxtonPlatformPkg/Board/AuroraGlacier/BoardInitPostMem/BoardInit.c
@@ -110,7 +110,7 @@ AuroraGlacierPostMemInitCallback (
   //
   BufferSize = sizeof (EFI_GUID);
   PcdSetPtr(PcdBoardVbtFileGuid, &BufferSize, (UINT8 
*)&gPeiAuroraGlacierVbtGuid);
-  PcdSetPtr(PcdOemLogoFileGuid, &BufferSize, (UINT8 *)&gPeiLogoGuid);
+  PcdSetPtr(PcdOemLogoFileGuid, &BufferSize, (UINT8 
*)PcdGetPtr(PcdTianoCoreLogoFileGuid));
 
   //
   // Set PcdSueCreek
diff --git 
a/Platform/BroxtonPlatformPkg/Board/AuroraGlacier/BoardInitPostMem/BoardInitPostMem.inf
 
b/Platform/BroxtonPlatformPkg/Board/AuroraGlacier/BoardInitPostMem/BoardInitPostMem.inf
index 8fe5ea7e95..c619332cb1 100644
--- 
a/Platform/BroxtonPlatformPkg/Board/AuroraGlacier/BoardInitPostMem/BoardInitPostMem.inf
+++ 
b/Platform/BroxtonPlatformPkg/Board/AuroraGlacier/BoardInitPostMem/BoardInitPostMem.inf
@@ -64,6 +64,7 @@
   gPlatformModuleTokenSpaceGuid.PcdResetType
   gPlatformModuleTokenSpaceGuid.PcdBoardVbtFileGuid
   gPlatformModuleTokenSpaceGuid.PcdOemLogoFileGuid
+  gPlatformModuleTokenSpaceGuid.PcdTianoCoreLogoFileGuid
   gPlatformModuleTokenSpaceGuid.PcdSueCreek
   gPlatformModuleTokenSpaceGuid.PcdMaxPkgCState
   gPlatformModuleTokenSpaceGuid.PcdTi3100AudioCodecEnable
@@ -85,7 +86,6 @@
   gEfiTpmDeviceInstanceTpm20DtpmGuid
   gTpmDeviceInstanceTpm20PttPtpGuid
   gPeiAuroraGlacierVbtGuid
-  gPeiLogoGuid
 
 [Ppis]
   gBoardPostMemInitStartGuid
diff --git 
a/Platform/BroxtonPlatformPkg/Board/BensonGlacier/BoardInitPostMem/BoardInit.c 
b/Platform/BroxtonPlatformPkg/Board/BensonGlacier/BoardInitPostMem/BoardInit.c
index 60d2324d95..856d7739b0 100644
--- 
a/Platform/BroxtonPlatformPkg/Board/BensonGlacier/BoardInitPostMem/BoardInit.c
+++ 
b/Platform/BroxtonPlatformPkg/Board/BensonGlacier/BoardInitPostMem/BoardInit.c
@@ -110,7 +110,7 @@ BensonGlacierPostMemInitCallback (
   //
   BufferSize = sizeof (EFI_GUID);
   PcdSetPtr(PcdBoardVbtFileGuid, &BufferSize, (UINT8 
*)&gPeiBensonGlacierVbtGuid);
-  PcdSetPtr(PcdOemLogoFileGuid, &BufferSize, (UINT8 *)&gPeiLogoGuid);
+  PcdSetPtr(PcdOemLogoFileGuid, &BufferSize, (UINT8 
*)PcdGetPtr(PcdTianoCoreLogoFileGuid));
 
   //
   // Set PcdSueCreek
diff --git 
a/Platform/BroxtonPlatformPkg/Board/BensonGlacier/BoardInitPostMem/BoardInitPostMem.inf
 
b/Platform/BroxtonPlatformPkg/Board/BensonGlacier/BoardInitPostMem/BoardInitPostMem.inf
index 782bf0d2bd..01d7f27898 100644
--- 
a/Platform/BroxtonPlatformPkg/Board/BensonGlacier/BoardInitPostMem/BoardInitPostMem.inf
+++ 
b/Platform/BroxtonPlatformPkg/Board/BensonGlacier/BoardInitPostMem/BoardInitPostMem.inf
@@ -64,6 +64,7 @@
   gPlatformModuleTokenSpaceGuid.PcdResetType
   gPlatformModuleTokenSpaceGuid.PcdBoardVbtFileGuid
   gPlatformModuleTokenSpaceGuid.PcdOemLogoFileGuid
+  gPlatformModuleTokenSpaceGuid.PcdTianoCoreLogoFileGuid
   gPlatformModuleTokenSpaceGuid.PcdSueCreek
   gPlatformModuleTokenSpaceGuid.PcdMaxPkgCState
   gPlatformModuleTokenSpaceGuid.PcdTi3100AudioCodecEnable
@@ -85,7 +86,6 @@
   gEfiTpmDeviceInstanceTpm20DtpmGuid
   gTpmDeviceInstanceTpm20PttPtpGuid
   gPeiBensonGlacierVbtGuid
-  gPeiLogoGuid
 
 [Ppis]
   gBoardPostMemInitStartGuid
diff --git 
a/Platform/BroxtonPlatformPkg/Board/LeafHill/BoardInitPostMem/BoardInit.c 
b/Platform/BroxtonPlatformPkg/Board/LeafHill/BoardInitPostMem/BoardInit.c
index 5c53ff135a..729b15f966 100644
--- a/Platform/BroxtonPlatformPkg/Board/LeafHill/BoardInitPostMem/BoardInit.c
+++ b/Platform/BroxtonPlatformPkg/Board/LeafHill/BoardInitPostMem/BoardInit.c
@@ -119,7 +119,7 @@ LeafHillPostMemInitCallback (
   //
   BufferSize = sizeof (EFI_GUID);
   PcdSetPtr(PcdBoardVbtFileGuid, &BufferSize, (UINT8 *)&gPeiLeafHillVbtGuid);
-  PcdSetPtr(PcdOemLogoFileGuid, &BufferSize, (UINT8 *)&gPeiLogoGuid);
+  PcdSetPtr(PcdOemLogoFileGuid, &BufferSize, (UINT8 
*)PcdGetPtr(PcdTianoCoreLogoFileGuid));
   
   //
   // Set PcdSueCreek
diff --git 
a/Platform/BroxtonPlatformPkg/Board/LeafHill/BoardInitPostMem/BoardInitPostMem.inf
 
b/Platform/BroxtonPlatformPkg/Board/LeafHill/BoardInitPostMem/BoardInitPostMem.inf
index 8afcd0f5c6..46a6f4b6ce 100644
--- 
a/Platform/BroxtonPlatformPkg/Board/LeafHill/BoardInitPostMem/BoardInitPostMem.inf
+++ 
b/Platform/BroxtonPlatformPkg/Board/LeafHill/BoardInitPostMem/BoardInitPostMem.inf
@@ -63,6 +63,7 @@
   gPlatformModuleTokenSpaceGuid.PcdResetType
   gPlatformModuleTokenSpaceGuid.PcdBoardVbtFileGuid
   gPlatformModuleTokenSpaceGuid.PcdOemLogoFileGuid
+  gPlatformModuleTokenSpaceGuid.PcdTianoCoreLogoFileGuid
   gPlatformModuleTokenSpaceGuid.PcdSueCreek
   gPlatformModuleTokenSpaceGuid.PcdMaxPkgCState
   gPlatformModuleTokenSpaceGuid.PcdeMMCHostMaxSpeed
@@ -85,7 +86,6 @@
   gEfiTpmDeviceInstanceTpm20DtpmGuid
   gTpmDeviceInstanceTpm20PttPtpGuid
   gPeiLeafHillVbtGuid
-  gPeiLogoGuid
 
 [Ppis]
   gBoardPostMemInitStartGuid
diff --git 
a/Platform/BroxtonPlatformPkg/Board/MinnowBoard3/BoardInitPostMem/BoardInit.c 
b/Platform/BroxtonPlatformPkg/Board/MinnowBoard3/BoardInitPostMem/BoardInit.c
index 104a4b293e..3323ee8744 100644
--- 
a/Platform/BroxtonPlatformPkg/Board/MinnowBoard3/BoardInitPostMem/BoardInit.c
+++ 
b/Platform/BroxtonPlatformPkg/Board/MinnowBoard3/BoardInitPostMem/BoardInit.c
@@ -125,7 +125,7 @@ MinnowBoard3PostMemInitCallback (
   //
   BufferSize = sizeof (EFI_GUID);
   PcdSetPtr(PcdBoardVbtFileGuid, &BufferSize, (UINT8 
*)&gPeiMinnowBoard3VbtGuid);
-  PcdSetPtr(PcdOemLogoFileGuid, &BufferSize, (UINT8 *)&gPeiLogoGuid);
+  PcdSetPtr(PcdOemLogoFileGuid, &BufferSize, (UINT8 
*)PcdGetPtr(PcdTianoCoreLogoFileGuid));
   
   //
   // Set PcdSueCreek
diff --git 
a/Platform/BroxtonPlatformPkg/Board/MinnowBoard3/BoardInitPostMem/BoardInitPostMem.inf
 
b/Platform/BroxtonPlatformPkg/Board/MinnowBoard3/BoardInitPostMem/BoardInitPostMem.inf
index 382e90130c..15d7f46829 100644
--- 
a/Platform/BroxtonPlatformPkg/Board/MinnowBoard3/BoardInitPostMem/BoardInitPostMem.inf
+++ 
b/Platform/BroxtonPlatformPkg/Board/MinnowBoard3/BoardInitPostMem/BoardInitPostMem.inf
@@ -60,6 +60,7 @@
   gPlatformModuleTokenSpaceGuid.PcdResetType
   gPlatformModuleTokenSpaceGuid.PcdBoardVbtFileGuid
   gPlatformModuleTokenSpaceGuid.PcdOemLogoFileGuid
+  gPlatformModuleTokenSpaceGuid.PcdTianoCoreLogoFileGuid
   gPlatformModuleTokenSpaceGuid.PcdSueCreek
   gPlatformModuleTokenSpaceGuid.PcdLogoDisplay
   gPlatformModuleTokenSpaceGuid.PcdBtDevice
@@ -81,7 +82,6 @@
   gEfiTpmDeviceInstanceTpm20DtpmGuid
   gTpmDeviceInstanceTpm20PttPtpGuid
   gPeiMinnowBoard3VbtGuid
-  gPeiLogoGuid
 
 [Ppis]
   gBoardPostMemInitStartGuid
diff --git 
a/Platform/BroxtonPlatformPkg/Board/MinnowBoard3Module/BoardInitPostMem/BoardInit.c
 
b/Platform/BroxtonPlatformPkg/Board/MinnowBoard3Module/BoardInitPostMem/BoardInit.c
index ee954c1950..421e71c6fd 100644
--- 
a/Platform/BroxtonPlatformPkg/Board/MinnowBoard3Module/BoardInitPostMem/BoardInit.c
+++ 
b/Platform/BroxtonPlatformPkg/Board/MinnowBoard3Module/BoardInitPostMem/BoardInit.c
@@ -120,7 +120,7 @@ MinnowBoard3ModulePostMemInitCallback (
   //
   BufferSize = sizeof (EFI_GUID);
   PcdSetPtr(PcdBoardVbtFileGuid, &BufferSize, (UINT8 
*)&gPeiMinnow3ModuleVbtGuid);
-  PcdSetPtr(PcdOemLogoFileGuid, &BufferSize, (UINT8 *)&gPeiLogoGuid);
+  PcdSetPtr(PcdOemLogoFileGuid, &BufferSize, (UINT8 
*)PcdGetPtr(PcdTianoCoreLogoFileGuid));
   
   //
   // Set PcdeMMCHostMaxSpeed
diff --git 
a/Platform/BroxtonPlatformPkg/Board/MinnowBoard3Module/BoardInitPostMem/BoardInitPostMem.inf
 
b/Platform/BroxtonPlatformPkg/Board/MinnowBoard3Module/BoardInitPostMem/BoardInitPostMem.inf
index 13edbfee57..67708d2308 100644
--- 
a/Platform/BroxtonPlatformPkg/Board/MinnowBoard3Module/BoardInitPostMem/BoardInitPostMem.inf
+++ 
b/Platform/BroxtonPlatformPkg/Board/MinnowBoard3Module/BoardInitPostMem/BoardInitPostMem.inf
@@ -64,6 +64,7 @@
   gPlatformModuleTokenSpaceGuid.PcdResetType
   gPlatformModuleTokenSpaceGuid.PcdBoardVbtFileGuid
   gPlatformModuleTokenSpaceGuid.PcdOemLogoFileGuid
+  gPlatformModuleTokenSpaceGuid.PcdTianoCoreLogoFileGuid
   gPlatformModuleTokenSpaceGuid.PcdeMMCHostMaxSpeed
 
 [Guids]
@@ -77,7 +78,6 @@
   gEfiTpmDeviceInstanceTpm20DtpmGuid
   gTpmDeviceInstanceTpm20PttPtpGuid
   gPeiMinnow3ModuleVbtGuid
-  gPeiLogoGuid
 
 [Ppis]
   gBoardPostMemInitStartGuid
diff --git a/Platform/BroxtonPlatformPkg/Board/UP2/BoardInitPostMem/BoardInit.c 
b/Platform/BroxtonPlatformPkg/Board/UP2/BoardInitPostMem/BoardInit.c
index bf607d6b11..8276be75c0 100644
--- a/Platform/BroxtonPlatformPkg/Board/UP2/BoardInitPostMem/BoardInit.c
+++ b/Platform/BroxtonPlatformPkg/Board/UP2/BoardInitPostMem/BoardInit.c
@@ -119,7 +119,7 @@ Up2PostMemInitCallback (
   //
   BufferSize = sizeof (EFI_GUID);
   PcdSetPtr(PcdBoardVbtFileGuid, &BufferSize, (UINT8 *)&gPeiUp2VbtGuid);
-  PcdSetPtr(PcdOemLogoFileGuid, &BufferSize, (UINT8 *)&gPeiLogoGuid);
+  PcdSetPtr(PcdOemLogoFileGuid, &BufferSize, (UINT8 
*)PcdGetPtr(PcdTianoCoreLogoFileGuid));
 
   //
   // Set PcdSueCreek
diff --git 
a/Platform/BroxtonPlatformPkg/Board/UP2/BoardInitPostMem/BoardInitPostMem.inf 
b/Platform/BroxtonPlatformPkg/Board/UP2/BoardInitPostMem/BoardInitPostMem.inf
index be10d85965..a6e6a9ec47 100644
--- 
a/Platform/BroxtonPlatformPkg/Board/UP2/BoardInitPostMem/BoardInitPostMem.inf
+++ 
b/Platform/BroxtonPlatformPkg/Board/UP2/BoardInitPostMem/BoardInitPostMem.inf
@@ -63,6 +63,7 @@
   gPlatformModuleTokenSpaceGuid.PcdResetType
   gPlatformModuleTokenSpaceGuid.PcdBoardVbtFileGuid
   gPlatformModuleTokenSpaceGuid.PcdOemLogoFileGuid
+  gPlatformModuleTokenSpaceGuid.PcdTianoCoreLogoFileGuid
   gPlatformModuleTokenSpaceGuid.PcdSueCreek
   gPlatformModuleTokenSpaceGuid.PcdMaxPkgCState
   gPlatformModuleTokenSpaceGuid.PcdeMMCHostMaxSpeed
@@ -85,7 +86,6 @@
   gEfiTpmDeviceInstanceTpm20DtpmGuid
   gTpmDeviceInstanceTpm20PttPtpGuid
   gPeiUp2VbtGuid
-  gPeiLogoGuid
 
 [Ppis]
   gBoardPostMemInitStartGuid
diff --git a/Platform/BroxtonPlatformPkg/Common/Binaries/Logo/Tianocore.bmp 
b/Platform/BroxtonPlatformPkg/Common/Binaries/Logo/Tianocore.bmp
new file mode 100644
index 
0000000000000000000000000000000000000000..dcf1c0be035f50b909a5efd0f77b10d03449305f
GIT binary patch
literal 11958
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
D4P6!L

literal 0
HcmV?d00001

diff --git 
a/Platform/BroxtonPlatformPkg/Common/Library/DxeLogoLib/DxeLogoLib.inf 
b/Platform/BroxtonPlatformPkg/Common/Library/DxeLogoLib/DxeLogoLib.inf
index 6a2a7f9b0a..41f0753c34 100644
--- a/Platform/BroxtonPlatformPkg/Common/Library/DxeLogoLib/DxeLogoLib.inf
+++ b/Platform/BroxtonPlatformPkg/Common/Library/DxeLogoLib/DxeLogoLib.inf
@@ -58,5 +58,4 @@
   gEfiUgaDrawProtocolGuid                       ## SOMETIMES_CONSUMES
   gEfiBootLogoProtocolGuid                      ## SOMETIMES_CONSUMES
   gEfiUserManagerProtocolGuid                   ## CONSUMES
-  gEfiOEMBadgingProtocolGuid                    ## CONSUMES
 
diff --git a/Platform/BroxtonPlatformPkg/Common/Library/DxeLogoLib/Logo.c 
b/Platform/BroxtonPlatformPkg/Common/Library/DxeLogoLib/Logo.c
index f8f7de3819..c147ca92c5 100644
--- a/Platform/BroxtonPlatformPkg/Common/Library/DxeLogoLib/Logo.c
+++ b/Platform/BroxtonPlatformPkg/Common/Library/DxeLogoLib/Logo.c
@@ -1,7 +1,7 @@
 /** @file
   BDS Lib functions which contain all the code to connect console device.
 
-  Copyright (c) 2011 - 2016, Intel Corporation. All rights reserved.<BR>
+  Copyright (c) 2011 - 2018, Intel Corporation. All rights reserved.<BR>
 
   This program and the accompanying materials
   are licensed and made available under the terms and conditions of the BSD 
License
@@ -15,7 +15,6 @@
 
 #include <PiDxe.h>
 #include <Protocol/SimpleTextOut.h>
-#include <Protocol/OEMBadging.h>
 #include <Protocol/GraphicsOutput.h>
 #include <Protocol/UgaDraw.h>
 #include <Library/BaseLib.h>
@@ -293,7 +292,6 @@ EnableQuietBoot (
   )
 {
   EFI_STATUS                    Status;
-  EFI_OEM_BADGING_PROTOCOL      *Badging;
   UINT32                        SizeOfX;
   UINT32                        SizeOfY;
   INTN                          DestX;
@@ -302,8 +300,6 @@ EnableQuietBoot (
   UINTN                         ImageSize;
   UINTN                         BltSize;
   UINT32                        Instance;
-  EFI_BADGING_FORMAT            Format;
-  EFI_BADGING_DISPLAY_ATTRIBUTE Attribute;
   UINTN                         CoordinateX;
   UINTN                         CoordinateY;
   UINTN                         Height;
@@ -315,7 +311,6 @@ EnableQuietBoot (
   EFI_GRAPHICS_OUTPUT_PROTOCOL  *GraphicsOutput;
   EFI_BOOT_LOGO_PROTOCOL        *BootLogo;
   UINTN                         NumberOfLogos;
-  EFI_GRAPHICS_OUTPUT_BLT_PIXEL *LogoBlt;
   UINTN                         LogoDestX;
   UINTN                         LogoDestY;
   UINTN                         LogoHeight;
@@ -324,7 +319,6 @@ EnableQuietBoot (
   UINTN                         NewDestY;
   UINTN                         NewHeight;
   UINTN                         NewWidth;
-  UINT64                        BufferSize;
 
   UgaDraw = NULL;
   //
@@ -353,8 +347,6 @@ EnableQuietBoot (
   //
   gST->ConOut->EnableCursor (gST->ConOut, FALSE);
 
-  Badging = NULL;
-  Status  = gBS->LocateProtocol (&gEfiOEMBadgingProtocolGuid, NULL, (VOID **) 
&Badging);
 
   if (GraphicsOutput != NULL) {
     SizeOfX = GraphicsOutput->Mode->Info->HorizontalResolution;
@@ -380,279 +372,88 @@ EnableQuietBoot (
   NewHeight = 0;
   NewWidth = 0;
   Instance = 0;
-  while (1) {
-    ImageData = NULL;
-    ImageSize = 0;
 
-    if (Badging != NULL) {
-      //
-      // Get image from OEMBadging protocol.
-      //
-      Status = Badging->GetImage (
-                          Badging,
-                          &Instance,
-                          &Format,
-                          &ImageData,
-                          &ImageSize,
-                          &Attribute,
-                          &CoordinateX,
-                          &CoordinateY
-                          );
-      if (EFI_ERROR (Status)) {
-        goto Done;
-      }
-
-    } else {
-      //
-      // Get the specified image from FV.
-      //
-      Status = GetSectionFromAnyFv (LogoFile, EFI_SECTION_RAW, 0, (VOID **) 
&ImageData, &ImageSize);
-      if (EFI_ERROR (Status)) {
-        return EFI_UNSUPPORTED;
-      }
-
-      CoordinateX = 0;
-      CoordinateY = 0;
-      Attribute   = EfiBadgingDisplayAttributeCenter;
-    }
-
-    if (Blt != NULL) {
-      FreePool (Blt);
-    }
-
-    //
-    // Try BMP decoder
-    //
-    Blt = NULL;
-    Status = ConvertBmpToGopBlt (
-               ImageData,
-               ImageSize,
-               (VOID **) &Blt,
-               &BltSize,
-               &Height,
-               &Width
-               );
-
-    if (EFI_ERROR (Status)) {
-      FreePool (ImageData);
-
-      if (Badging == NULL) {
-        return Status;
-      } else {
-        continue;
-      }
-    }
 
-    //
-    // Calculate the display position according to Attribute.
-    //
-    switch (Attribute) {
-      case EfiBadgingDisplayAttributeLeftTop:
-        DestX = CoordinateX;
-        DestY = CoordinateY;
-        break;
-
-      case EfiBadgingDisplayAttributeCenterTop:
-        DestX = (SizeOfX - Width) / 2;
-        DestY = CoordinateY;
-        break;
-
-      case EfiBadgingDisplayAttributeRightTop:
-        DestX = (SizeOfX - Width - CoordinateX);
-        DestY = CoordinateY;;
-        break;
-
-      case EfiBadgingDisplayAttributeCenterRight:
-        DestX = (SizeOfX - Width - CoordinateX);
-        DestY = (SizeOfY - Height) / 2;
-        break;
-
-      case EfiBadgingDisplayAttributeRightBottom:
-        DestX = (SizeOfX - Width - CoordinateX);
-        DestY = (SizeOfY - Height - CoordinateY);
-        break;
+  ImageData = NULL;
+  ImageSize = 0;
 
-      case EfiBadgingDisplayAttributeCenterBottom:
-        DestX = (SizeOfX - Width) / 2;
-        DestY = (SizeOfY - Height - CoordinateY);
-        break;
-
-      case EfiBadgingDisplayAttributeLeftBottom:
-        DestX = CoordinateX;
-        DestY = (SizeOfY - Height - CoordinateY);
-        break;
-
-      case EfiBadgingDisplayAttributeCenterLeft:
-        DestX = CoordinateX;
-        DestY = (SizeOfY - Height) / 2;
-        break;
-
-      case EfiBadgingDisplayAttributeCenter:
-        DestX = (SizeOfX - Width) / 2;
-        DestY = (SizeOfY - Height) / 2;
-        break;
-
-      default:
-        DestX = CoordinateX;
-        DestY = CoordinateY;
-        break;
-      }
-
-    if ((DestX >= 0) && (DestY >= 0)) {
-      if (GraphicsOutput != NULL) {
-        Status = GraphicsOutput->Blt (
-                                   GraphicsOutput,
-                                   Blt,
-                                   EfiBltBufferToVideo,
-                                   0,
-                                   0,
-                                   (UINTN) DestX,
-                                   (UINTN) DestY,
-                                   Width,
-                                   Height,
-                                   Width * sizeof 
(EFI_GRAPHICS_OUTPUT_BLT_PIXEL)
-                                   );
-      } else if (UgaDraw != NULL && FeaturePcdGet (PcdUgaConsumeSupport)) {
-        Status = UgaDraw->Blt (
-                            UgaDraw,
-                            (EFI_UGA_PIXEL *) Blt,
-                            EfiUgaBltBufferToVideo,
-                            0,
-                            0,
-                            (UINTN) DestX,
-                            (UINTN) DestY,
-                            Width,
-                            Height,
-                            Width * sizeof (EFI_UGA_PIXEL)
-                            );
-      } else {
-        Status = EFI_UNSUPPORTED;
-      }
+  //
+  // Get the specified image from FV.
+  //
+  Status = GetSectionFromAnyFv (LogoFile, EFI_SECTION_RAW, 0, (VOID **) 
&ImageData, &ImageSize);
+  if (EFI_ERROR (Status)) {
+    return EFI_UNSUPPORTED;
+  }
 
-      //
-      // Report displayed Logo information.
-      //
-      if (!EFI_ERROR (Status)) {
-        NumberOfLogos++;
-
-        if (LogoWidth == 0) {
-          //
-          // The first Logo.
-          //
-          LogoDestX = (UINTN) DestX;
-          LogoDestY = (UINTN) DestY;
-          LogoWidth = Width;
-          LogoHeight = Height;
-        } else {
-          //
-          // Merge new logo with old one.
-          //
-          NewDestX = MIN ((UINTN) DestX, LogoDestX);
-          NewDestY = MIN ((UINTN) DestY, LogoDestY);
-          NewWidth = MAX ((UINTN) DestX + Width, LogoDestX + LogoWidth) - 
NewDestX;
-          NewHeight = MAX ((UINTN) DestY + Height, LogoDestY + LogoHeight) - 
NewDestY;
-
-          LogoDestX = NewDestX;
-          LogoDestY = NewDestY;
-          LogoWidth = NewWidth;
-          LogoHeight = NewHeight;
-        }
-      }
-    }
+  CoordinateX = 0;
+  CoordinateY = 0;
 
-    FreePool (ImageData);
 
-    if (Badging == NULL) {
-      break;
-    }
+  if (Blt != NULL) {
+    FreePool (Blt);
   }
 
-Done:
-  if (BootLogo == NULL || NumberOfLogos == 0) {
-    //
-    // No logo displayed.
-    //
-    if (Blt != NULL) {
-      FreePool (Blt);
-    }
+  //
+  // Try BMP decoder
+  //
+  Blt = NULL;
+  Status = ConvertBmpToGopBlt (
+             ImageData,
+             ImageSize,
+             (VOID **) &Blt,
+             &BltSize,
+             &Height,
+             &Width
+             );
 
+  if (EFI_ERROR (Status)) {
+    FreePool (ImageData);
     return Status;
   }
 
   //
-  // Advertise displayed Logo information.
+  // Calculate the display position according to Attribute.
   //
-  if (NumberOfLogos == 1) {
-    //
-    // Only one logo displayed, use its Blt buffer directly for BootLogo 
protocol.
-    //
-    LogoBlt = Blt;
-    Status = EFI_SUCCESS;
-  } else {
-    //
-    // More than one Logo displayed, get merged BltBuffer using VideoToBuffer 
operation.
-    //
-    if (Blt != NULL) {
-      FreePool (Blt);
-    }
 
-    //
-    // Ensure the LogoHeight * LogoWidth doesn't overflow
-    //
-    if (LogoHeight > DivU64x64Remainder ((UINTN) ~0, LogoWidth, NULL)) {
-      return EFI_UNSUPPORTED;
-    }
-    BufferSize = MultU64x64 (LogoWidth, LogoHeight);
+  DestX = (SizeOfX - Width) / 2;
+  DestY = (SizeOfY - Height) / 2;
 
-    //
-    // Ensure the BufferSize * sizeof (EFI_GRAPHICS_OUTPUT_BLT_PIXEL) doesn't 
overflow
-    //
-    if (BufferSize > DivU64x32 ((UINTN) ~0, sizeof 
(EFI_GRAPHICS_OUTPUT_BLT_PIXEL))) {
-      return EFI_UNSUPPORTED;
-    }
-
-    LogoBlt = AllocateZeroPool ((UINTN) BufferSize * sizeof 
(EFI_GRAPHICS_OUTPUT_BLT_PIXEL));
-    if (LogoBlt == NULL) {
-      return EFI_OUT_OF_RESOURCES;
-    }
 
+  if ((DestX >= 0) && (DestY >= 0)) {
     if (GraphicsOutput != NULL) {
       Status = GraphicsOutput->Blt (
                                  GraphicsOutput,
-                                 LogoBlt,
-                                 EfiBltVideoToBltBuffer,
-                                 LogoDestX,
-                                 LogoDestY,
+                                 Blt,
+                                 EfiBltBufferToVideo,
                                  0,
                                  0,
-                                 LogoWidth,
-                                 LogoHeight,
-                                 LogoWidth * sizeof 
(EFI_GRAPHICS_OUTPUT_BLT_PIXEL)
+                                 (UINTN) DestX,
+                                 (UINTN) DestY,
+                                 Width,
+                                 Height,
+                                 Width * sizeof (EFI_GRAPHICS_OUTPUT_BLT_PIXEL)
                                  );
     } else if (UgaDraw != NULL && FeaturePcdGet (PcdUgaConsumeSupport)) {
       Status = UgaDraw->Blt (
                           UgaDraw,
-                          (EFI_UGA_PIXEL *) LogoBlt,
-                          EfiUgaVideoToBltBuffer,
-                          LogoDestX,
-                          LogoDestY,
+                          (EFI_UGA_PIXEL *) Blt,
+                          EfiUgaBltBufferToVideo,
                           0,
                           0,
-                          LogoWidth,
-                          LogoHeight,
-                          LogoWidth * sizeof (EFI_UGA_PIXEL)
+                          (UINTN) DestX,
+                          (UINTN) DestY,
+                          Width,
+                          Height,
+                          Width * sizeof (EFI_UGA_PIXEL)
                           );
     } else {
       Status = EFI_UNSUPPORTED;
     }
   }
-
-  if (!EFI_ERROR (Status)) {
-    BootLogo->SetBootLogo (BootLogo, LogoBlt, LogoDestX, LogoDestY, LogoWidth, 
LogoHeight);
-  }
-  FreePool (LogoBlt);
-
-  return Status;
+  
+  FreePool (ImageData);
+  
+  return EFI_SUCCESS;
 }
 
 
diff --git 
a/Platform/BroxtonPlatformPkg/Common/Library/PeiFspPolicyInitLib/PeiFspPolicyInitLib.inf
 
b/Platform/BroxtonPlatformPkg/Common/Library/PeiFspPolicyInitLib/PeiFspPolicyInitLib.inf
index 36e1b1d514..54ae54f887 100644
--- 
a/Platform/BroxtonPlatformPkg/Common/Library/PeiFspPolicyInitLib/PeiFspPolicyInitLib.inf
+++ 
b/Platform/BroxtonPlatformPkg/Common/Library/PeiFspPolicyInitLib/PeiFspPolicyInitLib.inf
@@ -77,7 +77,6 @@
 [Guids]
   gEfiSetupVariableGuid
   gEfiPlatformInfoGuid
-  gPeiLogoGuid
 
 [Pcd.common]
   gEfiBxtTokenSpaceGuid.PcdScAcpiIoPortBaseAddress
diff --git 
a/Platform/BroxtonPlatformPkg/Common/Library/PlatformBootManagerLib/PlatformBootManager.c
 
b/Platform/BroxtonPlatformPkg/Common/Library/PlatformBootManagerLib/PlatformBootManager.c
index 5201ac080d..78202281ac 100644
--- 
a/Platform/BroxtonPlatformPkg/Common/Library/PlatformBootManagerLib/PlatformBootManager.c
+++ 
b/Platform/BroxtonPlatformPkg/Common/Library/PlatformBootManagerLib/PlatformBootManager.c
@@ -28,6 +28,7 @@
 #include <Library/PciLib.h>
 #include <Library/TcgPhysicalPresenceLib.h>
 #include <Library/Tcg2PhysicalPresenceLib.h>
+#include <Library/LogoLib.h>
 #include <Library/HobLib.h>
 #include <Guid/EventGroup.h>
 #include <Guid/ImageAuthentication.h>
@@ -1009,9 +1010,16 @@ PlatformBootManagerAfterConsole (
   EFI_BOOT_MODE                     LocalBootMode;
   BOOLEAN                           RequireSoftECCInit;
   EFI_GENERIC_MEMORY_TEST_PROTOCOL  *GenMemoryTest;
-  
+  EFI_GUID                          DxeLogoGuid;
+
   DEBUG ((EFI_D_INFO, "PlatformBootManagerAfterConsole\n"));
 
+  //
+  // Show BIOS Logo
+  //
+  CopyMem (&DxeLogoGuid, PcdGetPtr (PcdOemLogoFileGuid), sizeof (EFI_GUID));
+  EnableQuietBoot (&DxeLogoGuid);
+
   //
   // Run memory test code at this point.
   //
diff --git 
a/Platform/BroxtonPlatformPkg/Common/Library/PlatformBootManagerLib/PlatformBootManagerLib.inf
 
b/Platform/BroxtonPlatformPkg/Common/Library/PlatformBootManagerLib/PlatformBootManagerLib.inf
index 9f476a14d0..2ddc9e714d 100644
--- 
a/Platform/BroxtonPlatformPkg/Common/Library/PlatformBootManagerLib/PlatformBootManagerLib.inf
+++ 
b/Platform/BroxtonPlatformPkg/Common/Library/PlatformBootManagerLib/PlatformBootManagerLib.inf
@@ -54,7 +54,8 @@
   gEfiMdeModulePkgTokenSpaceGuid.PcdSetupVideoVerticalResolution
   gEfiMdeModulePkgTokenSpaceGuid.PcdConInConnectOnDemand
   gEfiMdePkgTokenSpaceGuid.PcdDefaultTerminalType
-  gEfiSecurityPkgTokenSpaceGuid.PcdTpmInstanceGuid  
+  gEfiSecurityPkgTokenSpaceGuid.PcdTpmInstanceGuid
+  gPlatformModuleTokenSpaceGuid.PcdOemLogoFileGuid
   
  [LibraryClasses]
   BaseLib
@@ -77,6 +78,7 @@
   PciLib
   Tcg2PhysicalPresenceLib
   TcgPhysicalPresenceLib
+  LogoLib
    
 [Protocols]
   gEfiPciRootBridgeIoProtocolGuid
diff --git a/Platform/BroxtonPlatformPkg/PlatformPkg.dec 
b/Platform/BroxtonPlatformPkg/PlatformPkg.dec
index e42b6e78d7..8c7ca72ece 100644
--- a/Platform/BroxtonPlatformPkg/PlatformPkg.dec
+++ b/Platform/BroxtonPlatformPkg/PlatformPkg.dec
@@ -386,7 +386,8 @@
   gPlatformModuleTokenSpaceGuid.PcdTemporaryRamSize|0x2000|UINT32|0x10001002
     # @Prompt Stack size in the temporary RAM.
   gPlatformModuleTokenSpaceGuid.PcdPeiTemporaryRamStackSize|0|UINT32|0x10001003
-  gPlatformModuleTokenSpaceGuid.PcdLogoFileGuid|{0x1b, 0x9a, 0x3d, 0x71, 0x49, 
0x88, 0x47, 0xc5, 0xb7, 0x2a, 0xb0, 0x7d, 0xc5, 0x10, 0x60, 0xc4 
}|VOID*|0x10001004
+  gPlatformModuleTokenSpaceGuid.PcdLogoFileGuid|{0x1b, 0x9a, 0x3d, 0x71, 0x49, 
0x88, 0x47, 0xc5, 0xb7, 0x2a, 0xb0, 0x7d, 0xc5, 0x10, 0x60, 0xc4 
}|VOID*|0x10001004
+  gPlatformModuleTokenSpaceGuid.PcdTianoCoreLogoFileGuid|{ 0x99, 0x8b, 0xB2, 
0x7B, 0xBB, 0x61, 0xD5, 0x11, 0x9A, 0x5D, 0x00, 0x90, 0x27, 0x3F, 0xC1, 0x4D 
}|VOID*|0x10001005
 
 [PcdsFixedAtBuild]
   ## Specifies maximum number of PPIs provided by SecCore.
diff --git a/Platform/BroxtonPlatformPkg/PlatformPkg.fdf 
b/Platform/BroxtonPlatformPkg/PlatformPkg.fdf
index 2ea7e09582..04c3c671d2 100644
--- a/Platform/BroxtonPlatformPkg/PlatformPkg.fdf
+++ b/Platform/BroxtonPlatformPkg/PlatformPkg.fdf
@@ -244,8 +244,8 @@
   INF 
$(PLATFORM_PACKAGE_COMMON)/PlatformSettings/PlatformPostMemPei/PlatformPostMemPei.inf
   
 !if $(PEI_DISPLAY_ENABLE) == TRUE
-  FILE FREEFORM = 7BB28B99-61BB-11D5-9A5D-0090273FC14D {
-    SECTION RAW = MdeModulePkg/Logo/Logo.bmp
+  FILE FREEFORM = PCD(gPlatformModuleTokenSpaceGuid.PcdTianoCoreLogoFileGuid) {
+    SECTION RAW = $(PLATFORM_PACKAGE_COMMON)/Binaries/Logo/Tianocore.bmp
   }
   
   # VBT For Leaf Hill (File Guid is gPeiLeafHillVbtGuid)
@@ -611,12 +611,13 @@ APRIORI DXE {
 
   INF 
$(PLATFORM_PACKAGE_COMMON)/Console/GraphicsOutputDxe/GraphicsOutputDxe.inf
 
-  FILE FREEFORM = PCD(gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdLogoFile) {
-  SECTION RAW = $(PLATFORM_PACKAGE_COMMON)/Binaries/Logo/Logo.bmp
-}
+  FILE FREEFORM = PCD(gPlatformModuleTokenSpaceGuid.PcdTianoCoreLogoFileGuid) {
+  SECTION RAW = $(PLATFORM_PACKAGE_COMMON)/Binaries/Logo/Tianocore.bmp
+  }
+  
   FILE FREEFORM = PCD(gPlatformModuleTokenSpaceGuid.PcdLogoFileGuid) {
   SECTION RAW = $(PLATFORM_NAME)/Board/MinnowBoard3/Logo/MinnowBoardLogo.bmp
-}
+  }
 
   INF $(PLATFORM_PACKAGE_COMMON)/PnpDxe/PnpDxe.inf
   INF $(PLATFORM_PACKAGE_COMMON)/PlatformSettings/PlatformGpio/PlatformGpio.inf
-- 
2.14.1.windows.1

_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to