[edk2-devel] [PATCH] Platform/RPi4/Library/PlatformBootManagerLib: remove dead logo code

Andrei Warkentin via Groups.Io posted 1 patch 4 years, 1 month ago
Failed in applying to current master (apply log)
.../PlatformBootManagerLib/PlatformBm.c        | 18 ------------------
.../PlatformBootManagerLib.inf                 |  1 -
2 files changed, 19 deletions(-)
[edk2-devel] [PATCH] Platform/RPi4/Library/PlatformBootManagerLib: remove dead logo code
Posted by Andrei Warkentin via Groups.Io 4 years, 1 month ago
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


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.

View/Reply Online (#55160): https://edk2.groups.io/g/devel/message/55160
Mute This Topic: https://groups.io/mt/71670835/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub  [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-

Re: [edk2-devel] [PATCH] Platform/RPi4/Library/PlatformBootManagerLib: remove dead logo code
Posted by Pete Batard 4 years, 1 month ago
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>

-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.

View/Reply Online (#55178): https://edk2.groups.io/g/devel/message/55178
Mute This Topic: https://groups.io/mt/71670835/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub  [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-

Re: [edk2-devel] [PATCH] Platform/RPi4/Library/PlatformBootManagerLib: remove dead logo code
Posted by Ard Biesheuvel 4 years, 1 month ago
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.

-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.

View/Reply Online (#55211): https://edk2.groups.io/g/devel/message/55211
Mute This Topic: https://groups.io/mt/71670835/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub  [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-

Re: [edk2-devel] [PATCH] Platform/RPi4/Library/PlatformBootManagerLib: remove dead logo code
Posted by Pete Batard 4 years, 1 month ago
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

-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.

View/Reply Online (#55215): https://edk2.groups.io/g/devel/message/55215
Mute This Topic: https://groups.io/mt/71670835/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub  [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-