public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
* [PATCH] Platform/RPi4/Library/PlatformBootManagerLib: remove dead logo code
@ 2020-03-02  3:08 Andrei Warkentin
  2020-03-02 13:09 ` [edk2-devel] " Pete Batard
  0 siblings, 1 reply; 4+ messages in thread
From: Andrei Warkentin @ 2020-03-02  3:08 UTC (permalink / raw)
  To: devel@edk2.groups.io; +Cc: Andrei Warkentin

Back in RaspberryPiPkg (before upstream Pi 3) support, I wrote
some extra code in PlatformBootManagerLib and BootGraphicsResourceTableDxe
to clear out the logo/BGRT, so that Windows would always show its own
logo instead of the platform logo. It kind of made sense back in the day,
when they only portion of Windows that "ran" on Pi 3 was the part that
could display a logo before BSODing...

The code in PlatformBootManagerLib (that this patch is removing) only
worked with the matching BootGraphicsResourceTableDxe change*** that
never got upstreamed. Moreover, Windows (for logo/cert) requires BGRT
so these kinds of shennigans aren't worth the effort.

So, remove the dead code.

***https://github.com/andreiw/RaspberryPiPkg/blob/master/edk2Patches/0003-BootGraphicsResourceTableDxe-properly-handle-SetBoot.patch

Signed-off-by: Andrei Warkentin <awarkentin@vmware.com>
---
 .../PlatformBootManagerLib/PlatformBm.c        | 18 ------------------
 .../PlatformBootManagerLib.inf                 |  1 -
 2 files changed, 19 deletions(-)

diff --git a/Platform/RaspberryPi/Library/PlatformBootManagerLib/PlatformBm.c b/Platform/RaspberryPi/Library/PlatformBootManagerLib/PlatformBm.c
index 12c3829d28..996ba8f399 100644
--- a/Platform/RaspberryPi/Library/PlatformBootManagerLib/PlatformBm.c
+++ b/Platform/RaspberryPi/Library/PlatformBootManagerLib/PlatformBm.c
@@ -25,7 +25,6 @@
 #include <Protocol/LoadedImage.h>
 #include <Guid/EventGroup.h>
 #include <Guid/TtyTerm.h>
-#include <Protocol/BootLogo.h>
 
 #include "PlatformBm.h"
 
@@ -691,7 +690,6 @@ PlatformBootManagerWaitCallback (
   EFI_GRAPHICS_OUTPUT_BLT_PIXEL_UNION White;
   UINT16                              Timeout;
   EFI_STATUS                          Status;
-  EFI_BOOT_LOGO_PROTOCOL *BootLogo;
 
   Timeout = PcdGet16 (PcdPlatformBootTimeOut);
 
@@ -711,22 +709,6 @@ PlatformBootManagerWaitCallback (
   } else {
     Print (L".");
   }
-
-  if (TimeoutRemain == 0) {
-    BootLogo = NULL;
-
-    //
-    // Clear out the boot logo so that Windows displays its own logo
-    // instead of ours.
-    //
-    Status = gBS->LocateProtocol (&gEfiBootLogoProtocolGuid, NULL, (VOID**)&BootLogo);
-    if (!EFI_ERROR (Status) && (BootLogo != NULL)) {
-      Status = BootLogo->SetBootLogo (BootLogo, NULL, 0, 0, 0, 0);
-      ASSERT_EFI_ERROR (Status);
-    };
-
-    gST->ConOut->ClearScreen (gST->ConOut);
-  }
 }
 
 /**
diff --git a/Platform/RaspberryPi/Library/PlatformBootManagerLib/PlatformBootManagerLib.inf b/Platform/RaspberryPi/Library/PlatformBootManagerLib/PlatformBootManagerLib.inf
index 79b75d667f..e40b3f096a 100644
--- a/Platform/RaspberryPi/Library/PlatformBootManagerLib/PlatformBootManagerLib.inf
+++ b/Platform/RaspberryPi/Library/PlatformBootManagerLib/PlatformBootManagerLib.inf
@@ -81,4 +81,3 @@
   gEfiSimpleFileSystemProtocolGuid
   gEsrtManagementProtocolGuid
   gEfiUsb2HcProtocolGuid
-  gEfiBootLogoProtocolGuid
-- 
2.17.1


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

* Re: [edk2-devel] [PATCH] Platform/RPi4/Library/PlatformBootManagerLib: remove dead logo code
  2020-03-02  3:08 [PATCH] Platform/RPi4/Library/PlatformBootManagerLib: remove dead logo code Andrei Warkentin
@ 2020-03-02 13:09 ` Pete Batard
  2020-03-02 14:22   ` Ard Biesheuvel
  0 siblings, 1 reply; 4+ messages in thread
From: Pete Batard @ 2020-03-02 13:09 UTC (permalink / raw)
  To: devel, awarkentin

On 2020.03.02 03:08, Andrei Warkentin via Groups.Io wrote:
> Back in RaspberryPiPkg (before upstream Pi 3) support, I wrote
> some extra code in PlatformBootManagerLib and BootGraphicsResourceTableDxe
> to clear out the logo/BGRT, so that Windows would always show its own
> logo instead of the platform logo. It kind of made sense back in the day,
> when they only portion of Windows that "ran" on Pi 3 was the part that
> could display a logo before BSODing...
> 
> The code in PlatformBootManagerLib (that this patch is removing) only
> worked with the matching BootGraphicsResourceTableDxe change*** that
> never got upstreamed. Moreover, Windows (for logo/cert) requires BGRT
> so these kinds of shennigans aren't worth the effort.
> 
> So, remove the dead code.
> 
> ***https://github.com/andreiw/RaspberryPiPkg/blob/master/edk2Patches/0003-BootGraphicsResourceTableDxe-properly-handle-SetBoot.patch
> 
> Signed-off-by: Andrei Warkentin <awarkentin@vmware.com>
> ---
>   .../PlatformBootManagerLib/PlatformBm.c        | 18 ------------------
>   .../PlatformBootManagerLib.inf                 |  1 -
>   2 files changed, 19 deletions(-)
> 
> diff --git a/Platform/RaspberryPi/Library/PlatformBootManagerLib/PlatformBm.c b/Platform/RaspberryPi/Library/PlatformBootManagerLib/PlatformBm.c
> index 12c3829d28..996ba8f399 100644
> --- a/Platform/RaspberryPi/Library/PlatformBootManagerLib/PlatformBm.c
> +++ b/Platform/RaspberryPi/Library/PlatformBootManagerLib/PlatformBm.c
> @@ -25,7 +25,6 @@
>   #include <Protocol/LoadedImage.h>
>   #include <Guid/EventGroup.h>
>   #include <Guid/TtyTerm.h>
> -#include <Protocol/BootLogo.h>
>   
>   #include "PlatformBm.h"
>   
> @@ -691,7 +690,6 @@ PlatformBootManagerWaitCallback (
>     EFI_GRAPHICS_OUTPUT_BLT_PIXEL_UNION White;
>     UINT16                              Timeout;
>     EFI_STATUS                          Status;
> -  EFI_BOOT_LOGO_PROTOCOL *BootLogo;
>   
>     Timeout = PcdGet16 (PcdPlatformBootTimeOut);
>   
> @@ -711,22 +709,6 @@ PlatformBootManagerWaitCallback (
>     } else {
>       Print (L".");
>     }
> -
> -  if (TimeoutRemain == 0) {
> -    BootLogo = NULL;
> -
> -    //
> -    // Clear out the boot logo so that Windows displays its own logo
> -    // instead of ours.
> -    //
> -    Status = gBS->LocateProtocol (&gEfiBootLogoProtocolGuid, NULL, (VOID**)&BootLogo);
> -    if (!EFI_ERROR (Status) && (BootLogo != NULL)) {
> -      Status = BootLogo->SetBootLogo (BootLogo, NULL, 0, 0, 0, 0);
> -      ASSERT_EFI_ERROR (Status);
> -    };
> -
> -    gST->ConOut->ClearScreen (gST->ConOut);
> -  }
>   }
>   
>   /**
> diff --git a/Platform/RaspberryPi/Library/PlatformBootManagerLib/PlatformBootManagerLib.inf b/Platform/RaspberryPi/Library/PlatformBootManagerLib/PlatformBootManagerLib.inf
> index 79b75d667f..e40b3f096a 100644
> --- a/Platform/RaspberryPi/Library/PlatformBootManagerLib/PlatformBootManagerLib.inf
> +++ b/Platform/RaspberryPi/Library/PlatformBootManagerLib/PlatformBootManagerLib.inf
> @@ -81,4 +81,3 @@
>     gEfiSimpleFileSystemProtocolGuid
>     gEsrtManagementProtocolGuid
>     gEfiUsb2HcProtocolGuid
> -  gEfiBootLogoProtocolGuid
> 

Reviewed-By & Tested-By: Pete Batard <pete@akeo.ie>

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

* Re: [edk2-devel] [PATCH] Platform/RPi4/Library/PlatformBootManagerLib: remove dead logo code
  2020-03-02 13:09 ` [edk2-devel] " Pete Batard
@ 2020-03-02 14:22   ` Ard Biesheuvel
  2020-03-02 14:43     ` Pete Batard
  0 siblings, 1 reply; 4+ messages in thread
From: Ard Biesheuvel @ 2020-03-02 14:22 UTC (permalink / raw)
  To: edk2-devel-groups-io, Pete Batard; +Cc: Andrei Warkentin

On Mon, 2 Mar 2020 at 14:09, Pete Batard <pete@akeo.ie> wrote:
>
> On 2020.03.02 03:08, Andrei Warkentin via Groups.Io wrote:
> > Back in RaspberryPiPkg (before upstream Pi 3) support, I wrote
> > some extra code in PlatformBootManagerLib and BootGraphicsResourceTableDxe
> > to clear out the logo/BGRT, so that Windows would always show its own
> > logo instead of the platform logo. It kind of made sense back in the day,
> > when they only portion of Windows that "ran" on Pi 3 was the part that
> > could display a logo before BSODing...
> >
> > The code in PlatformBootManagerLib (that this patch is removing) only
> > worked with the matching BootGraphicsResourceTableDxe change*** that
> > never got upstreamed. Moreover, Windows (for logo/cert) requires BGRT
> > so these kinds of shennigans aren't worth the effort.
> >
> > So, remove the dead code.
> >
> > ***https://github.com/andreiw/RaspberryPiPkg/blob/master/edk2Patches/0003-BootGraphicsResourceTableDxe-properly-handle-SetBoot.patch
> >
> > Signed-off-by: Andrei Warkentin <awarkentin@vmware.com>
> > ---
> >   .../PlatformBootManagerLib/PlatformBm.c        | 18 ------------------
> >   .../PlatformBootManagerLib.inf                 |  1 -
> >   2 files changed, 19 deletions(-)
> >
> > diff --git a/Platform/RaspberryPi/Library/PlatformBootManagerLib/PlatformBm.c b/Platform/RaspberryPi/Library/PlatformBootManagerLib/PlatformBm.c
> > index 12c3829d28..996ba8f399 100644
> > --- a/Platform/RaspberryPi/Library/PlatformBootManagerLib/PlatformBm.c
> > +++ b/Platform/RaspberryPi/Library/PlatformBootManagerLib/PlatformBm.c
> > @@ -25,7 +25,6 @@
> >   #include <Protocol/LoadedImage.h>
> >   #include <Guid/EventGroup.h>
> >   #include <Guid/TtyTerm.h>
> > -#include <Protocol/BootLogo.h>
> >
> >   #include "PlatformBm.h"
> >
> > @@ -691,7 +690,6 @@ PlatformBootManagerWaitCallback (
> >     EFI_GRAPHICS_OUTPUT_BLT_PIXEL_UNION White;
> >     UINT16                              Timeout;
> >     EFI_STATUS                          Status;
> > -  EFI_BOOT_LOGO_PROTOCOL *BootLogo;
> >
> >     Timeout = PcdGet16 (PcdPlatformBootTimeOut);
> >
> > @@ -711,22 +709,6 @@ PlatformBootManagerWaitCallback (
> >     } else {
> >       Print (L".");
> >     }
> > -
> > -  if (TimeoutRemain == 0) {
> > -    BootLogo = NULL;
> > -
> > -    //
> > -    // Clear out the boot logo so that Windows displays its own logo
> > -    // instead of ours.
> > -    //
> > -    Status = gBS->LocateProtocol (&gEfiBootLogoProtocolGuid, NULL, (VOID**)&BootLogo);
> > -    if (!EFI_ERROR (Status) && (BootLogo != NULL)) {
> > -      Status = BootLogo->SetBootLogo (BootLogo, NULL, 0, 0, 0, 0);
> > -      ASSERT_EFI_ERROR (Status);
> > -    };
> > -
> > -    gST->ConOut->ClearScreen (gST->ConOut);
> > -  }
> >   }
> >
> >   /**
> > diff --git a/Platform/RaspberryPi/Library/PlatformBootManagerLib/PlatformBootManagerLib.inf b/Platform/RaspberryPi/Library/PlatformBootManagerLib/PlatformBootManagerLib.inf
> > index 79b75d667f..e40b3f096a 100644
> > --- a/Platform/RaspberryPi/Library/PlatformBootManagerLib/PlatformBootManagerLib.inf
> > +++ b/Platform/RaspberryPi/Library/PlatformBootManagerLib/PlatformBootManagerLib.inf
> > @@ -81,4 +81,3 @@
> >     gEfiSimpleFileSystemProtocolGuid
> >     gEsrtManagementProtocolGuid
> >     gEfiUsb2HcProtocolGuid
> > -  gEfiBootLogoProtocolGuid
> >
>
> Reviewed-By & Tested-By: Pete Batard <pete@akeo.ie>
>

Thanks Pete

This patch does not apply though. Could someone send a non-email
mangled version that applies onto edk2-platforms? Thanks.

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

* Re: [edk2-devel] [PATCH] Platform/RPi4/Library/PlatformBootManagerLib: remove dead logo code
  2020-03-02 14:22   ` Ard Biesheuvel
@ 2020-03-02 14:43     ` Pete Batard
  0 siblings, 0 replies; 4+ messages in thread
From: Pete Batard @ 2020-03-02 14:43 UTC (permalink / raw)
  To: Ard Biesheuvel, edk2-devel-groups-io; +Cc: Andrei Warkentin

On 2020.03.02 14:22, Ard Biesheuvel wrote:
> On Mon, 2 Mar 2020 at 14:09, Pete Batard <pete@akeo.ie> wrote:
>>
>> On 2020.03.02 03:08, Andrei Warkentin via Groups.Io wrote:
>>> Back in RaspberryPiPkg (before upstream Pi 3) support, I wrote
>>> some extra code in PlatformBootManagerLib and BootGraphicsResourceTableDxe
>>> to clear out the logo/BGRT, so that Windows would always show its own
>>> logo instead of the platform logo. It kind of made sense back in the day,
>>> when they only portion of Windows that "ran" on Pi 3 was the part that
>>> could display a logo before BSODing...
>>>
>>> The code in PlatformBootManagerLib (that this patch is removing) only
>>> worked with the matching BootGraphicsResourceTableDxe change*** that
>>> never got upstreamed. Moreover, Windows (for logo/cert) requires BGRT
>>> so these kinds of shennigans aren't worth the effort.
>>>
>>> So, remove the dead code.
>>>
>>> ***https://github.com/andreiw/RaspberryPiPkg/blob/master/edk2Patches/0003-BootGraphicsResourceTableDxe-properly-handle-SetBoot.patch
>>>
>>> Signed-off-by: Andrei Warkentin <awarkentin@vmware.com>
>>> ---
>>>    .../PlatformBootManagerLib/PlatformBm.c        | 18 ------------------
>>>    .../PlatformBootManagerLib.inf                 |  1 -
>>>    2 files changed, 19 deletions(-)
>>>
>>> diff --git a/Platform/RaspberryPi/Library/PlatformBootManagerLib/PlatformBm.c b/Platform/RaspberryPi/Library/PlatformBootManagerLib/PlatformBm.c
>>> index 12c3829d28..996ba8f399 100644
>>> --- a/Platform/RaspberryPi/Library/PlatformBootManagerLib/PlatformBm.c
>>> +++ b/Platform/RaspberryPi/Library/PlatformBootManagerLib/PlatformBm.c
>>> @@ -25,7 +25,6 @@
>>>    #include <Protocol/LoadedImage.h>
>>>    #include <Guid/EventGroup.h>
>>>    #include <Guid/TtyTerm.h>
>>> -#include <Protocol/BootLogo.h>
>>>
>>>    #include "PlatformBm.h"
>>>
>>> @@ -691,7 +690,6 @@ PlatformBootManagerWaitCallback (
>>>      EFI_GRAPHICS_OUTPUT_BLT_PIXEL_UNION White;
>>>      UINT16                              Timeout;
>>>      EFI_STATUS                          Status;
>>> -  EFI_BOOT_LOGO_PROTOCOL *BootLogo;
>>>
>>>      Timeout = PcdGet16 (PcdPlatformBootTimeOut);
>>>
>>> @@ -711,22 +709,6 @@ PlatformBootManagerWaitCallback (
>>>      } else {
>>>        Print (L".");
>>>      }
>>> -
>>> -  if (TimeoutRemain == 0) {
>>> -    BootLogo = NULL;
>>> -
>>> -    //
>>> -    // Clear out the boot logo so that Windows displays its own logo
>>> -    // instead of ours.
>>> -    //
>>> -    Status = gBS->LocateProtocol (&gEfiBootLogoProtocolGuid, NULL, (VOID**)&BootLogo);
>>> -    if (!EFI_ERROR (Status) && (BootLogo != NULL)) {
>>> -      Status = BootLogo->SetBootLogo (BootLogo, NULL, 0, 0, 0, 0);
>>> -      ASSERT_EFI_ERROR (Status);
>>> -    };
>>> -
>>> -    gST->ConOut->ClearScreen (gST->ConOut);
>>> -  }
>>>    }
>>>
>>>    /**
>>> diff --git a/Platform/RaspberryPi/Library/PlatformBootManagerLib/PlatformBootManagerLib.inf b/Platform/RaspberryPi/Library/PlatformBootManagerLib/PlatformBootManagerLib.inf
>>> index 79b75d667f..e40b3f096a 100644
>>> --- a/Platform/RaspberryPi/Library/PlatformBootManagerLib/PlatformBootManagerLib.inf
>>> +++ b/Platform/RaspberryPi/Library/PlatformBootManagerLib/PlatformBootManagerLib.inf
>>> @@ -81,4 +81,3 @@
>>>      gEfiSimpleFileSystemProtocolGuid
>>>      gEsrtManagementProtocolGuid
>>>      gEfiUsb2HcProtocolGuid
>>> -  gEfiBootLogoProtocolGuid
>>>
>>
>> Reviewed-By & Tested-By: Pete Batard <pete@akeo.ie>
>>
> 
> Thanks Pete
> 
> This patch does not apply though. Could someone send a non-email
> mangled version that applies onto edk2-platforms? Thanks.

Done in https://edk2.groups.io/g/devel/message/55214

You'll also find the other patch in 
https://edk2.groups.io/g/devel/message/55213

Regards,

/Pete

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

end of thread, other threads:[~2020-03-02 14:43 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-03-02  3:08 [PATCH] Platform/RPi4/Library/PlatformBootManagerLib: remove dead logo code Andrei Warkentin
2020-03-02 13:09 ` [edk2-devel] " Pete Batard
2020-03-02 14:22   ` Ard Biesheuvel
2020-03-02 14:43     ` Pete Batard

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