X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=Vlv2TbltDevicePkg%2FPlatformInitPei%2FBootMode.c;h=3b94e3b54f08a80a0594b15fe081211abb91d80d;hb=ba0014b9f8ae1a593f03e744f26008214c2b06a8;hp=174d8e974ee05dcbdca899e8e55ae4c4f922b726;hpb=3cbfba02fef9dae07a041fdbf2e89611d72d6f90;p=mirror_edk2.git diff --git a/Vlv2TbltDevicePkg/PlatformInitPei/BootMode.c b/Vlv2TbltDevicePkg/PlatformInitPei/BootMode.c index 174d8e974e..3b94e3b54f 100644 --- a/Vlv2TbltDevicePkg/PlatformInitPei/BootMode.c +++ b/Vlv2TbltDevicePkg/PlatformInitPei/BootMode.c @@ -202,6 +202,19 @@ UpdateBootMode ( &VarSize, &SystemConfiguration ); + if (EFI_ERROR (Status) || VarSize != sizeof(SYSTEM_CONFIGURATION)) { + //The setup variable is corrupted + VarSize = sizeof(SYSTEM_CONFIGURATION); + Status = Variable->GetVariable( + Variable, + L"SetupRecovery", + &gEfiSetupVariableGuid, + NULL, + &VarSize, + &SystemConfiguration + ); + ASSERT_EFI_ERROR (Status); + } if (SystemConfiguration.FastBoot == 1) { BootMode = BOOT_WITH_MINIMAL_CONFIGURATION; @@ -386,16 +399,16 @@ SetPlatformBootMode ( // Recovery mode // CopyMem (&PlatformSetupId.SetupName, - SAFE_SETUP_NAME, - StrSize (SAFE_SETUP_NAME)); + &NORMAL_SETUP_NAME, + StrSize (NORMAL_SETUP_NAME)); PlatformSetupId.PlatformBootMode = PLATFORM_RECOVERY_MODE; } else if (CheckIfSafeMode(PeiServices, PlatformInfoHob)) { // // Safe mode also called config mode or maintenace mode. // CopyMem (&PlatformSetupId.SetupName, - SAFE_SETUP_NAME, - StrSize (SAFE_SETUP_NAME)); + &NORMAL_SETUP_NAME, + StrSize (NORMAL_SETUP_NAME)); PlatformSetupId.PlatformBootMode = PLATFORM_SAFE_MODE; } else if(0) { // else if (CheckIfManufacturingMode(PeiServices)) {