public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
* [Patch 0/2] MdeModulePkg/CapsuleApp: CleanGatherList() fix and UX enhancements
@ 2018-03-21 21:13 Michael D Kinney
  2018-03-21 21:13 ` [Patch 1/2] MdeModulePkg/CapsuleApp: Fix logic bug in CleanGatherList() Michael D Kinney
  2018-03-21 21:13 ` [Patch 2/2] MdeModulePkg/CapsuleApp: Center bitmap at bottom of screen Michael D Kinney
  0 siblings, 2 replies; 5+ messages in thread
From: Michael D Kinney @ 2018-03-21 21:13 UTC (permalink / raw)
  To: edk2-devel; +Cc: Jiewen Yao, Star Zeng, Eric Dong

https://bugzilla.tianocore.org/show_bug.cgi?id=905
https://bugzilla.tianocore.org/show_bug.cgi?id=907

* Fix logic bug in CleanGatherList()
* Make sure BMP file is valid and fits in current GOP resolution
* Generate UX capsule with BMP centered in lower half of display

Cc: Jiewen Yao <jiewen.yao@intel.com>
Cc: Star Zeng <star.zeng@intel.com>
Cc: Eric Dong <eric.dong@intel.com>
Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1

Michael D Kinney (2):
  MdeModulePkg/CapsuleApp: Fix logic bug in CleanGatherList()
  MdeModulePkg/CapsuleApp: Center bitmap at bottom of screen

 MdeModulePkg/Application/CapsuleApp/CapsuleApp.c   | 67 ++++++++++++++++++++--
 MdeModulePkg/Application/CapsuleApp/CapsuleApp.inf |  3 +-
 2 files changed, 63 insertions(+), 7 deletions(-)

-- 
2.14.2.windows.3



^ permalink raw reply	[flat|nested] 5+ messages in thread

* [Patch 1/2] MdeModulePkg/CapsuleApp: Fix logic bug in CleanGatherList()
  2018-03-21 21:13 [Patch 0/2] MdeModulePkg/CapsuleApp: CleanGatherList() fix and UX enhancements Michael D Kinney
@ 2018-03-21 21:13 ` Michael D Kinney
  2018-03-22  0:19   ` Yao, Jiewen
  2018-03-21 21:13 ` [Patch 2/2] MdeModulePkg/CapsuleApp: Center bitmap at bottom of screen Michael D Kinney
  1 sibling, 1 reply; 5+ messages in thread
From: Michael D Kinney @ 2018-03-21 21:13 UTC (permalink / raw)
  To: edk2-devel; +Cc: Jiewen Yao, Star Zeng, Eric Dong

https://bugzilla.tianocore.org/show_bug.cgi?id=905

Fix pointer math when more than one capsule is passed
to the CapsuleApp.  Use the ContinuationPointer from
the last array entry instead of the first array entry.

Cc: Jiewen Yao <jiewen.yao@intel.com>
Cc: Star Zeng <star.zeng@intel.com>
Cc: Eric Dong <eric.dong@intel.com>
Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
---
 MdeModulePkg/Application/CapsuleApp/CapsuleApp.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/MdeModulePkg/Application/CapsuleApp/CapsuleApp.c b/MdeModulePkg/Application/CapsuleApp/CapsuleApp.c
index 393cfe5060..b9ff812179 100644
--- a/MdeModulePkg/Application/CapsuleApp/CapsuleApp.c
+++ b/MdeModulePkg/Application/CapsuleApp/CapsuleApp.c
@@ -1,7 +1,7 @@
 /** @file
   A shell application that triggers capsule update process.
 
-  Copyright (c) 2016 - 2017, Intel Corporation. All rights reserved.<BR>
+  Copyright (c) 2016 - 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
   which accompanies this distribution.  The full text of the license may be found at
@@ -653,7 +653,7 @@ CleanGatherList (
         break;
       }
 
-      TempBlockPtr2 = (VOID *) ((UINTN) TempBlockPtr->Union.ContinuationPointer);
+      TempBlockPtr2 = (VOID *) ((UINTN) TempBlockPtr[Index].Union.ContinuationPointer);
       FreePool(TempBlockPtr1);
       TempBlockPtr1 = TempBlockPtr2;
     }
-- 
2.14.2.windows.3



^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [Patch 2/2] MdeModulePkg/CapsuleApp: Center bitmap at bottom of screen
  2018-03-21 21:13 [Patch 0/2] MdeModulePkg/CapsuleApp: CleanGatherList() fix and UX enhancements Michael D Kinney
  2018-03-21 21:13 ` [Patch 1/2] MdeModulePkg/CapsuleApp: Fix logic bug in CleanGatherList() Michael D Kinney
@ 2018-03-21 21:13 ` Michael D Kinney
  2018-03-22  0:25   ` Yao, Jiewen
  1 sibling, 1 reply; 5+ messages in thread
From: Michael D Kinney @ 2018-03-21 21:13 UTC (permalink / raw)
  To: edk2-devel; +Cc: Jiewen Yao, Star Zeng, Eric Dong

https://bugzilla.tianocore.org/show_bug.cgi?id=907

When -G option is used to convert a BMP file to a UX capsule,
the bitmap is centered horizontally and placed in the lower
half of the screen below the boot logo.

This matches examples shown in the following pages:

https://docs.microsoft.com/en-us/windows-hardware/drivers/bringup/user-experience-for-uefi-firmware-updates
https://docs.microsoft.com/en-us/windows-hardware/drivers/bringup/boot-screen-components

Checks are also made to make sure the bitmap provided
fits in the current GOP mode.

Cc: Jiewen Yao <jiewen.yao@intel.com>
Cc: Star Zeng <star.zeng@intel.com>
Cc: Eric Dong <eric.dong@intel.com>
Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
---
 MdeModulePkg/Application/CapsuleApp/CapsuleApp.c   | 63 ++++++++++++++++++++--
 MdeModulePkg/Application/CapsuleApp/CapsuleApp.inf |  3 +-
 2 files changed, 61 insertions(+), 5 deletions(-)

diff --git a/MdeModulePkg/Application/CapsuleApp/CapsuleApp.c b/MdeModulePkg/Application/CapsuleApp/CapsuleApp.c
index b9ff812179..e1e48befc2 100644
--- a/MdeModulePkg/Application/CapsuleApp/CapsuleApp.c
+++ b/MdeModulePkg/Application/CapsuleApp/CapsuleApp.c
@@ -21,6 +21,7 @@
 #include <Library/UefiRuntimeServicesTableLib.h>
 #include <Library/UefiLib.h>
 #include <Library/PrintLib.h>
+#include <Library/BmpSupportLib.h>
 #include <Protocol/GraphicsOutput.h>
 #include <Guid/GlobalVariable.h>
 #include <Guid/CapsuleReport.h>
@@ -173,15 +174,21 @@ CreateBmpFmp (
   EFI_DISPLAY_CAPSULE                           *DisplayCapsule;
   EFI_STATUS                                    Status;
   EFI_GRAPHICS_OUTPUT_PROTOCOL                  *Gop;
+  EFI_GRAPHICS_OUTPUT_MODE_INFORMATION          *Info;
+  EFI_GRAPHICS_OUTPUT_BLT_PIXEL                 *GopBlt;
+  UINTN                                         GopBltSize;
+  UINTN                                         Height;
+  UINTN                                         Width;
 
   Status = gBS->LocateProtocol(&gEfiGraphicsOutputProtocolGuid, NULL, (VOID **)&Gop);
   if (EFI_ERROR(Status)) {
     Print(L"CapsuleApp: NO GOP is found.\n");
     return EFI_UNSUPPORTED;
   }
+  Info = Gop->Mode->Info;
   Print(L"Current GOP: Mode - %d, ", Gop->Mode->Mode);
-  Print(L"HorizontalResolution - %d, ", Gop->Mode->Info->HorizontalResolution);
-  Print(L"VerticalResolution - %d\n", Gop->Mode->Info->VerticalResolution);
+  Print(L"HorizontalResolution - %d, ", Info->HorizontalResolution);
+  Print(L"VerticalResolution - %d\n", Info->VerticalResolution);
   // HorizontalResolution >= BMP_IMAGE_HEADER.PixelWidth
   // VerticalResolution   >= BMP_IMAGE_HEADER.PixelHeight
 
@@ -207,6 +214,35 @@ CreateBmpFmp (
     goto Done;
   }
 
+  GopBlt = NULL;
+  Status = TranslateBmpToGopBlt (
+             BmpBuffer,
+             FileSize,
+             &GopBlt,
+             &GopBltSize,
+             &Height,
+             &Width
+             );
+  if (EFI_ERROR(Status)) {
+    Print(L"CapsuleApp: BMP image (%s) is not valid.\n", BmpName);
+    goto Done;
+  }
+  if (GopBlt != NULL) {
+    FreePool (GopBlt);
+  }
+  Print(L"BMP image (%s), Width - %d, Height - %d\n", BmpName, Width, Height);
+
+  if (Height > Info->VerticalResolution) {
+    Status = EFI_INVALID_PARAMETER;
+    Print(L"CapsuleApp: BMP image (%s) height is larger than current resolution.\n", BmpName);
+    goto Done;
+  }
+  if (Width > Info->HorizontalResolution) {
+    Status = EFI_INVALID_PARAMETER;
+    Print(L"CapsuleApp: BMP image (%s) width is larger than current resolution.\n", BmpName);
+    goto Done;
+  }
+
   FullCapsuleBufferSize = sizeof(EFI_DISPLAY_CAPSULE) + FileSize;
   FullCapsuleBuffer = AllocatePool(FullCapsuleBufferSize);
   if (FullCapsuleBuffer == NULL) {
@@ -226,8 +262,27 @@ CreateBmpFmp (
   DisplayCapsule->ImagePayload.ImageType = 0; // BMP
   DisplayCapsule->ImagePayload.Reserved = 0;
   DisplayCapsule->ImagePayload.Mode = Gop->Mode->Mode;
-  DisplayCapsule->ImagePayload.OffsetX = 0;
-  DisplayCapsule->ImagePayload.OffsetY = 0;
+
+  //
+  // Center the bitmap horizontally
+  //
+  DisplayCapsule->ImagePayload.OffsetX = (UINT32)((Info->HorizontalResolution - Width) / 2);
+
+  //
+  // Put bitmap 3/4 down the display.  If bitmap is too tall, then align bottom
+  // of bitmap at bottom of display.
+  //
+  DisplayCapsule->ImagePayload.OffsetY =
+    MIN (
+      (UINT32)(Info->VerticalResolution - Height),
+      (UINT32)(((3 * Info->VerticalResolution) - (2 * Height)) / 4)
+      );
+
+  Print(L"BMP image (%s), OffsetX - %d, OffsetY - %d\n",
+    BmpName,
+    DisplayCapsule->ImagePayload.OffsetX,
+    DisplayCapsule->ImagePayload.OffsetY
+    );
 
   CopyMem((DisplayCapsule + 1), BmpBuffer, FileSize);
 
diff --git a/MdeModulePkg/Application/CapsuleApp/CapsuleApp.inf b/MdeModulePkg/Application/CapsuleApp/CapsuleApp.inf
index b06c4ea1bc..3a67c6b909 100644
--- a/MdeModulePkg/Application/CapsuleApp/CapsuleApp.inf
+++ b/MdeModulePkg/Application/CapsuleApp/CapsuleApp.inf
@@ -4,7 +4,7 @@
 # This application can trigger capsule update process. It can also
 # generate capsule image, or dump capsule variable information.
 #
-#  Copyright (c) 2016 - 2017, Intel Corporation. All rights reserved.<BR>
+#  Copyright (c) 2016 - 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
 #  which accompanies this distribution.  The full text of the license may be found at
@@ -63,6 +63,7 @@ [LibraryClasses]
   UefiRuntimeServicesTableLib
   UefiLib
   PrintLib
+  BmpSupportLib
 
 [UserExtensions.TianoCore."ExtraFiles"]
   CapsuleAppExtra.uni
-- 
2.14.2.windows.3



^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [Patch 1/2] MdeModulePkg/CapsuleApp: Fix logic bug in CleanGatherList()
  2018-03-21 21:13 ` [Patch 1/2] MdeModulePkg/CapsuleApp: Fix logic bug in CleanGatherList() Michael D Kinney
@ 2018-03-22  0:19   ` Yao, Jiewen
  0 siblings, 0 replies; 5+ messages in thread
From: Yao, Jiewen @ 2018-03-22  0:19 UTC (permalink / raw)
  To: Kinney, Michael D, edk2-devel@lists.01.org; +Cc: Zeng, Star, Dong, Eric

Reviewed-by: jiewen.yao@intel.com

> -----Original Message-----
> From: Kinney, Michael D
> Sent: Thursday, March 22, 2018 5:13 AM
> To: edk2-devel@lists.01.org
> Cc: Yao, Jiewen <jiewen.yao@intel.com>; Zeng, Star <star.zeng@intel.com>;
> Dong, Eric <eric.dong@intel.com>
> Subject: [Patch 1/2] MdeModulePkg/CapsuleApp: Fix logic bug in
> CleanGatherList()
> 
> https://bugzilla.tianocore.org/show_bug.cgi?id=905
> 
> Fix pointer math when more than one capsule is passed
> to the CapsuleApp.  Use the ContinuationPointer from
> the last array entry instead of the first array entry.
> 
> Cc: Jiewen Yao <jiewen.yao@intel.com>
> Cc: Star Zeng <star.zeng@intel.com>
> Cc: Eric Dong <eric.dong@intel.com>
> Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com>
> Contributed-under: TianoCore Contribution Agreement 1.1
> ---
>  MdeModulePkg/Application/CapsuleApp/CapsuleApp.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/MdeModulePkg/Application/CapsuleApp/CapsuleApp.c
> b/MdeModulePkg/Application/CapsuleApp/CapsuleApp.c
> index 393cfe5060..b9ff812179 100644
> --- a/MdeModulePkg/Application/CapsuleApp/CapsuleApp.c
> +++ b/MdeModulePkg/Application/CapsuleApp/CapsuleApp.c
> @@ -1,7 +1,7 @@
>  /** @file
>    A shell application that triggers capsule update process.
> 
> -  Copyright (c) 2016 - 2017, Intel Corporation. All rights reserved.<BR>
> +  Copyright (c) 2016 - 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
>    which accompanies this distribution.  The full text of the license may be
> found at
> @@ -653,7 +653,7 @@ CleanGatherList (
>          break;
>        }
> 
> -      TempBlockPtr2 = (VOID *) ((UINTN)
> TempBlockPtr->Union.ContinuationPointer);
> +      TempBlockPtr2 = (VOID *) ((UINTN)
> TempBlockPtr[Index].Union.ContinuationPointer);
>        FreePool(TempBlockPtr1);
>        TempBlockPtr1 = TempBlockPtr2;
>      }
> --
> 2.14.2.windows.3



^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [Patch 2/2] MdeModulePkg/CapsuleApp: Center bitmap at bottom of screen
  2018-03-21 21:13 ` [Patch 2/2] MdeModulePkg/CapsuleApp: Center bitmap at bottom of screen Michael D Kinney
@ 2018-03-22  0:25   ` Yao, Jiewen
  0 siblings, 0 replies; 5+ messages in thread
From: Yao, Jiewen @ 2018-03-22  0:25 UTC (permalink / raw)
  To: Kinney, Michael D, edk2-devel@lists.01.org; +Cc: Zeng, Star, Dong, Eric

Reviewed-by: Jiewen.yao@intel.com

> -----Original Message-----
> From: Kinney, Michael D
> Sent: Thursday, March 22, 2018 5:13 AM
> To: edk2-devel@lists.01.org
> Cc: Yao, Jiewen <jiewen.yao@intel.com>; Zeng, Star <star.zeng@intel.com>;
> Dong, Eric <eric.dong@intel.com>
> Subject: [Patch 2/2] MdeModulePkg/CapsuleApp: Center bitmap at bottom of
> screen
> 
> https://bugzilla.tianocore.org/show_bug.cgi?id=907
> 
> When -G option is used to convert a BMP file to a UX capsule,
> the bitmap is centered horizontally and placed in the lower
> half of the screen below the boot logo.
> 
> This matches examples shown in the following pages:
> 
> https://docs.microsoft.com/en-us/windows-hardware/drivers/bringup/user-exp
> erience-for-uefi-firmware-updates
> https://docs.microsoft.com/en-us/windows-hardware/drivers/bringup/boot-scr
> een-components
> 
> Checks are also made to make sure the bitmap provided
> fits in the current GOP mode.
> 
> Cc: Jiewen Yao <jiewen.yao@intel.com>
> Cc: Star Zeng <star.zeng@intel.com>
> Cc: Eric Dong <eric.dong@intel.com>
> Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com>
> Contributed-under: TianoCore Contribution Agreement 1.1
> ---
>  MdeModulePkg/Application/CapsuleApp/CapsuleApp.c   | 63
> ++++++++++++++++++++--
>  MdeModulePkg/Application/CapsuleApp/CapsuleApp.inf |  3 +-
>  2 files changed, 61 insertions(+), 5 deletions(-)
> 
> diff --git a/MdeModulePkg/Application/CapsuleApp/CapsuleApp.c
> b/MdeModulePkg/Application/CapsuleApp/CapsuleApp.c
> index b9ff812179..e1e48befc2 100644
> --- a/MdeModulePkg/Application/CapsuleApp/CapsuleApp.c
> +++ b/MdeModulePkg/Application/CapsuleApp/CapsuleApp.c
> @@ -21,6 +21,7 @@
>  #include <Library/UefiRuntimeServicesTableLib.h>
>  #include <Library/UefiLib.h>
>  #include <Library/PrintLib.h>
> +#include <Library/BmpSupportLib.h>
>  #include <Protocol/GraphicsOutput.h>
>  #include <Guid/GlobalVariable.h>
>  #include <Guid/CapsuleReport.h>
> @@ -173,15 +174,21 @@ CreateBmpFmp (
>    EFI_DISPLAY_CAPSULE                           *DisplayCapsule;
>    EFI_STATUS                                    Status;
>    EFI_GRAPHICS_OUTPUT_PROTOCOL                  *Gop;
> +  EFI_GRAPHICS_OUTPUT_MODE_INFORMATION          *Info;
> +  EFI_GRAPHICS_OUTPUT_BLT_PIXEL                 *GopBlt;
> +  UINTN                                         GopBltSize;
> +  UINTN                                         Height;
> +  UINTN                                         Width;
> 
>    Status = gBS->LocateProtocol(&gEfiGraphicsOutputProtocolGuid, NULL,
> (VOID **)&Gop);
>    if (EFI_ERROR(Status)) {
>      Print(L"CapsuleApp: NO GOP is found.\n");
>      return EFI_UNSUPPORTED;
>    }
> +  Info = Gop->Mode->Info;
>    Print(L"Current GOP: Mode - %d, ", Gop->Mode->Mode);
> -  Print(L"HorizontalResolution - %d, ",
> Gop->Mode->Info->HorizontalResolution);
> -  Print(L"VerticalResolution - %d\n", Gop->Mode->Info->VerticalResolution);
> +  Print(L"HorizontalResolution - %d, ", Info->HorizontalResolution);
> +  Print(L"VerticalResolution - %d\n", Info->VerticalResolution);
>    // HorizontalResolution >= BMP_IMAGE_HEADER.PixelWidth
>    // VerticalResolution   >= BMP_IMAGE_HEADER.PixelHeight
> 
> @@ -207,6 +214,35 @@ CreateBmpFmp (
>      goto Done;
>    }
> 
> +  GopBlt = NULL;
> +  Status = TranslateBmpToGopBlt (
> +             BmpBuffer,
> +             FileSize,
> +             &GopBlt,
> +             &GopBltSize,
> +             &Height,
> +             &Width
> +             );
> +  if (EFI_ERROR(Status)) {
> +    Print(L"CapsuleApp: BMP image (%s) is not valid.\n", BmpName);
> +    goto Done;
> +  }
> +  if (GopBlt != NULL) {
> +    FreePool (GopBlt);
> +  }
> +  Print(L"BMP image (%s), Width - %d, Height - %d\n", BmpName, Width,
> Height);
> +
> +  if (Height > Info->VerticalResolution) {
> +    Status = EFI_INVALID_PARAMETER;
> +    Print(L"CapsuleApp: BMP image (%s) height is larger than current
> resolution.\n", BmpName);
> +    goto Done;
> +  }
> +  if (Width > Info->HorizontalResolution) {
> +    Status = EFI_INVALID_PARAMETER;
> +    Print(L"CapsuleApp: BMP image (%s) width is larger than current
> resolution.\n", BmpName);
> +    goto Done;
> +  }
> +
>    FullCapsuleBufferSize = sizeof(EFI_DISPLAY_CAPSULE) + FileSize;
>    FullCapsuleBuffer = AllocatePool(FullCapsuleBufferSize);
>    if (FullCapsuleBuffer == NULL) {
> @@ -226,8 +262,27 @@ CreateBmpFmp (
>    DisplayCapsule->ImagePayload.ImageType = 0; // BMP
>    DisplayCapsule->ImagePayload.Reserved = 0;
>    DisplayCapsule->ImagePayload.Mode = Gop->Mode->Mode;
> -  DisplayCapsule->ImagePayload.OffsetX = 0;
> -  DisplayCapsule->ImagePayload.OffsetY = 0;
> +
> +  //
> +  // Center the bitmap horizontally
> +  //
> +  DisplayCapsule->ImagePayload.OffsetX =
> (UINT32)((Info->HorizontalResolution - Width) / 2);
> +
> +  //
> +  // Put bitmap 3/4 down the display.  If bitmap is too tall, then align bottom
> +  // of bitmap at bottom of display.
> +  //
> +  DisplayCapsule->ImagePayload.OffsetY =
> +    MIN (
> +      (UINT32)(Info->VerticalResolution - Height),
> +      (UINT32)(((3 * Info->VerticalResolution) - (2 * Height)) / 4)
> +      );
> +
> +  Print(L"BMP image (%s), OffsetX - %d, OffsetY - %d\n",
> +    BmpName,
> +    DisplayCapsule->ImagePayload.OffsetX,
> +    DisplayCapsule->ImagePayload.OffsetY
> +    );
> 
>    CopyMem((DisplayCapsule + 1), BmpBuffer, FileSize);
> 
> diff --git a/MdeModulePkg/Application/CapsuleApp/CapsuleApp.inf
> b/MdeModulePkg/Application/CapsuleApp/CapsuleApp.inf
> index b06c4ea1bc..3a67c6b909 100644
> --- a/MdeModulePkg/Application/CapsuleApp/CapsuleApp.inf
> +++ b/MdeModulePkg/Application/CapsuleApp/CapsuleApp.inf
> @@ -4,7 +4,7 @@
>  # This application can trigger capsule update process. It can also
>  # generate capsule image, or dump capsule variable information.
>  #
> -#  Copyright (c) 2016 - 2017, Intel Corporation. All rights reserved.<BR>
> +#  Copyright (c) 2016 - 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
>  #  which accompanies this distribution.  The full text of the license may be
> found at
> @@ -63,6 +63,7 @@ [LibraryClasses]
>    UefiRuntimeServicesTableLib
>    UefiLib
>    PrintLib
> +  BmpSupportLib
> 
>  [UserExtensions.TianoCore."ExtraFiles"]
>    CapsuleAppExtra.uni
> --
> 2.14.2.windows.3



^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2018-03-22  0:19 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-03-21 21:13 [Patch 0/2] MdeModulePkg/CapsuleApp: CleanGatherList() fix and UX enhancements Michael D Kinney
2018-03-21 21:13 ` [Patch 1/2] MdeModulePkg/CapsuleApp: Fix logic bug in CleanGatherList() Michael D Kinney
2018-03-22  0:19   ` Yao, Jiewen
2018-03-21 21:13 ` [Patch 2/2] MdeModulePkg/CapsuleApp: Center bitmap at bottom of screen Michael D Kinney
2018-03-22  0:25   ` Yao, Jiewen

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox