diff options
author | timhe <timhe@timhe> | 2015-12-04 08:00:53 +0000 |
---|---|---|
committer | zwei4 <david.wei@intel.com> | 2016-04-11 17:03:24 +0800 |
commit | d3ce92cab255985b4f395c80592b26320d0f24ac (patch) | |
tree | ce15f6a054cab38c323f5566ba9d4e3e0607b516 /Vlv2TbltDevicePkg/AcpiPlatform | |
parent | 04f666f34e0ada0a67d18a6eeb90bb6fd3f11d59 (diff) | |
download | edk2-platforms-d3ce92cab255985b4f395c80592b26320d0f24ac.tar.xz |
Vlv2TbltDevicePkg/Vlv2DeviceRefCodePkg:
Reset BIOS Setup when the jumper is
present on Turbot board.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Shifei Lu <shifeix.a.lu@intel.com>
Reviewed-by: Tim He <tim.he@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/branches/UDK2014.SP1@19122 6f19259b-4bc3-4df7-8a09-765794883524
Diffstat (limited to 'Vlv2TbltDevicePkg/AcpiPlatform')
-rw-r--r-- | Vlv2TbltDevicePkg/AcpiPlatform/AcpiPlatform.c | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/Vlv2TbltDevicePkg/AcpiPlatform/AcpiPlatform.c b/Vlv2TbltDevicePkg/AcpiPlatform/AcpiPlatform.c index 2ff14ec6bb..a7e54e3284 100644 --- a/Vlv2TbltDevicePkg/AcpiPlatform/AcpiPlatform.c +++ b/Vlv2TbltDevicePkg/AcpiPlatform/AcpiPlatform.c @@ -648,6 +648,7 @@ OnReadyToBoot ( EFI_PLATFORM_CPU_INFO *PlatformCpuInfoPtr = NULL;
EFI_PLATFORM_CPU_INFO PlatformCpuInfo;
EFI_PEI_HOB_POINTERS GuidHob;
+ UINT32 DxeGpioValue;
if (mFirstNotify) {
return;
@@ -686,6 +687,8 @@ OnReadyToBoot ( CopyMem(&PlatformCpuInfo, PlatformCpuInfoPtr, sizeof(EFI_PLATFORM_CPU_INFO));
}
+ DxeGpioValue = DetectGpioPinValue();
+
//
// Update the ACPI parameter blocks finally.
//
@@ -697,8 +700,8 @@ OnReadyToBoot ( &VariableSize,
&SetupVarBuffer
);
- if (EFI_ERROR (Status) || VariableSize != sizeof(SYSTEM_CONFIGURATION)) {
- //The setup variable is corrupted
+ if (EFI_ERROR (Status) || VariableSize != sizeof(SYSTEM_CONFIGURATION) || DxeGpioValue == 0) {
+ //The setup variable is corrupted or detect GPIO_S5_17 Pin is low
VariableSize = sizeof(SYSTEM_CONFIGURATION);
Status = gRT->GetVariable(
L"SetupRecovery",
@@ -796,6 +799,7 @@ AcpiPlatformEntryPoint ( UINTN NumberOfEnabledCPUs;
UINT32 Data32;
PCH_STEPPING pchStepping;
+ UINT32 DxeGpioValue;
mFirstNotify = FALSE;
@@ -815,7 +819,8 @@ AcpiPlatformEntryPoint ( mPlatformInfo = GET_GUID_HOB_DATA (GuidHob.Guid);
}
}
-
+
+ DxeGpioValue = DetectGpioPinValue();
//
// Search for the Memory Configuration GUID HOB. If it is not present, then
// there's nothing we can do. It may not exist on the update path.
@@ -828,8 +833,8 @@ AcpiPlatformEntryPoint ( &VarSize,
&mSystemConfiguration
);
- if (EFI_ERROR (Status) || VarSize != sizeof(SYSTEM_CONFIGURATION)) {
- //The setup variable is corrupted
+ if (EFI_ERROR (Status) || VarSize != sizeof(SYSTEM_CONFIGURATION) || DxeGpioValue == 0) {
+ //The setup variable is corrupted or detect GPIO_S5_17 Pin is low
VarSize = sizeof(SYSTEM_CONFIGURATION);
Status = gRT->GetVariable(
L"SetupRecovery",
@@ -864,8 +869,8 @@ AcpiPlatformEntryPoint ( &SysCfgSize,
&mSystemConfig
);
- if (EFI_ERROR (Status) || SysCfgSize != sizeof(SYSTEM_CONFIGURATION)) {
- //The setup variable is corrupted
+ if (EFI_ERROR (Status) || SysCfgSize != sizeof(SYSTEM_CONFIGURATION) || DxeGpioValue == 0) {
+ //The setup variable is corrupted or detect GPIO_S5_17 Pin is low
SysCfgSize = sizeof(SYSTEM_CONFIGURATION);
Status = gRT->GetVariable(
L"SetupRecovery",
|