On Wed, 18 Aug 2021 at 09:38, Grzegorz Bernacki <g...@semihalf.com> wrote: > > This patch adds checks if Boot Discovery Policy has been > changed. Only in that case EfiBootManagerRefreshAllBootOption() > should be called. > > Signed-off-by: Grzegorz Bernacki <g...@semihalf.com>
To be honest, I'm not a fan of this bodge. Can you explain why we need two separate EFI variables to keep track of this state? > --- > 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 > -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#80010): https://edk2.groups.io/g/devel/message/80010 Mute This Topic: https://groups.io/mt/84967553/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-