diff options
Diffstat (limited to 'Vlv2TbltDevicePkg/PlatformPei/BootMode.c')
-rw-r--r-- | Vlv2TbltDevicePkg/PlatformPei/BootMode.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/Vlv2TbltDevicePkg/PlatformPei/BootMode.c b/Vlv2TbltDevicePkg/PlatformPei/BootMode.c index 4d933a09db..04a20e385f 100644 --- a/Vlv2TbltDevicePkg/PlatformPei/BootMode.c +++ b/Vlv2TbltDevicePkg/PlatformPei/BootMode.c @@ -30,6 +30,7 @@ Abstract: #include <Guid/SetupVariable.h>
#include <Guid/BootState.h>
+#include <Library/PchPlatformLib.h>
//
// Priority of our boot modes, highest priority first
@@ -318,6 +319,9 @@ IsFastBootEnabled ( UINTN VarSize;
SYSTEM_CONFIGURATION SystemConfiguration;
BOOLEAN FastBootEnabledStatus;
+ UINT32 PeiGpioValue;
+
+ PeiGpioValue = DetectGpioPinValue();
FastBootEnabledStatus = FALSE;
Status = (**PeiServices).LocatePpi (
@@ -337,6 +341,18 @@ IsFastBootEnabled ( &VarSize,
&SystemConfiguration
);
+ if (PeiGpioValue == 0) {
+ VarSize = sizeof(SYSTEM_CONFIGURATION);
+ Status = PeiReadOnlyVarPpi->GetVariable (
+ PeiReadOnlyVarPpi,
+ L"SetupRecovery",
+ &gEfiSetupVariableGuid,
+ NULL,
+ &VarSize,
+ &SystemConfiguration
+ );
+ ASSERT_EFI_ERROR (Status);
+ }
if (Status == EFI_SUCCESS) {
if (SystemConfiguration.FastBoot != 0) {
FastBootEnabledStatus = TRUE;
|