* Re: [edk2-devel] [edk2-platforms PATCH] Platform/RaspberryPi: Check for Boot Discovery Policy change.
[not found] <169C568733B9B943.3513@groups.io>
@ 2021-08-18 7:39 ` Grzegorz Bernacki
0 siblings, 0 replies; 2+ messages in thread
From: Grzegorz Bernacki @ 2021-08-18 7:39 UTC (permalink / raw)
To: edk2-devel-groups-io, Grzegorz Bernacki
Cc: Leif Lindholm, Ard Biesheuvel, Samer El-Haj-Mahmoud, Sunny Wang,
Marcin Wojtas, upstream, Pete Batard
Hi All,
This patch depends on "MdeModulePkg: Add BootDiscoveryPolicyOld
variable" EDK2 patch. It can be merged only if the EDK2 patch is
merged first.
thanks,
greg
śr., 18 sie 2021 o 09:38 Grzegorz Bernacki via groups.io
<gjb=semihalf.com@groups.io> napisał(a):
>
> This patch adds checks if Boot Discovery Policy has been
> changed. Only in that case EfiBootManagerRefreshAllBootOption()
> should be called.
>
> Signed-off-by: Grzegorz Bernacki <gjb@semihalf.com>
> ---
> Platform/RaspberryPi/Library/PlatformBootManagerLib/PlatformBm.c | 24 +++++++++++++++++++-
> 1 file changed, 23 insertions(+), 1 deletion(-)
>
> diff --git a/Platform/RaspberryPi/Library/PlatformBootManagerLib/PlatformBm.c b/Platform/RaspberryPi/Library/PlatformBootManagerLib/PlatformBm.c
> index c8305ce4f5..378ba0ebf4 100644
> --- a/Platform/RaspberryPi/Library/PlatformBootManagerLib/PlatformBm.c
> +++ b/Platform/RaspberryPi/Library/PlatformBootManagerLib/PlatformBm.c
> @@ -617,6 +617,7 @@ BootDiscoveryPolicyHandler (
> {
> EFI_STATUS Status;
> UINT32 DiscoveryPolicy;
> + UINT32 DiscoveryPolicyOld;
> UINTN Size;
> EFI_BOOT_MANAGER_POLICY_PROTOCOL *BMPolicy;
> EFI_GUID *Class;
> @@ -678,7 +679,28 @@ BootDiscoveryPolicyHandler (
> return Status;
> }
>
> - EfiBootManagerRefreshAllBootOption();
> + //
> + // Refresh Boot Options if Boot Discovery Policy has been changed
> + //
> + Size = sizeof (DiscoveryPolicyOld);
> + Status = gRT->GetVariable (
> + BOOT_DISCOVERY_POLICY_OLD_VAR,
> + &gBootDiscoveryPolicyMgrFormsetGuid,
> + NULL,
> + &Size,
> + &DiscoveryPolicyOld
> + );
> + if ((Status == EFI_NOT_FOUND) || (DiscoveryPolicyOld != DiscoveryPolicy)) {
> + EfiBootManagerRefreshAllBootOption();
> +
> + Status = gRT->SetVariable (
> + BOOT_DISCOVERY_POLICY_OLD_VAR,
> + &gBootDiscoveryPolicyMgrFormsetGuid,
> + EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_BOOTSERVICE_ACCESS,
> + sizeof (DiscoveryPolicyOld),
> + &DiscoveryPolicy
> + );
> + }
>
> return EFI_SUCCESS;
> }
> --
> 2.25.1
>
>
>
>
>
>
^ permalink raw reply [flat|nested] 2+ messages in thread
* [edk2-platforms PATCH] Platform/RaspberryPi: Check for Boot Discovery Policy change.
@ 2021-08-18 7:38 Grzegorz Bernacki
2021-08-22 21:23 ` [edk2-devel] " Mario Bălănică
0 siblings, 1 reply; 2+ messages in thread
From: Grzegorz Bernacki @ 2021-08-18 7:38 UTC (permalink / raw)
To: devel
Cc: leif, ardb+tianocore, Samer.El-Haj-Mahmoud, sunny.Wang, mw,
upstream, pete, Grzegorz Bernacki
This patch adds checks if Boot Discovery Policy has been
changed. Only in that case EfiBootManagerRefreshAllBootOption()
should be called.
Signed-off-by: Grzegorz Bernacki <gjb@semihalf.com>
---
Platform/RaspberryPi/Library/PlatformBootManagerLib/PlatformBm.c | 24 +++++++++++++++++++-
1 file changed, 23 insertions(+), 1 deletion(-)
diff --git a/Platform/RaspberryPi/Library/PlatformBootManagerLib/PlatformBm.c b/Platform/RaspberryPi/Library/PlatformBootManagerLib/PlatformBm.c
index c8305ce4f5..378ba0ebf4 100644
--- a/Platform/RaspberryPi/Library/PlatformBootManagerLib/PlatformBm.c
+++ b/Platform/RaspberryPi/Library/PlatformBootManagerLib/PlatformBm.c
@@ -617,6 +617,7 @@ BootDiscoveryPolicyHandler (
{
EFI_STATUS Status;
UINT32 DiscoveryPolicy;
+ UINT32 DiscoveryPolicyOld;
UINTN Size;
EFI_BOOT_MANAGER_POLICY_PROTOCOL *BMPolicy;
EFI_GUID *Class;
@@ -678,7 +679,28 @@ BootDiscoveryPolicyHandler (
return Status;
}
- EfiBootManagerRefreshAllBootOption();
+ //
+ // Refresh Boot Options if Boot Discovery Policy has been changed
+ //
+ Size = sizeof (DiscoveryPolicyOld);
+ Status = gRT->GetVariable (
+ BOOT_DISCOVERY_POLICY_OLD_VAR,
+ &gBootDiscoveryPolicyMgrFormsetGuid,
+ NULL,
+ &Size,
+ &DiscoveryPolicyOld
+ );
+ if ((Status == EFI_NOT_FOUND) || (DiscoveryPolicyOld != DiscoveryPolicy)) {
+ EfiBootManagerRefreshAllBootOption();
+
+ Status = gRT->SetVariable (
+ BOOT_DISCOVERY_POLICY_OLD_VAR,
+ &gBootDiscoveryPolicyMgrFormsetGuid,
+ EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_BOOTSERVICE_ACCESS,
+ sizeof (DiscoveryPolicyOld),
+ &DiscoveryPolicy
+ );
+ }
return EFI_SUCCESS;
}
--
2.25.1
^ permalink raw reply related [flat|nested] 2+ messages in thread
end of thread, other threads:[~2021-08-22 21:23 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <169C568733B9B943.3513@groups.io>
2021-08-18 7:39 ` [edk2-devel] [edk2-platforms PATCH] Platform/RaspberryPi: Check for Boot Discovery Policy change Grzegorz Bernacki
2021-08-18 7:38 Grzegorz Bernacki
2021-08-22 21:23 ` [edk2-devel] " Mario Bălănică
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox