From 620f289162b08d319fe1e73b3c7e2baff6b388e4 Mon Sep 17 00:00:00 2001 From: Tim He Date: Thu, 11 Jun 2015 02:50:20 +0000 Subject: Sync the branch changes to trunk. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Update the FCE tool to remove “runtime access” . and recovery "Setup" variable in case of “Setup” variable size is incorrect somehow. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Tim He Reviewed-by: David Wei git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17620 6f19259b-4bc3-4df7-8a09-765794883524 --- Vlv2TbltDevicePkg/AcpiPlatform/AcpiPlatform.c | 39 +++++++++++++++++++++++++-- 1 file changed, 37 insertions(+), 2 deletions(-) (limited to 'Vlv2TbltDevicePkg/AcpiPlatform') diff --git a/Vlv2TbltDevicePkg/AcpiPlatform/AcpiPlatform.c b/Vlv2TbltDevicePkg/AcpiPlatform/AcpiPlatform.c index 824f23777..c39c36daa 100644 --- a/Vlv2TbltDevicePkg/AcpiPlatform/AcpiPlatform.c +++ b/Vlv2TbltDevicePkg/AcpiPlatform/AcpiPlatform.c @@ -697,7 +697,18 @@ OnReadyToBoot ( &VariableSize, &SetupVarBuffer ); - ASSERT_EFI_ERROR (Status); + if (EFI_ERROR (Status) || VariableSize != sizeof(SYSTEM_CONFIGURATION)) { + //The setup variable is corrupted + VariableSize = sizeof(SYSTEM_CONFIGURATION); + Status = gRT->GetVariable( + L"SetupRecovery", + &mSystemConfigurationGuid, + NULL, + &VariableSize, + &SetupVarBuffer + ); + ASSERT_EFI_ERROR (Status); + } // // Find the AcpiSupport protocol. @@ -817,7 +828,18 @@ AcpiPlatformEntryPoint ( &VarSize, &mSystemConfiguration ); - ASSERT_EFI_ERROR (Status); + if (EFI_ERROR (Status) || VarSize != sizeof(SYSTEM_CONFIGURATION)) { + //The setup variable is corrupted + VarSize = sizeof(SYSTEM_CONFIGURATION); + Status = gRT->GetVariable( + L"SetupRecovery", + &mSystemConfigurationGuid, + NULL, + &VarSize, + &mSystemConfiguration + ); + ASSERT_EFI_ERROR (Status); + } // // Find the AcpiSupport protocol. @@ -842,6 +864,19 @@ AcpiPlatformEntryPoint ( &SysCfgSize, &mSystemConfig ); + if (EFI_ERROR (Status) || SysCfgSize != sizeof(SYSTEM_CONFIGURATION)) { + //The setup variable is corrupted + SysCfgSize = sizeof(SYSTEM_CONFIGURATION); + Status = gRT->GetVariable( + L"SetupRecovery", + &gEfiNormalSetupGuid, + NULL, + &SysCfgSize, + &mSystemConfig + ); + ASSERT_EFI_ERROR (Status); + } + Status = EFI_SUCCESS; Instance = 0; -- cgit v1.2.3