From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-lj1-f172.google.com (mail-lj1-f172.google.com [209.85.208.172]) by mx.groups.io with SMTP id smtpd.web08.51221.1629272303272185091 for ; Wed, 18 Aug 2021 00:38:23 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@semihalf-com.20150623.gappssmtp.com header.s=20150623 header.b=wf+9zHB+; spf=none, err=SPF record not found (domain: semihalf.com, ip: 209.85.208.172, mailfrom: gjb@semihalf.com) Received: by mail-lj1-f172.google.com with SMTP id h11so3331677ljo.12 for ; Wed, 18 Aug 2021 00:38:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=semihalf-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=SdbbJAMpCjVt0GU99g+CUjruKAKzEpNLrhJzHFT0Wc8=; b=wf+9zHB+4az6dmQuhq8yZm6w4fz+TyUlZSmN16Wd3J5+KvGoeMon9akHz45PEJNJer I5lrG4gbC2dVZ6LGLXEsk7zltmZHI/gug5kLIHj3N7S8WnKmljmwpr2tWgPHr9+KaAW/ fj6UJzv3CCJ9O/Jz8H2TeCK7KM6NSX1IGqwsR9/HK1SoIQVGWwrYxHz2fYWkVbLEdac5 AkG5X8RXYB3+tIhdhadXLHeBmnN8eSX1La8xBbL6Jd4qSA8NyhCULacLfvR3HKOHMLK8 G1eOIgKwoihmv9bMSkGFM+qZzRXkN8/gbuqt6R9hx1Kh27TbGpIY3rjsdgfBthY4dBfM 6RDg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=SdbbJAMpCjVt0GU99g+CUjruKAKzEpNLrhJzHFT0Wc8=; b=SGG0FxT+Ipqp8OImpOz9zWzEO6O2eGD3jPAsLZAZUi3IqvG0Cgl6g5q/+f0CbjfZfU 4Cd15wNktsCR7iEAXeg0ZeTule34nTYS/NXcP1CyPQdhRGLry3aPX09xJvnUAe456OgJ fGLXRNyjdb1KcB+oaH5wRyV3PeWCD45oFP4HjSxMjt9uQk7dzGm3ZLD5/rF7GkKqLVZB yAxy7tX+hCF1erGrX+5lOPFWADBHFYxvJL8FUAb8IaPXFTorRZh1ck/Y/Ye0G25eV7D+ J/bQhej7zc/KsFFoY/Fub6umH3O+UZUloNa0LdxmbYU1yU0gODRZFB1BQ9NehG7Euzen x7FQ== X-Gm-Message-State: AOAM533QAHPO/wZTtY6OgJZJgOZSEljebNH8RZxmlp53uLuFQ2Y11sTn Sz54OLcWTaf5IpknZEBa8UrEZv3p/E7/pw== X-Google-Smtp-Source: ABdhPJzbCeefuxyizpC0dVcKKxzNv94MS2Uyxk/mASXcYVE/+DzjIYls/h/YGbLkmRvAkHXQGJU9rA== X-Received: by 2002:a2e:9b0b:: with SMTP id u11mr6676580lji.463.1629272301387; Wed, 18 Aug 2021 00:38:21 -0700 (PDT) Return-Path: Received: from gilgamesh.lab.semihalf.net ([83.142.187.85]) by smtp.gmail.com with ESMTPSA id x16sm414590lfa.244.2021.08.18.00.38.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 18 Aug 2021 00:38:20 -0700 (PDT) From: "Grzegorz Bernacki" To: devel@edk2.groups.io Cc: leif@nuviainc.com, ardb+tianocore@kernel.org, Samer.El-Haj-Mahmoud@arm.com, sunny.Wang@arm.com, mw@semihalf.com, upstream@semihalf.com, pete@akeo.ie, Grzegorz Bernacki Subject: [edk2-platforms PATCH] Platform/RaspberryPi: Check for Boot Discovery Policy change. Date: Wed, 18 Aug 2021 09:38:11 +0200 Message-Id: <20210818073811.3571796-1-gjb@semihalf.com> X-Mailer: git-send-email 2.29.0 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit This patch adds checks if Boot Discovery Policy has been changed. Only in that case EfiBootManagerRefreshAllBootOption() should be called. Signed-off-by: Grzegorz Bernacki --- 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