/** @file\r
\r
- Copyright (c) 2004 - 2014, Intel Corporation. All rights reserved.<BR>\r
+ Copyright (c) 2004 - 2016, Intel Corporation. All rights reserved.<BR>\r
\r\r
This program and the accompanying materials are licensed and made available under\r\r
the terms and conditions of the BSD License that accompanies this distribution. \r\r
EFI_STATUS Status;\r
EFI_EVENT ShellImageEvent;\r
EFI_GUID ShellEnvProtocol = SHELL_ENVIRONMENT_INTERFACE_PROTOCOL;\r
+ \r
+ //\r
+ // Signal EndOfDxe PI Event\r
+ //\r
+ EfiEventGroupSignal (&gEfiEndOfDxeEventGroupGuid);\r
\r
#ifdef __GNUC__\r
SerialPortWrite((UINT8 *)">>>>BdsEntry[GCC]\r\n", 19);\r
&VarSize,\r
&mSystemConfiguration\r
);\r
- ASSERT_EFI_ERROR (Status);\r
+ if (EFI_ERROR (Status) || VarSize != sizeof(SYSTEM_CONFIGURATION)) {\r
+ //The setup variable is corrupted\r
+ VarSize = sizeof(SYSTEM_CONFIGURATION);\r
+ Status = gRT->GetVariable(\r
+ L"SetupRecovery",\r
+ &gEfiNormalSetupGuid,\r
+ NULL,\r
+ &VarSize,\r
+ &mSystemConfiguration\r
+ );\r
+ ASSERT_EFI_ERROR (Status);\r
+ } \r
\r
if(mSystemConfiguration.BootDisplayDevice != 0x0)\r
{\r
&VarSize,\r
&mSystemConfiguration\r
);\r
- ASSERT_EFI_ERROR (Status);\r
+ if (EFI_ERROR (Status) || VarSize != sizeof(SYSTEM_CONFIGURATION)) {\r
+ //The setup variable is corrupted\r
+ VarSize = sizeof(SYSTEM_CONFIGURATION);\r
+ Status = gRT->GetVariable(\r
+ L"SetupRecovery",\r
+ &gEfiNormalSetupGuid,\r
+ NULL,\r
+ &VarSize,\r
+ &mSystemConfiguration\r
+ );\r
+ ASSERT_EFI_ERROR (Status);\r
+ } \r
\r
\r
if ((PlugInPciVgaDevicePath == NULL && OnboardPciVgaDevicePath != NULL) ) {\r
&VarSize,\r
&SystemConfiguration\r
);\r
- ASSERT_EFI_ERROR (Status);\r
+ if (EFI_ERROR (Status) || VarSize != sizeof(SYSTEM_CONFIGURATION)) {\r
+ //The setup variable is corrupted\r
+ VarSize = sizeof(SYSTEM_CONFIGURATION);\r
+ Status = gRT->GetVariable(\r
+ L"SetupRecovery",\r
+ &gEfiNormalSetupGuid,\r
+ NULL,\r
+ &VarSize,\r
+ &SystemConfiguration\r
+ );\r
+ ASSERT_EFI_ERROR (Status);\r
+ } \r
\r
switch (SystemConfiguration.IgdFlatPanel) {\r
\r
UINTN BootOrderSize;\r
\r
Timeout = PcdGet16 (PcdPlatformBootTimeOut);\r
+ if (Timeout > 10 ) {\r
+ //we think the Timeout variable is corrupted\r
+ Timeout = 10;\r
+ }\r
+ \r
VarSize = sizeof(SYSTEM_CONFIGURATION);\r
Status = gRT->GetVariable(\r
NORMAL_SETUP_NAME,\r
&VarSize,\r
&SystemConfiguration\r
);\r
- if (EFI_ERROR (Status)) {\r
- return;\r
- }\r
+\r
+ if (EFI_ERROR (Status) || VarSize != sizeof(SYSTEM_CONFIGURATION)) {\r
+ //The setup variable is corrupted\r
+ VarSize = sizeof(SYSTEM_CONFIGURATION);\r
+ Status = gRT->GetVariable(\r
+ L"SetupRecovery",\r
+ &gEfiNormalSetupGuid,\r
+ NULL,\r
+ &VarSize,\r
+ &SystemConfiguration\r
+ );\r
+ ASSERT_EFI_ERROR (Status);\r
+ } \r
\r
//\r
// Load the driver option as the driver option list\r
}\r
\r
\r
-#ifdef TPM_ENABLED\r
- TcgPhysicalPresenceLibProcessRequest();\r
-#endif\r
-\r
+ #ifdef TPM_ENABLED\r
+ TcgPhysicalPresenceLibProcessRequest();\r
+ #endif\r
+ #ifdef FTPM_ENABLE\r
+ TrEEPhysicalPresenceLibProcessRequest(NULL);\r
+ #endif\r
//\r
// Close boot script and install ready to lock\r
//\r
PlatformBdsConnectSequence ();\r
}\r
}\r
-#ifdef TPM_ENABLED\r
+ #ifdef TPM_ENABLED\r
TcgPhysicalPresenceLibProcessRequest();\r
-#endif\r
-\r
+ #endif\r
+ #ifdef FTPM_ENABLE\r
+ TrEEPhysicalPresenceLibProcessRequest(NULL);\r
+ #endif\r
//\r
// Close boot script and install ready to lock\r
//\r