&VarSize,\r
&SystemConfiguration\r
);\r
+ if (EFI_ERROR (Status) || VarSize != sizeof(SYSTEM_CONFIGURATION)) {\r
+ //The setup variable is corrupted\r
+ VarSize = sizeof(SYSTEM_CONFIGURATION);\r
+ Status = Variable->GetVariable(\r
+ Variable,\r
+ L"SetupRecovery",\r
+ &gEfiSetupVariableGuid,\r
+ NULL,\r
+ &VarSize,\r
+ &SystemConfiguration\r
+ );\r
+ ASSERT_EFI_ERROR (Status);\r
+ } \r
\r
if (SystemConfiguration.FastBoot == 1) {\r
BootMode = BOOT_WITH_MINIMAL_CONFIGURATION;\r
// Recovery mode\r
//\r
CopyMem (&PlatformSetupId.SetupName,\r
- SAFE_SETUP_NAME,\r
- StrSize (SAFE_SETUP_NAME));\r
+ &NORMAL_SETUP_NAME,\r
+ StrSize (NORMAL_SETUP_NAME)); \r
PlatformSetupId.PlatformBootMode = PLATFORM_RECOVERY_MODE;\r
} else if (CheckIfSafeMode(PeiServices, PlatformInfoHob)) {\r
//\r
// Safe mode also called config mode or maintenace mode.\r
//\r
CopyMem (&PlatformSetupId.SetupName,\r
- SAFE_SETUP_NAME,\r
- StrSize (SAFE_SETUP_NAME));\r
+ &NORMAL_SETUP_NAME,\r
+ StrSize (NORMAL_SETUP_NAME));\r
PlatformSetupId.PlatformBootMode = PLATFORM_SAFE_MODE;\r
\r
} else if(0) { // else if (CheckIfManufacturingMode(PeiServices)) {\r