Revision: 18911
          http://sourceforge.net/p/edk2/code/18911
Author:   vanjeff
Date:     2015-11-20 03:11:40 +0000 (Fri, 20 Nov 2015)
Log Message:
-----------
Rollback the changes from r18879 - r18886.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jeff Fan <[email protected]>

Revision Links:
--------------
    http://sourceforge.net/p/edk2/code/18879
    http://sourceforge.net/p/edk2/code/18886

Modified Paths:
--------------
    branches/UDK2015/MdeModulePkg/MdeModulePkg.dec
    branches/UDK2015/MdeModulePkg/MdeModulePkg.dsc
    branches/UDK2015/Nt32Pkg/Library/PlatformBootManagerLib/MemoryTest.c
    
branches/UDK2015/Nt32Pkg/Library/PlatformBootManagerLib/PlatformBootManager.c
    
branches/UDK2015/Nt32Pkg/Library/PlatformBootManagerLib/PlatformBootManager.h
    
branches/UDK2015/Nt32Pkg/Library/PlatformBootManagerLib/PlatformBootManagerLib.inf
    branches/UDK2015/Nt32Pkg/Nt32Pkg.dsc

Removed Paths:
-------------
    branches/UDK2015/MdeModulePkg/Include/Library/BootLogoLib.h
    branches/UDK2015/MdeModulePkg/Include/Library/ImageDecoderLib.h
    branches/UDK2015/MdeModulePkg/Include/Protocol/PlatformLogo.h
    branches/UDK2015/MdeModulePkg/Library/BmpImageDecoderLib/
    branches/UDK2015/MdeModulePkg/Library/BootLogoLib/
    branches/UDK2015/MdeModulePkg/Library/ImageDecoderLib/

Deleted: branches/UDK2015/MdeModulePkg/Include/Library/BootLogoLib.h
===================================================================
--- branches/UDK2015/MdeModulePkg/Include/Library/BootLogoLib.h 2015-11-20 
01:51:15 UTC (rev 18910)
+++ branches/UDK2015/MdeModulePkg/Include/Library/BootLogoLib.h 2015-11-20 
03:11:40 UTC (rev 18911)
@@ -1,82 +0,0 @@
-/** @file
-  This library is only intended to be used by PlatformBootManagerLib
-  to show progress bar and LOGO.
-
-Copyright (c) 2011 - 2015, 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 that accompanies this distribution.
-The full text of the license may be found at
-http://opensource.org/licenses/bsd-license.php.
-
-THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-
-**/
-
-#ifndef _BOOT_LOGO_LIB_H_
-#define _BOOT_LOGO_LIB_H_
-
-#include <Protocol/PlatformLogo.h>
-
-/**
-  Show LOGO on all consoles.
-
-  @param[in]  ImageFormat Format of the image file.
-  @param[in]  LogoFile    The file name of logo to display.
-  @param[in]  Attribute   The display attributes of the image returned.
-  @param[in]  OffsetX     The X offset of the image regarding the Attribute.
-  @param[in]  OffsetY     The Y offset of the image regarding the Attribute.
-
-  @retval EFI_SUCCESS     Logo was displayed.
-  @retval EFI_UNSUPPORTED Logo was not found or cannot be displayed.
-**/
-EFI_STATUS
-EFIAPI
-BootLogoEnableLogo (
-  IN  IMAGE_FORMAT                          ImageFormat,
-  IN  EFI_GUID                              *Logo,
-  IN  EDKII_PLATFORM_LOGO_DISPLAY_ATTRIBUTE Attribute,
-  IN  INTN                                  OffsetX,
-  IN  INTN                                  OffsetY
-  );
-
-
-/**
-  Use SystemTable ConOut to turn on video based Simple Text Out consoles. The 
-  Simple Text Out screens will now be synced up with all non-video output 
devices.
-
-  @retval EFI_SUCCESS     UGA devices are back in text mode and synced up.
-
-**/
-EFI_STATUS
-EFIAPI
-BootLogoDisableLogo (
-  VOID
-  );
-
-/**
-
-  Update progress bar with title above it. It only works in Graphics mode.
-
-  @param TitleForeground Foreground color for Title.
-  @param TitleBackground Background color for Title.
-  @param Title           Title above progress bar.
-  @param ProgressColor   Progress bar color.
-  @param Progress        Progress (0-100)
-  @param PreviousValue   The previous value of the progress.
-
-  @retval  EFI_STATUS    Successly update the progress bar
-
-**/
-EFI_STATUS
-EFIAPI
-BootLogoUpdateProgress (
-  IN EFI_GRAPHICS_OUTPUT_BLT_PIXEL TitleForeground,
-  IN EFI_GRAPHICS_OUTPUT_BLT_PIXEL TitleBackground,
-  IN CHAR16                        *Title,
-  IN EFI_GRAPHICS_OUTPUT_BLT_PIXEL ProgressColor,
-  IN UINTN                         Progress,
-  IN UINTN                         PreviousValue
-  );
-
-#endif

Deleted: branches/UDK2015/MdeModulePkg/Include/Library/ImageDecoderLib.h
===================================================================
--- branches/UDK2015/MdeModulePkg/Include/Library/ImageDecoderLib.h     
2015-11-20 01:51:15 UTC (rev 18910)
+++ branches/UDK2015/MdeModulePkg/Include/Library/ImageDecoderLib.h     
2015-11-20 03:11:40 UTC (rev 18911)
@@ -1,76 +0,0 @@
-/** @file
-  This library provides image decoding service by managing the different
-  image decoding libraries.
-
-Copyright (c) 2015, 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 that accompanies this distribution.
-The full text of the license may be found at
-http://opensource.org/licenses/bsd-license.php.
-
-THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-
-**/
-#ifndef __IMAGE_DECODER_LIB_H__
-#define __IMAGE_DECODER_LIB_H__
-#include <Protocol/PlatformLogo.h>
-
-typedef
-EFI_STATUS
-(EFIAPI *DECODE_IMAGE)(
-  IN  IMAGE_FORMAT                  ImageFormat,
-  IN  UINT8                         *Image,
-  IN  UINTN                         ImageSize,
-  OUT EFI_GRAPHICS_OUTPUT_BLT_PIXEL **GopBlt,
-  OUT UINTN                         *GopBltSize,
-  OUT UINTN                         *PixelWidth,
-  OUT UINTN                         *PixelHeight
-  );
-
-/**
-  Convert a graphics image to a callee allocated GOP blt buffer.
-
-  @param  ImageFormat   Format of the image file.
-  @param  Image         Pointer to image file.
-  @param  ImageSize     Number of bytes in Image.
-  @param  GopBlt        Buffer containing GOP version of Image.
-  @param  GopBltSize    Size of GopBlt in bytes.
-  @param  PixelWidth    Width of GopBlt/Image in pixels.
-  @param  PixelHeight   Height of GopBlt/Image in pixels.
-
-  @retval EFI_SUCCESS           GopBlt and GopBltSize are returned.
-  @retval EFI_INVALID_PARAMETER GopBlt or GopBltSize is NULL.
-  @retval EFI_INVALID_PARAMETER Image is NULL or ImageSize is 0.
-  @retval EFI_UNSUPPORTED       Image is not supported.
-  @retval EFI_OUT_OF_RESOURCES  No enough buffer to allocate.
-
-**/
-EFI_STATUS
-EFIAPI
-DecodeImage (
-  IN  IMAGE_FORMAT                  ImageFormat,
-  IN  UINT8                         *Image,
-  IN  UINTN                         ImageSize,
-  OUT EFI_GRAPHICS_OUTPUT_BLT_PIXEL **GopBlt,
-  OUT UINTN                         *GopBltSize,
-  OUT UINTN                         *PixelWidth,
-  OUT UINTN                         *PixelHeight
-  );
-
-/**
-  Register an image decoder.
-
-  @param Decoder  An image decoder.
-
-  @retval EFI_SUCCESS          The decoder was successfully registered.
-  @retval EFI_OUT_OF_RESOURCES No enough resource to register the decoder.
-
-**/
-EFI_STATUS
-EFIAPI
-RegisterImageDecoder (
-  IN  DECODE_IMAGE     Decoder
-  );
-
-#endif

Deleted: branches/UDK2015/MdeModulePkg/Include/Protocol/PlatformLogo.h
===================================================================
--- branches/UDK2015/MdeModulePkg/Include/Protocol/PlatformLogo.h       
2015-11-20 01:51:15 UTC (rev 18910)
+++ branches/UDK2015/MdeModulePkg/Include/Protocol/PlatformLogo.h       
2015-11-20 03:11:40 UTC (rev 18911)
@@ -1,86 +0,0 @@
-/** @file
-  The Platform Logo Protocol defines the interface to get the Platform logo
-  image with the display attribute.
-
-Copyright (c) 2015, 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 that accompanies this 
distribution.  
-The full text of the license may be found at
-http://opensource.org/licenses/bsd-license.php.                                
          
-    
-THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,          
           
-WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-
-**/
-
-#ifndef __PLATFORM_LOGO_H__
-#define __PLATFORM_LOGO_H__
-
-//
-// GUID for EDKII Platform Logo Protocol
-//
-#define EDKII_PLATFORM_LOGO_PROTOCOL_GUID \
-  { 0x9b517978, 0xeba1, 0x44e7, { 0xba, 0x65, 0x7c, 0x2c, 0xd0, 0x8b, 0xf8, 
0xe9 } }
-
-typedef struct _EDKII_PLATFORM_LOGO_PROTOCOL EDKII_PLATFORM_LOGO_PROTOCOL;
-
-typedef enum {
-  ImageFormatUnknown,
-  ImageFormatBmp,
-  ImageFormatJpeg,
-  ImageFormatTiff,
-  ImageFormatGif
-} IMAGE_FORMAT;
-
-typedef enum {
-  EdkiiPlatformLogoDisplayAttributeLeftTop,
-  EdkiiPlatformLogoDisplayAttributeCenterTop,
-  EdkiiPlatformLogoDisplayAttributeRightTop,
-  EdkiiPlatformLogoDisplayAttributeCenterRight,
-  EdkiiPlatformLogoDisplayAttributeRightBottom,
-  EdkiiPlatformLogoDisplayAttributeCenterBottom,
-  EdkiiPlatformLogoDisplayAttributeLeftBottom,
-  EdkiiPlatformLogoDisplayAttributeCenterLeft,
-  EdkiiPlatformLogoDisplayAttributeCenter
-} EDKII_PLATFORM_LOGO_DISPLAY_ATTRIBUTE;
-
-/**
-
-  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 Format            The format of the image. Examples: BMP, JPEG.
-  @param ImageData         The image data for the badge file. Currently only 
-                           supports the .bmp file format. 
-  @param ImageSize         The size of the image returned.
-  @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.
-
-**/
-typedef
-EFI_STATUS
-(EFIAPI *EDKII_PLATFORM_LOGO_GET_IMAGE)(
-  IN     EDKII_PLATFORM_LOGO_PROTOCOL          *This,
-  IN OUT UINT32                                *Instance,
-     OUT IMAGE_FORMAT                          *Format,
-     OUT UINT8                                 **ImageData,
-     OUT UINTN                                 *ImageSize,
-     OUT EDKII_PLATFORM_LOGO_DISPLAY_ATTRIBUTE *Attribute,
-     OUT INTN                                  *OffsetX,
-     OUT INTN                                  *OffsetY
-);
-
-
-struct _EDKII_PLATFORM_LOGO_PROTOCOL {
-  EDKII_PLATFORM_LOGO_GET_IMAGE GetImage;
-};
-
-
-extern EFI_GUID gEdkiiPlatformLogoProtocolGuid;
-
-#endif

Modified: branches/UDK2015/MdeModulePkg/MdeModulePkg.dec
===================================================================
--- branches/UDK2015/MdeModulePkg/MdeModulePkg.dec      2015-11-20 01:51:15 UTC 
(rev 18910)
+++ branches/UDK2015/MdeModulePkg/MdeModulePkg.dec      2015-11-20 03:11:40 UTC 
(rev 18911)
@@ -131,14 +131,6 @@
   #
   PlatformVarCleanupLib|Include/Library/PlatformVarCleanupLib.h
 
-  ## @libraryclass  Provides image decoding service.
-  #
-  ImageDecoderLib|Include/Library/ImageDecoderLib.h
-
-  ## @libraryclass  Provides interfaces about logo display.
-  #
-  BootLogoLib|Include/Library/BootLogoLib.h
-
 [Guids]
   ## MdeModule package token space guid
   # Include/Guid/MdeModulePkgTokenSpace.h
@@ -457,9 +449,6 @@
   ## Include/Protocol/SmmReadyToBoot.h
   gEdkiiSmmReadyToBootProtocolGuid = { 0x6e057ecf, 0xfa99, 0x4f39, { 0x95, 
0xbc, 0x59, 0xf9, 0x92, 0x1d, 0x17, 0xe4 } }
 
-  ## Include/Protocol/PlatformLogo.h
-  gEdkiiPlatformLogoProtocolGuid = { 0x9b517978, 0xeba1, 0x44e7, { 0xba, 0x65, 
0x7c, 0x2c, 0xd0, 0x8b, 0xf8, 0xe9 } }
-
 #
 # [Error.gEfiMdeModulePkgTokenSpaceGuid]
 #   0x80000001 | Invalid value provided.

Modified: branches/UDK2015/MdeModulePkg/MdeModulePkg.dsc
===================================================================
--- branches/UDK2015/MdeModulePkg/MdeModulePkg.dsc      2015-11-20 01:51:15 UTC 
(rev 18910)
+++ branches/UDK2015/MdeModulePkg/MdeModulePkg.dsc      2015-11-20 03:11:40 UTC 
(rev 18911)
@@ -47,7 +47,6 @@
   PeCoffLib|MdePkg/Library/BasePeCoffLib/BasePeCoffLib.inf
   
PeCoffGetEntryPointLib|MdePkg/Library/BasePeCoffGetEntryPointLib/BasePeCoffGetEntryPointLib.inf
   SortLib|MdeModulePkg/Library/BaseSortLib/BaseSortLib.inf
-  ImageDecoderLib|MdeModulePkg/Library/ImageDecoderLib/ImageDecoderLib.inf
   #
   # UEFI & PI
   #
@@ -277,9 +276,6 @@
   
MdeModulePkg/Library/PeiDxeDebugLibReportStatusCode/PeiDxeDebugLibReportStatusCode.inf
   MdeModulePkg/Library/UefiBootManagerLib/UefiBootManagerLib.inf
   
MdeModulePkg/Library/PlatformBootManagerLibNull/PlatformBootManagerLibNull.inf
-  MdeModulePkg/Library/ImageDecoderLib/ImageDecoderLib.inf
-  MdeModulePkg/Library/BootLogoLib/BootLogoLib.inf
-  MdeModulePkg/Library/BmpImageDecoderLib/BmpImageDecoderLib.inf
   MdeModulePkg/Library/TpmMeasurementLibNull/TpmMeasurementLibNull.inf
   MdeModulePkg/Library/AuthVariableLibNull/AuthVariableLibNull.inf
   MdeModulePkg/Library/VarCheckLib/VarCheckLib.inf

Modified: branches/UDK2015/Nt32Pkg/Library/PlatformBootManagerLib/MemoryTest.c
===================================================================
--- branches/UDK2015/Nt32Pkg/Library/PlatformBootManagerLib/MemoryTest.c        
2015-11-20 01:51:15 UTC (rev 18910)
+++ branches/UDK2015/Nt32Pkg/Library/PlatformBootManagerLib/MemoryTest.c        
2015-11-20 03:11:40 UTC (rev 18911)
@@ -23,7 +23,180 @@
 //
 // BDS Platform Functions
 //
+/**
 
+  Show progress bar with title above it. It only works in Graphics mode.
+
+
+  @param TitleForeground Foreground color for Title.
+  @param TitleBackground Background color for Title.
+  @param Title           Title above progress bar.
+  @param ProgressColor   Progress bar color.
+  @param Progress        Progress (0-100)
+  @param PreviousValue   The previous value of the progress.
+
+  @retval  EFI_STATUS       Success update the progress bar
+
+**/
+EFI_STATUS
+PlatformBootManagerShowProgress (
+  IN EFI_GRAPHICS_OUTPUT_BLT_PIXEL TitleForeground,
+  IN EFI_GRAPHICS_OUTPUT_BLT_PIXEL TitleBackground,
+  IN CHAR16                        *Title,
+  IN EFI_GRAPHICS_OUTPUT_BLT_PIXEL ProgressColor,
+  IN UINTN                         Progress,
+  IN UINTN                         PreviousValue
+  )
+{
+  EFI_STATUS                     Status;
+  EFI_GRAPHICS_OUTPUT_PROTOCOL   *GraphicsOutput;
+  EFI_UGA_DRAW_PROTOCOL          *UgaDraw;
+  UINT32                         SizeOfX;
+  UINT32                         SizeOfY;
+  UINT32                         ColorDepth;
+  UINT32                         RefreshRate;
+  EFI_GRAPHICS_OUTPUT_BLT_PIXEL  Color;
+  UINTN                          BlockHeight;
+  UINTN                          BlockWidth;
+  UINTN                          BlockNum;
+  UINTN                          PosX;
+  UINTN                          PosY;
+  UINTN                          Index;
+
+  if (Progress > 100) {
+    return EFI_INVALID_PARAMETER;
+  }
+
+  UgaDraw = NULL;
+  Status = gBS->HandleProtocol (
+                  gST->ConsoleOutHandle,
+                  &gEfiGraphicsOutputProtocolGuid,
+                  (VOID **) &GraphicsOutput
+                  );
+  if (EFI_ERROR (Status) && FeaturePcdGet (PcdUgaConsumeSupport)) {
+    GraphicsOutput = NULL;
+
+    Status = gBS->HandleProtocol (
+                    gST->ConsoleOutHandle,
+                    &gEfiUgaDrawProtocolGuid,
+                    (VOID **) &UgaDraw
+                    );
+  }
+  if (EFI_ERROR (Status)) {
+    return EFI_UNSUPPORTED;
+  }
+
+  SizeOfX = 0;
+  SizeOfY = 0;
+  if (GraphicsOutput != NULL) {
+    SizeOfX = GraphicsOutput->Mode->Info->HorizontalResolution;
+    SizeOfY = GraphicsOutput->Mode->Info->VerticalResolution;
+  } else if (UgaDraw != NULL) {
+    Status = UgaDraw->GetMode (
+                        UgaDraw,
+                        &SizeOfX,
+                        &SizeOfY,
+                        &ColorDepth,
+                        &RefreshRate
+                        );
+    if (EFI_ERROR (Status)) {
+      return EFI_UNSUPPORTED;
+    }
+  } else {
+    return EFI_UNSUPPORTED;
+  }
+
+  BlockWidth  = SizeOfX / 100;
+  BlockHeight = SizeOfY / 50;
+
+  BlockNum    = Progress;
+
+  PosX        = 0;
+  PosY        = SizeOfY * 48 / 50;
+
+  if (BlockNum == 0) {
+    //
+    // Clear progress area
+    //
+    SetMem (&Color, sizeof (EFI_GRAPHICS_OUTPUT_BLT_PIXEL), 0x0);
+
+    if (GraphicsOutput != NULL) {
+      Status = GraphicsOutput->Blt (
+                          GraphicsOutput,
+                          &Color,
+                          EfiBltVideoFill,
+                          0,
+                          0,
+                          0,
+                          PosY - EFI_GLYPH_HEIGHT - 1,
+                          SizeOfX,
+                          SizeOfY - (PosY - EFI_GLYPH_HEIGHT - 1),
+                          SizeOfX * sizeof (EFI_GRAPHICS_OUTPUT_BLT_PIXEL)
+                          );
+    } else if (FeaturePcdGet (PcdUgaConsumeSupport)) {
+      Status = UgaDraw->Blt (
+                          UgaDraw,
+                          (EFI_UGA_PIXEL *) &Color,
+                          EfiUgaVideoFill,
+                          0,
+                          0,
+                          0,
+                          PosY - EFI_GLYPH_HEIGHT - 1,
+                          SizeOfX,
+                          SizeOfY - (PosY - EFI_GLYPH_HEIGHT - 1),
+                          SizeOfX * sizeof (EFI_UGA_PIXEL)
+                          );
+    } else {
+      return EFI_UNSUPPORTED;
+    }
+  }
+  //
+  // Show progress by drawing blocks
+  //
+  for (Index = PreviousValue; Index < BlockNum; Index++) {
+    PosX = Index * BlockWidth;
+    if (GraphicsOutput != NULL) {
+      Status = GraphicsOutput->Blt (
+                          GraphicsOutput,
+                          &ProgressColor,
+                          EfiBltVideoFill,
+                          0,
+                          0,
+                          PosX,
+                          PosY,
+                          BlockWidth - 1,
+                          BlockHeight,
+                          (BlockWidth) * sizeof (EFI_GRAPHICS_OUTPUT_BLT_PIXEL)
+                          );
+    } else if (FeaturePcdGet (PcdUgaConsumeSupport)) {
+      Status = UgaDraw->Blt (
+                          UgaDraw,
+                          (EFI_UGA_PIXEL *) &ProgressColor,
+                          EfiUgaVideoFill,
+                          0,
+                          0,
+                          PosX,
+                          PosY,
+                          BlockWidth - 1,
+                          BlockHeight,
+                          (BlockWidth) * sizeof (EFI_UGA_PIXEL)
+                          );
+    } else {
+      return EFI_UNSUPPORTED;
+    }
+  }
+
+  PrintXY (
+    (SizeOfX - StrLen (Title) * EFI_GLYPH_WIDTH) / 2,
+    PosY - EFI_GLYPH_HEIGHT - 1,
+    &TitleForeground,
+    &TitleBackground,
+    Title
+    );
+
+  return EFI_SUCCESS;
+}
+
 /**
   Perform the memory test base on the memory test intensive level,
   and update the memory resource.
@@ -173,7 +346,7 @@
 
         TmpStr = HiiGetString (gStringPackHandle, STRING_TOKEN 
(STR_PERFORM_MEM_TEST), NULL);
         if (TmpStr != NULL) {
-          BootLogoUpdateProgress (
+          PlatformBootManagerShowProgress (
             Foreground,
             Background,
             TmpStr,
@@ -197,7 +370,7 @@
           if (!FeaturePcdGet(PcdBootlogoOnlyEnable)) {
             TmpStr = HiiGetString (gStringPackHandle, STRING_TOKEN 
(STR_PERFORM_MEM_TEST), NULL);
             if (TmpStr != NULL) {
-              BootLogoUpdateProgress (
+              PlatformBootManagerShowProgress (
                 Foreground,
                 Background,
                 TmpStr,
@@ -241,7 +414,7 @@
     }
 
     PrintXY (10, 10, NULL, NULL, StrTotalMemory);
-    BootLogoUpdateProgress (
+    PlatformBootManagerShowProgress (
       Foreground,
       Background,
       StrTotalMemory,
@@ -257,3 +430,657 @@
   FreePool (Pos);
   return ReturnStatus;
 }
+
+/**
+  Convert a *.BMP graphics image to a GOP blt buffer. If a NULL Blt buffer
+  is passed in a GopBlt buffer will be allocated by this routine. If a GopBlt
+  buffer is passed in it will be used if it is big enough.
+
+  @param  BmpImage      Pointer to BMP file
+  @param  BmpImageSize  Number of bytes in BmpImage
+  @param  GopBlt        Buffer containing GOP version of BmpImage.
+  @param  GopBltSize    Size of GopBlt in bytes.
+  @param  PixelHeight   Height of GopBlt/BmpImage in pixels
+  @param  PixelWidth    Width of GopBlt/BmpImage in pixels
+
+  @retval EFI_SUCCESS           GopBlt and GopBltSize are returned.
+  @retval EFI_UNSUPPORTED       BmpImage is not a valid *.BMP image
+  @retval EFI_BUFFER_TOO_SMALL  The passed in GopBlt buffer is not big enough.
+                                GopBltSize will contain the required size.
+  @retval EFI_OUT_OF_RESOURCES  No enough buffer to allocate.
+
+**/
+EFI_STATUS
+PlatformBootManagerConvertBmpToGopBlt (
+  IN     VOID      *BmpImage,
+  IN     UINTN     BmpImageSize,
+  IN OUT VOID      **GopBlt,
+  IN OUT UINTN     *GopBltSize,
+     OUT UINTN     *PixelHeight,
+     OUT UINTN     *PixelWidth
+  )
+{
+  UINT8                         *Image;
+  UINT8                         *ImageHeader;
+  BMP_IMAGE_HEADER              *BmpHeader;
+  BMP_COLOR_MAP                 *BmpColorMap;
+  EFI_GRAPHICS_OUTPUT_BLT_PIXEL *BltBuffer;
+  EFI_GRAPHICS_OUTPUT_BLT_PIXEL *Blt;
+  UINT64                        BltBufferSize;
+  UINTN                         Index;
+  UINTN                         Height;
+  UINTN                         Width;
+  UINTN                         ImageIndex;
+  UINT32                        DataSizePerLine;
+  BOOLEAN                       IsAllocated;
+  UINT32                        ColorMapNum;
+
+  if (sizeof (BMP_IMAGE_HEADER) > BmpImageSize) {
+    return EFI_INVALID_PARAMETER;
+  }
+
+  BmpHeader = (BMP_IMAGE_HEADER *) BmpImage;
+
+  if (BmpHeader->CharB != 'B' || BmpHeader->CharM != 'M') {
+    return EFI_UNSUPPORTED;
+  }
+
+  //
+  // Doesn't support compress.
+  //
+  if (BmpHeader->CompressionType != 0) {
+    return EFI_UNSUPPORTED;
+  }
+
+  //
+  // Only support BITMAPINFOHEADER format.
+  // BITMAPFILEHEADER + BITMAPINFOHEADER = BMP_IMAGE_HEADER
+  //
+  if (BmpHeader->HeaderSize != sizeof (BMP_IMAGE_HEADER) - 
OFFSET_OF(BMP_IMAGE_HEADER, HeaderSize)) {
+    return EFI_UNSUPPORTED;
+  }
+
+  //
+  // The data size in each line must be 4 byte alignment.
+  //
+  DataSizePerLine = ((BmpHeader->PixelWidth * BmpHeader->BitPerPixel + 31) >> 
3) & (~0x3);
+  BltBufferSize = MultU64x32 (DataSizePerLine, BmpHeader->PixelHeight);
+  if (BltBufferSize > (UINT32) ~0) {
+    return EFI_INVALID_PARAMETER;
+  }
+
+  if ((BmpHeader->Size != BmpImageSize) || 
+      (BmpHeader->Size < BmpHeader->ImageOffset) ||
+      (BmpHeader->Size - BmpHeader->ImageOffset !=  BmpHeader->PixelHeight * 
DataSizePerLine)) {
+    return EFI_INVALID_PARAMETER;
+  }
+
+  //
+  // Calculate Color Map offset in the image.
+  //
+  Image       = BmpImage;
+  BmpColorMap = (BMP_COLOR_MAP *) (Image + sizeof (BMP_IMAGE_HEADER));
+  if (BmpHeader->ImageOffset < sizeof (BMP_IMAGE_HEADER)) {
+    return EFI_INVALID_PARAMETER;
+  }
+
+  if (BmpHeader->ImageOffset > sizeof (BMP_IMAGE_HEADER)) {
+    switch (BmpHeader->BitPerPixel) {
+      case 1:
+        ColorMapNum = 2;
+        break;
+      case 4:
+        ColorMapNum = 16;
+        break;
+      case 8:
+        ColorMapNum = 256;
+        break;
+      default:
+        ColorMapNum = 0;
+        break;
+      }
+    //
+    // BMP file may has padding data between the bmp header section and the 
bmp data section.
+    //
+    if (BmpHeader->ImageOffset - sizeof (BMP_IMAGE_HEADER) < sizeof 
(BMP_COLOR_MAP) * ColorMapNum) {
+      return EFI_INVALID_PARAMETER;
+    }
+  }
+
+  //
+  // Calculate graphics image data address in the image
+  //
+  Image         = ((UINT8 *) BmpImage) + BmpHeader->ImageOffset;
+  ImageHeader   = Image;
+
+  //
+  // Calculate the BltBuffer needed size.
+  //
+  BltBufferSize = MultU64x32 ((UINT64) BmpHeader->PixelWidth, 
BmpHeader->PixelHeight);
+  //
+  // Ensure the BltBufferSize * sizeof (EFI_GRAPHICS_OUTPUT_BLT_PIXEL) doesn't 
overflow
+  //
+  if (BltBufferSize > DivU64x32 ((UINTN) ~0, sizeof 
(EFI_GRAPHICS_OUTPUT_BLT_PIXEL))) {
+    return EFI_UNSUPPORTED;
+  }
+  BltBufferSize = MultU64x32 (BltBufferSize, sizeof 
(EFI_GRAPHICS_OUTPUT_BLT_PIXEL));
+
+  IsAllocated   = FALSE;
+  if (*GopBlt == NULL) {
+    //
+    // GopBlt is not allocated by caller.
+    //
+    *GopBltSize = (UINTN) BltBufferSize;
+    *GopBlt     = AllocatePool (*GopBltSize);
+    IsAllocated = TRUE;
+    if (*GopBlt == NULL) {
+      return EFI_OUT_OF_RESOURCES;
+    }
+  } else {
+    //
+    // GopBlt has been allocated by caller.
+    //
+    if (*GopBltSize < (UINTN) BltBufferSize) {
+      *GopBltSize = (UINTN) BltBufferSize;
+      return EFI_BUFFER_TOO_SMALL;
+    }
+  }
+
+  *PixelWidth   = BmpHeader->PixelWidth;
+  *PixelHeight  = BmpHeader->PixelHeight;
+
+  //
+  // Convert image from BMP to Blt buffer format
+  //
+  BltBuffer = *GopBlt;
+  for (Height = 0; Height < BmpHeader->PixelHeight; Height++) {
+    Blt = &BltBuffer[(BmpHeader->PixelHeight - Height - 1) * 
BmpHeader->PixelWidth];
+    for (Width = 0; Width < BmpHeader->PixelWidth; Width++, Image++, Blt++) {
+      switch (BmpHeader->BitPerPixel) {
+      case 1:
+        //
+        // Convert 1-bit (2 colors) BMP to 24-bit color
+        //
+        for (Index = 0; Index < 8 && Width < BmpHeader->PixelWidth; Index++) {
+          Blt->Red    = BmpColorMap[((*Image) >> (7 - Index)) & 0x1].Red;
+          Blt->Green  = BmpColorMap[((*Image) >> (7 - Index)) & 0x1].Green;
+          Blt->Blue   = BmpColorMap[((*Image) >> (7 - Index)) & 0x1].Blue;
+          Blt++;
+          Width++;
+        }
+
+        Blt--;
+        Width--;
+        break;
+
+      case 4:
+        //
+        // Convert 4-bit (16 colors) BMP Palette to 24-bit color
+        //
+        Index       = (*Image) >> 4;
+        Blt->Red    = BmpColorMap[Index].Red;
+        Blt->Green  = BmpColorMap[Index].Green;
+        Blt->Blue   = BmpColorMap[Index].Blue;
+        if (Width < (BmpHeader->PixelWidth - 1)) {
+          Blt++;
+          Width++;
+          Index       = (*Image) & 0x0f;
+          Blt->Red    = BmpColorMap[Index].Red;
+          Blt->Green  = BmpColorMap[Index].Green;
+          Blt->Blue   = BmpColorMap[Index].Blue;
+        }
+        break;
+
+      case 8:
+        //
+        // Convert 8-bit (256 colors) BMP Palette to 24-bit color
+        //
+        Blt->Red    = BmpColorMap[*Image].Red;
+        Blt->Green  = BmpColorMap[*Image].Green;
+        Blt->Blue   = BmpColorMap[*Image].Blue;
+        break;
+
+      case 24:
+        //
+        // It is 24-bit BMP.
+        //
+        Blt->Blue   = *Image++;
+        Blt->Green  = *Image++;
+        Blt->Red    = *Image;
+        break;
+
+      default:
+        //
+        // Other bit format BMP is not supported.
+        //
+        if (IsAllocated) {
+          FreePool (*GopBlt);
+          *GopBlt = NULL;
+        }
+        return EFI_UNSUPPORTED;
+        break;
+      };
+
+    }
+
+    ImageIndex = (UINTN) (Image - ImageHeader);
+    if ((ImageIndex % 4) != 0) {
+      //
+      // Bmp Image starts each row on a 32-bit boundary!
+      //
+      Image = Image + (4 - (ImageIndex % 4));
+    }
+  }
+
+  return EFI_SUCCESS;
+}
+
+/**
+  Use SystemTable Conout to stop video based Simple Text Out consoles from 
going
+  to the video device. Put up LogoFile on every video device that is a console.
+
+  @param[in]  LogoFile   File name of logo to display on the center of the 
screen.
+
+  @retval EFI_SUCCESS     ConsoleControl has been flipped to graphics and logo 
displayed.
+  @retval EFI_UNSUPPORTED Logo not found
+
+**/
+EFI_STATUS
+PlatformBootManagerEnableQuietBoot (
+  IN  EFI_GUID  *LogoFile
+  )
+{
+  EFI_STATUS                    Status;
+  EFI_OEM_BADGING_PROTOCOL      *Badging;
+  UINT32                        SizeOfX;
+  UINT32                        SizeOfY;
+  INTN                          DestX;
+  INTN                          DestY;
+  UINT8                         *ImageData;
+  UINTN                         ImageSize;
+  UINTN                         BltSize;
+  UINT32                        Instance;
+  EFI_BADGING_FORMAT            Format;
+  EFI_BADGING_DISPLAY_ATTRIBUTE Attribute;
+  UINTN                         CoordinateX;
+  UINTN                         CoordinateY;
+  UINTN                         Height;
+  UINTN                         Width;
+  EFI_GRAPHICS_OUTPUT_BLT_PIXEL *Blt;
+  EFI_UGA_DRAW_PROTOCOL         *UgaDraw;
+  UINT32                        ColorDepth;
+  UINT32                        RefreshRate;
+  EFI_GRAPHICS_OUTPUT_PROTOCOL  *GraphicsOutput;
+  EFI_BOOT_LOGO_PROTOCOL        *BootLogo;
+  UINTN                         NumberOfLogos;
+  EFI_GRAPHICS_OUTPUT_BLT_PIXEL *LogoBlt;
+  UINTN                         LogoDestX;
+  UINTN                         LogoDestY;
+  UINTN                         LogoHeight;
+  UINTN                         LogoWidth;
+  UINTN                         NewDestX;
+  UINTN                         NewDestY;
+  UINTN                         NewHeight;
+  UINTN                         NewWidth;
+  UINT64                        BufferSize;
+
+  UgaDraw = NULL;
+  //
+  // Try to open GOP first
+  //
+  Status = gBS->HandleProtocol (gST->ConsoleOutHandle, 
&gEfiGraphicsOutputProtocolGuid, (VOID **) &GraphicsOutput);
+  if (EFI_ERROR (Status) && FeaturePcdGet (PcdUgaConsumeSupport)) {
+    GraphicsOutput = NULL;
+    //
+    // Open GOP failed, try to open UGA
+    //
+    Status = gBS->HandleProtocol (gST->ConsoleOutHandle, 
&gEfiUgaDrawProtocolGuid, (VOID **) &UgaDraw);
+  }
+  if (EFI_ERROR (Status)) {
+    return EFI_UNSUPPORTED;
+  }
+
+  //
+  // Try to open Boot Logo Protocol.
+  //
+  BootLogo = NULL;
+  gBS->LocateProtocol (&gEfiBootLogoProtocolGuid, NULL, (VOID **) &BootLogo);
+
+  //
+  // Erase Cursor from screen
+  //
+  gST->ConOut->EnableCursor (gST->ConOut, FALSE);
+
+  Badging = NULL;
+  Status  = gBS->LocateProtocol (&gEfiOEMBadgingProtocolGuid, NULL, (VOID **) 
&Badging);
+
+  if (GraphicsOutput != NULL) {
+    SizeOfX = GraphicsOutput->Mode->Info->HorizontalResolution;
+    SizeOfY = GraphicsOutput->Mode->Info->VerticalResolution;
+
+  } else if (UgaDraw != NULL && FeaturePcdGet (PcdUgaConsumeSupport)) {
+    Status = UgaDraw->GetMode (UgaDraw, &SizeOfX, &SizeOfY, &ColorDepth, 
&RefreshRate);
+    if (EFI_ERROR (Status)) {
+      return EFI_UNSUPPORTED;
+    }
+  } else {
+    return EFI_UNSUPPORTED;
+  }
+
+  Blt = NULL;
+  NumberOfLogos = 0;
+  LogoDestX = 0;
+  LogoDestY = 0;
+  LogoHeight = 0;
+  LogoWidth = 0;
+  NewDestX = 0;
+  NewDestY = 0;
+  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;
+      }
+
+      //
+      // Currently only support BMP format.
+      //
+      if (Format != EfiBadgingFormatBMP) {
+        if (ImageData != NULL) {
+          FreePool (ImageData);
+        }
+        continue;
+      }
+    } 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;
+      if (!FeaturePcdGet(PcdBootlogoOnlyEnable)) {
+        Attribute   = EfiBadgingDisplayAttributeCenter;
+      } else {
+        Attribute   = EfiBadgingDisplayAttributeCustomized;
+      } 
+    }
+
+    if (Blt != NULL) {
+      FreePool (Blt);
+    }
+    Blt = NULL;
+    Status = PlatformBootManagerConvertBmpToGopBlt (
+              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;
+
+    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;
+
+    case EfiBadgingDisplayAttributeCustomized:
+      DestX = (SizeOfX - Width) / 2;
+      DestY = ((SizeOfY * 382) / 1000) - 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;
+      }
+
+      //
+      // 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;
+        }
+      }
+    }
+
+    FreePool (ImageData);
+
+    if (Badging == NULL) {
+      break;
+    }
+  }
+
+Done:
+  if (BootLogo == NULL || NumberOfLogos == 0) {
+    //
+    // No logo displayed.
+    //
+    if (Blt != NULL) {
+      FreePool (Blt);
+    }
+
+    return Status;
+  }
+
+  //
+  // Advertise displayed Logo information.
+  //
+  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);
+
+    //
+    // 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 (GraphicsOutput != NULL) {
+      Status = GraphicsOutput->Blt (
+                          GraphicsOutput,
+                          LogoBlt,
+                          EfiBltVideoToBltBuffer,
+                          LogoDestX,
+                          LogoDestY,
+                          0,
+                          0,
+                          LogoWidth,
+                          LogoHeight,
+                          LogoWidth * sizeof (EFI_GRAPHICS_OUTPUT_BLT_PIXEL)
+                          );
+    } else if (UgaDraw != NULL && FeaturePcdGet (PcdUgaConsumeSupport)) {
+      Status = UgaDraw->Blt (
+                          UgaDraw,
+                          (EFI_UGA_PIXEL *) LogoBlt,
+                          EfiUgaVideoToBltBuffer,
+                          LogoDestX,
+                          LogoDestY,
+                          0,
+                          0,
+                          LogoWidth,
+                          LogoHeight,
+                          LogoWidth * sizeof (EFI_UGA_PIXEL)
+                          );
+    } else {
+      Status = EFI_UNSUPPORTED;
+    }
+  }
+
+  if (!EFI_ERROR (Status)) {
+    BootLogo->SetBootLogo (BootLogo, LogoBlt, LogoDestX, LogoDestY, LogoWidth, 
LogoHeight);
+  }
+  FreePool (LogoBlt);
+
+  return Status;
+}
+
+/**
+  Use SystemTable Conout to turn on video based Simple Text Out consoles. The 
+  Simple Text Out screens will now be synced up with all non video output 
devices
+
+  @retval EFI_SUCCESS     UGA devices are back in text mode and synced up.
+
+**/
+EFI_STATUS
+PlatformBootManagerDisableQuietBoot (
+  VOID
+  )
+{
+  //
+  // Enable Cursor on Screen
+  //
+  gST->ConOut->EnableCursor (gST->ConOut, TRUE);
+  return EFI_SUCCESS;
+}

Modified: 
branches/UDK2015/Nt32Pkg/Library/PlatformBootManagerLib/PlatformBootManager.c
===================================================================
--- 
branches/UDK2015/Nt32Pkg/Library/PlatformBootManagerLib/PlatformBootManager.c   
    2015-11-20 01:51:15 UTC (rev 18910)
+++ 
branches/UDK2015/Nt32Pkg/Library/PlatformBootManagerLib/PlatformBootManager.c   
    2015-11-20 03:11:40 UTC (rev 18911)
@@ -38,14 +38,14 @@
   // from the graphic lib
   //
   if (QuietBoot) {
-    BootLogoEnableLogo (ImageFormatBmp, PcdGetPtr(PcdLogoFile), 
EdkiiPlatformLogoDisplayAttributeCenter, 0, 0);
+    PlatformBootManagerEnableQuietBoot (PcdGetPtr(PcdLogoFile));
 
     //
     // Perform system diagnostic
     //
     Status = PlatformBootManagerMemoryTest (MemoryTestLevel);
     if (EFI_ERROR (Status)) {
-      BootLogoDisableLogo ();
+      PlatformBootManagerDisableQuietBoot ();
     }
 
     return;
@@ -271,7 +271,7 @@
   Black.Blue = Black.Green = Black.Red = Black.Reserved = 0;
   White.Blue = White.Green = White.Red = White.Reserved = 0xFF;
 
-  BootLogoUpdateProgress (
+  PlatformBootManagerShowProgress (
     White,
     Black,
     L"Start boot option",

Modified: 
branches/UDK2015/Nt32Pkg/Library/PlatformBootManagerLib/PlatformBootManager.h
===================================================================
--- 
branches/UDK2015/Nt32Pkg/Library/PlatformBootManagerLib/PlatformBootManager.h   
    2015-11-20 01:51:15 UTC (rev 18910)
+++ 
branches/UDK2015/Nt32Pkg/Library/PlatformBootManagerLib/PlatformBootManager.h   
    2015-11-20 03:11:40 UTC (rev 18911)
@@ -15,11 +15,16 @@
 #define _PLATFORM_BOOT_MANAGER_H
 
 #include <PiDxe.h>
+#include <IndustryStandard/Bmp.h>
 #include <Guid/WinNtSystemConfig.h>
 #include <Protocol/GenericMemoryTest.h>
 #include <Protocol/WinNtThunk.h>
 #include <Protocol/WinNtIo.h>
 #include <Protocol/LoadedImage.h>
+#include <Protocol/UgaDraw.h>
+#include <Protocol/GraphicsOutput.h>
+#include <Protocol/OEMBadging.h>
+#include <Protocol/BootLogo.h>
 
 #include <Library/DebugLib.h>
 #include <Library/BaseMemoryLib.h>
@@ -35,7 +40,6 @@
 #include <Library/HiiLib.h>
 #include <Library/PrintLib.h>
 #include <Library/DxeServicesLib.h>
-#include <Library/BootLogoLib.h>
 
 
 typedef struct {

Modified: 
branches/UDK2015/Nt32Pkg/Library/PlatformBootManagerLib/PlatformBootManagerLib.inf
===================================================================
--- 
branches/UDK2015/Nt32Pkg/Library/PlatformBootManagerLib/PlatformBootManagerLib.inf
  2015-11-20 01:51:15 UTC (rev 18910)
+++ 
branches/UDK2015/Nt32Pkg/Library/PlatformBootManagerLib/PlatformBootManagerLib.inf
  2015-11-20 03:11:40 UTC (rev 18911)
@@ -52,7 +52,6 @@
   DevicePathLib
   HiiLib
   PrintLib
-  BootLogoLib
 
 [Guids]
   gEfiWinNtSystemConfigGuid
@@ -61,6 +60,7 @@
   gEfiGenericMemTestProtocolGuid  ## CONSUMES
   gEfiGraphicsOutputProtocolGuid  ## CONSUMES
   gEfiUgaDrawProtocolGuid         ## CONSUMES
+  gEfiOEMBadgingProtocolGuid      ## CONSUMES
   gEfiBootLogoProtocolGuid        ## CONSUMES
 
 [Pcd]

Modified: branches/UDK2015/Nt32Pkg/Nt32Pkg.dsc
===================================================================
--- branches/UDK2015/Nt32Pkg/Nt32Pkg.dsc        2015-11-20 01:51:15 UTC (rev 
18910)
+++ branches/UDK2015/Nt32Pkg/Nt32Pkg.dsc        2015-11-20 03:11:40 UTC (rev 
18911)
@@ -117,8 +117,6 @@
   TimerLib|MdePkg/Library/BaseTimerLibNullTemplate/BaseTimerLibNullTemplate.inf
   SerialPortLib|MdePkg/Library/BaseSerialPortLibNull/BaseSerialPortLibNull.inf
   CapsuleLib|MdeModulePkg/Library/DxeCapsuleLibNull/DxeCapsuleLibNull.inf
-  ImageDecoderLib|MdeModulePkg/Library/ImageDecoderLib/ImageDecoderLib.inf
-  BootLogoLib|MdeModulePkg/Library/BootLogoLib/BootLogoLib.inf
   #
   # Platform
   #
@@ -442,10 +440,7 @@
   NetworkPkg/HttpDxe/HttpDxe.inf
   NetworkPkg/HttpUtilitiesDxe/HttpUtilitiesDxe.inf
 
-  MdeModulePkg/Universal/BdsDxe/BdsDxe.inf {
-    <LibraryClasses>
-      NULL|MdeModulePkg/Library/BmpImageDecoderLib/BmpImageDecoderLib.inf
-  }
+  MdeModulePkg/Universal/BdsDxe/BdsDxe.inf
   MdeModulePkg/Application/UiApp/UiApp.inf
   MdeModulePkg/Universal/DriverHealthManagerDxe/DriverHealthManagerDxe.inf
   MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf


------------------------------------------------------------------------------
_______________________________________________
edk2-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/edk2-commits

Reply via email to