From d0985c22d5c2c7e24fcf82f8bd77dad44eb342b8 Mon Sep 17 00:00:00 2001 From: "Lu, ShifeiX A" Date: Tue, 12 Sep 2017 13:50:30 +0800 Subject: Change Reset Type Change Reset Type according to different Board. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: lushifex --- .../Board/BensonGlacier/BoardInitPostMem/BoardInit.c | 7 +++++++ .../Board/BensonGlacier/BoardInitPostMem/BoardInit.h | 1 + .../Board/BensonGlacier/BoardInitPostMem/BoardInitPostMem.inf | 1 + .../BroxtonPlatformPkg/Board/LeafHill/BoardInitPostMem/BoardInit.c | 7 +++++++ .../BroxtonPlatformPkg/Board/LeafHill/BoardInitPostMem/BoardInit.h | 1 + .../Board/LeafHill/BoardInitPostMem/BoardInitPostMem.inf | 3 ++- .../Board/MinnowBoard3/BoardInitPostMem/BoardInit.c | 7 +++++++ .../Board/MinnowBoard3/BoardInitPostMem/BoardInit.h | 1 + .../Board/MinnowBoard3/BoardInitPostMem/BoardInitPostMem.inf | 3 ++- .../BroxtonPlatformPkg/Common/Acpi/AcpiPlatformDxe/AcpiPlatform.c | 2 +- .../Common/Acpi/AcpiPlatformDxe/AcpiPlatformDxe.inf | 2 ++ .../Common/Library/PeiFspPolicyInitLib/PeiFspPolicyInitLib.h | 3 ++- .../Common/Library/PeiFspPolicyInitLib/PeiFspPolicyInitLib.inf | 2 ++ .../Common/Library/PeiFspPolicyInitLib/PeiFspScPolicyInitLib.c | 2 +- .../Common/Library/PeiPolicyUpdateLib/PeiPolicyUpdateLib.inf | 1 + .../Common/Library/PeiPolicyUpdateLib/PeiScPolicyUpdate.c | 3 +-- .../Common/PlatformSettings/PlatformSetupDxe/SystemComponent.vfi | 2 ++ Platform/BroxtonPlatformPkg/PlatformPkg.dec | 1 + .../BroxtonSiPkg/SouthCluster/Reset/RuntimeDxe/ScReset.c | 6 +++--- 19 files changed, 45 insertions(+), 10 deletions(-) diff --git a/Platform/BroxtonPlatformPkg/Board/BensonGlacier/BoardInitPostMem/BoardInit.c b/Platform/BroxtonPlatformPkg/Board/BensonGlacier/BoardInitPostMem/BoardInit.c index 729a158d4e..a4f3414b49 100644 --- a/Platform/BroxtonPlatformPkg/Board/BensonGlacier/BoardInitPostMem/BoardInit.c +++ b/Platform/BroxtonPlatformPkg/Board/BensonGlacier/BoardInitPostMem/BoardInit.c @@ -48,6 +48,7 @@ BensonGlacierPostMemInitCallback ( VOID *Instance; UINT8 BoardId; UINT8 FabId; + UINT8 ResetType; Status = PeiServicesLocatePpi ( &gBoardPostMemInitDoneGuid, @@ -75,6 +76,12 @@ BensonGlacierPostMemInitCallback ( // PcdSet64 (PcdBoardPostMemInitFunc, (UINT64) (UINTN) BensonMultiPlatformInfoInit); + // + // Set Reset Type according to different Board + // + ResetType = V_RST_CNT_HARDRESET; + PcdSet8 (PcdResetType, (UINT8) ResetType); + // // Add init steps here // diff --git a/Platform/BroxtonPlatformPkg/Board/BensonGlacier/BoardInitPostMem/BoardInit.h b/Platform/BroxtonPlatformPkg/Board/BensonGlacier/BoardInitPostMem/BoardInit.h index 870f9c3f21..c065ed2268 100644 --- a/Platform/BroxtonPlatformPkg/Board/BensonGlacier/BoardInitPostMem/BoardInit.h +++ b/Platform/BroxtonPlatformPkg/Board/BensonGlacier/BoardInitPostMem/BoardInit.h @@ -33,6 +33,7 @@ #include #include "BoardInitMiscs.h" +#include VOID BensonGpioTest (VOID); diff --git a/Platform/BroxtonPlatformPkg/Board/BensonGlacier/BoardInitPostMem/BoardInitPostMem.inf b/Platform/BroxtonPlatformPkg/Board/BensonGlacier/BoardInitPostMem/BoardInitPostMem.inf index def40bf570..4ce6ab2dbc 100644 --- a/Platform/BroxtonPlatformPkg/Board/BensonGlacier/BoardInitPostMem/BoardInitPostMem.inf +++ b/Platform/BroxtonPlatformPkg/Board/BensonGlacier/BoardInitPostMem/BoardInitPostMem.inf @@ -61,6 +61,7 @@ gPlatformModuleTokenSpaceGuid.PcdBoardPostMemInitFunc gPlatformModuleTokenSpaceGuid.PcdBoardId gPlatformModuleTokenSpaceGuid.PcdFabId + gPlatformModuleTokenSpaceGuid.PcdResetType [Guids] gEfiPlatformInfoGuid diff --git a/Platform/BroxtonPlatformPkg/Board/LeafHill/BoardInitPostMem/BoardInit.c b/Platform/BroxtonPlatformPkg/Board/LeafHill/BoardInitPostMem/BoardInit.c index 501e810af6..e591b1d1f0 100644 --- a/Platform/BroxtonPlatformPkg/Board/LeafHill/BoardInitPostMem/BoardInit.c +++ b/Platform/BroxtonPlatformPkg/Board/LeafHill/BoardInitPostMem/BoardInit.c @@ -56,6 +56,7 @@ LeafHillPostMemInitCallback ( VOID *Instance; UINT8 BoardId; UINT8 FabId; + UINT8 ResetType; Status = PeiServicesLocatePpi ( &gBoardPostMemInitDoneGuid, @@ -82,6 +83,12 @@ LeafHillPostMemInitCallback ( // Set init function PCD // PcdSet64 (PcdBoardPostMemInitFunc, (UINT64) (UINTN) LeafHillMultiPlatformInfoInit); + + // + // Set Reset Type according to different Board + // + ResetType = V_RST_CNT_FULLRESET; + PcdSet8 (PcdResetType, (UINT8) ResetType); // // Add init steps here diff --git a/Platform/BroxtonPlatformPkg/Board/LeafHill/BoardInitPostMem/BoardInit.h b/Platform/BroxtonPlatformPkg/Board/LeafHill/BoardInitPostMem/BoardInit.h index 298613ae63..5b92f75a68 100644 --- a/Platform/BroxtonPlatformPkg/Board/LeafHill/BoardInitPostMem/BoardInit.h +++ b/Platform/BroxtonPlatformPkg/Board/LeafHill/BoardInitPostMem/BoardInit.h @@ -22,6 +22,7 @@ #include #include #include +#include VOID LeafHillGpioTest (VOID); diff --git a/Platform/BroxtonPlatformPkg/Board/LeafHill/BoardInitPostMem/BoardInitPostMem.inf b/Platform/BroxtonPlatformPkg/Board/LeafHill/BoardInitPostMem/BoardInitPostMem.inf index a613fda258..01931b8c6c 100644 --- a/Platform/BroxtonPlatformPkg/Board/LeafHill/BoardInitPostMem/BoardInitPostMem.inf +++ b/Platform/BroxtonPlatformPkg/Board/LeafHill/BoardInitPostMem/BoardInitPostMem.inf @@ -3,7 +3,7 @@ # # It will detect the board ID. # -# Copyright (c) 2014 - 2016, Intel Corporation. All rights reserved.
+# Copyright (c) 2014 - 2017, Intel Corporation. All rights reserved.
# # This program and the accompanying materials # are licensed and made available under the terms and conditions of the BSD License @@ -59,6 +59,7 @@ gPlatformModuleTokenSpaceGuid.PcdBoardPostMemInitFunc gPlatformModuleTokenSpaceGuid.PcdBoardId gPlatformModuleTokenSpaceGuid.PcdFabId + gPlatformModuleTokenSpaceGuid.PcdResetType [Guids] gEfiPlatformInfoGuid diff --git a/Platform/BroxtonPlatformPkg/Board/MinnowBoard3/BoardInitPostMem/BoardInit.c b/Platform/BroxtonPlatformPkg/Board/MinnowBoard3/BoardInitPostMem/BoardInit.c index ac6bf58c13..ef14216d88 100644 --- a/Platform/BroxtonPlatformPkg/Board/MinnowBoard3/BoardInitPostMem/BoardInit.c +++ b/Platform/BroxtonPlatformPkg/Board/MinnowBoard3/BoardInitPostMem/BoardInit.c @@ -56,6 +56,7 @@ MinnowBoard3PostMemInitCallback ( VOID *Instance; UINT8 BoardId; UINT8 FabId; + UINT8 ResetType; Status = PeiServicesLocatePpi ( &gBoardPostMemInitDoneGuid, @@ -82,6 +83,12 @@ MinnowBoard3PostMemInitCallback ( // Set init function PCD // PcdSet64 (PcdBoardPostMemInitFunc, (UINT64) (UINTN) Minnow3MultiPlatformInfoInit); + + // + // Set Reset Type according to different Board + // + ResetType = V_RST_CNT_FULLRESET; + PcdSet8 (PcdResetType, (UINT8) ResetType); // // Add init steps here diff --git a/Platform/BroxtonPlatformPkg/Board/MinnowBoard3/BoardInitPostMem/BoardInit.h b/Platform/BroxtonPlatformPkg/Board/MinnowBoard3/BoardInitPostMem/BoardInit.h index b00f53e5f7..196d140193 100644 --- a/Platform/BroxtonPlatformPkg/Board/MinnowBoard3/BoardInitPostMem/BoardInit.h +++ b/Platform/BroxtonPlatformPkg/Board/MinnowBoard3/BoardInitPostMem/BoardInit.h @@ -22,6 +22,7 @@ #include #include #include +#include VOID Minnow3GpioTest (VOID); diff --git a/Platform/BroxtonPlatformPkg/Board/MinnowBoard3/BoardInitPostMem/BoardInitPostMem.inf b/Platform/BroxtonPlatformPkg/Board/MinnowBoard3/BoardInitPostMem/BoardInitPostMem.inf index d7ba739040..f066703e1f 100644 --- a/Platform/BroxtonPlatformPkg/Board/MinnowBoard3/BoardInitPostMem/BoardInitPostMem.inf +++ b/Platform/BroxtonPlatformPkg/Board/MinnowBoard3/BoardInitPostMem/BoardInitPostMem.inf @@ -2,7 +2,7 @@ # Board detected module for Intel(R) Atom(TM) x5 Processor Series. # It will detect the board ID. # -# Copyright (c) 2014 - 2016, Intel Corporation. All rights reserved.
+# Copyright (c) 2014 - 2017, Intel Corporation. All rights reserved.
# # This program and the accompanying materials # are licensed and made available under the terms and conditions of the BSD License @@ -57,6 +57,7 @@ gPlatformModuleTokenSpaceGuid.PcdBoardPostMemInitFunc gPlatformModuleTokenSpaceGuid.PcdBoardId gPlatformModuleTokenSpaceGuid.PcdFabId + gPlatformModuleTokenSpaceGuid.PcdResetType [Guids] gEfiPlatformInfoGuid diff --git a/Platform/BroxtonPlatformPkg/Common/Acpi/AcpiPlatformDxe/AcpiPlatform.c b/Platform/BroxtonPlatformPkg/Common/Acpi/AcpiPlatformDxe/AcpiPlatform.c index 30071325aa..d3c10b1e5a 100644 --- a/Platform/BroxtonPlatformPkg/Common/Acpi/AcpiPlatformDxe/AcpiPlatform.c +++ b/Platform/BroxtonPlatformPkg/Common/Acpi/AcpiPlatformDxe/AcpiPlatform.c @@ -656,7 +656,7 @@ PlatformUpdateTables ( case EFI_ACPI_3_0_FIXED_ACPI_DESCRIPTION_TABLE_SIGNATURE: pFACP = (EFI_ACPI_3_0_FIXED_ACPI_DESCRIPTION_TABLE *) Table; - pFACP->ResetValue = mSystemConfiguration.ResetSelect; + pFACP->ResetValue = (UINT8) PcdGet8 (PcdResetType); pFACP->Flags |= BIT10; DEBUG ((DEBUG_INFO, "FACP ResetValue = %x\n", pFACP->ResetValue)); diff --git a/Platform/BroxtonPlatformPkg/Common/Acpi/AcpiPlatformDxe/AcpiPlatformDxe.inf b/Platform/BroxtonPlatformPkg/Common/Acpi/AcpiPlatformDxe/AcpiPlatformDxe.inf index 31c2a77532..5e876dcbe0 100644 --- a/Platform/BroxtonPlatformPkg/Common/Acpi/AcpiPlatformDxe/AcpiPlatformDxe.inf +++ b/Platform/BroxtonPlatformPkg/Common/Acpi/AcpiPlatformDxe/AcpiPlatformDxe.inf @@ -45,6 +45,7 @@ DxeVtdLib SteppingLib SeCLib + PcdLib [Guids] gACPIOSFRMfgStringVariableGuid @@ -84,6 +85,7 @@ gEfiBxtTokenSpaceGuid.PcdScAcpiIoPortBaseAddress gEfiBxtTokenSpaceGuid.PcdPmcGcrBaseAddress gEfiMdePkgTokenSpaceGuid.PcdPciExpressBaseAddress + gPlatformModuleTokenSpaceGuid.PcdResetType [Depex] gEfiAcpiSupportProtocolGuid AND diff --git a/Platform/BroxtonPlatformPkg/Common/Library/PeiFspPolicyInitLib/PeiFspPolicyInitLib.h b/Platform/BroxtonPlatformPkg/Common/Library/PeiFspPolicyInitLib/PeiFspPolicyInitLib.h index e9eaa9611b..5bc2a0837a 100644 --- a/Platform/BroxtonPlatformPkg/Common/Library/PeiFspPolicyInitLib/PeiFspPolicyInitLib.h +++ b/Platform/BroxtonPlatformPkg/Common/Library/PeiFspPolicyInitLib/PeiFspPolicyInitLib.h @@ -1,7 +1,7 @@ /** @file Internal header file for Fsp Policy Initialization Library. - Copyright (c) 2015 - 2016, Intel Corporation. All rights reserved.
+ Copyright (c) 2015 - 2017, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License @@ -22,6 +22,7 @@ #include #include #include +#include #include #include #include diff --git a/Platform/BroxtonPlatformPkg/Common/Library/PeiFspPolicyInitLib/PeiFspPolicyInitLib.inf b/Platform/BroxtonPlatformPkg/Common/Library/PeiFspPolicyInitLib/PeiFspPolicyInitLib.inf index fab0d00aef..b4099b2ea1 100644 --- a/Platform/BroxtonPlatformPkg/Common/Library/PeiFspPolicyInitLib/PeiFspPolicyInitLib.inf +++ b/Platform/BroxtonPlatformPkg/Common/Library/PeiFspPolicyInitLib/PeiFspPolicyInitLib.inf @@ -70,6 +70,7 @@ ConfigBlockLib PeiPolicyInitLib ScPlatformLib + PcdLib [Pcd] @@ -87,6 +88,7 @@ gEfiBxtTokenSpaceGuid.PcdScAcpiIoPortBaseAddress gEfiBxtTokenSpaceGuid.PcdP2SBBaseAddress gEfiBxtTokenSpaceGuid.PcdPmcGcrBaseAddress + gPlatformModuleTokenSpaceGuid.PcdResetType [Ppis] gSiPolicyPpiGuid ## CONSUMES diff --git a/Platform/BroxtonPlatformPkg/Common/Library/PeiFspPolicyInitLib/PeiFspScPolicyInitLib.c b/Platform/BroxtonPlatformPkg/Common/Library/PeiFspPolicyInitLib/PeiFspScPolicyInitLib.c index 5695821ce7..cf3eef2f27 100644 --- a/Platform/BroxtonPlatformPkg/Common/Library/PeiFspPolicyInitLib/PeiFspScPolicyInitLib.c +++ b/Platform/BroxtonPlatformPkg/Common/Library/PeiFspPolicyInitLib/PeiFspScPolicyInitLib.c @@ -216,7 +216,7 @@ PeiFspScPolicyInit ( // // Set ACPI and P2SB Base Addresses // - FspsUpd->FspsConfig.ResetSelect = SystemConfiguration->ResetSelect; + FspsUpd->FspsConfig.ResetSelect = (UINT8) PcdGet8 (PcdResetType); FspsUpd->FspsConfig.CRIDSettings = SystemConfiguration->CRIDSettings; // diff --git a/Platform/BroxtonPlatformPkg/Common/Library/PeiPolicyUpdateLib/PeiPolicyUpdateLib.inf b/Platform/BroxtonPlatformPkg/Common/Library/PeiPolicyUpdateLib/PeiPolicyUpdateLib.inf index d913506f86..ea8d7fb4b1 100644 --- a/Platform/BroxtonPlatformPkg/Common/Library/PeiPolicyUpdateLib/PeiPolicyUpdateLib.inf +++ b/Platform/BroxtonPlatformPkg/Common/Library/PeiPolicyUpdateLib/PeiPolicyUpdateLib.inf @@ -80,6 +80,7 @@ gEfiBxtTokenSpaceGuid.PcdScAcpiIoPortBaseAddress gEfiBxtTokenSpaceGuid.PcdP2SBBaseAddress gEfiBxtTokenSpaceGuid.PcdPmcGcrBaseAddress + gPlatformModuleTokenSpaceGuid.PcdResetType [FixedPcd] gPlatformModuleTokenSpaceGuid.PcdFlashAreaSize diff --git a/Platform/BroxtonPlatformPkg/Common/Library/PeiPolicyUpdateLib/PeiScPolicyUpdate.c b/Platform/BroxtonPlatformPkg/Common/Library/PeiPolicyUpdateLib/PeiScPolicyUpdate.c index c98a8df657..9d2c028c75 100644 --- a/Platform/BroxtonPlatformPkg/Common/Library/PeiPolicyUpdateLib/PeiScPolicyUpdate.c +++ b/Platform/BroxtonPlatformPkg/Common/Library/PeiPolicyUpdateLib/PeiScPolicyUpdate.c @@ -381,8 +381,7 @@ UpdatePeiScPolicy ( GeneralConfig->AcpiBase = (UINT16) PcdGet16 (PcdScAcpiIoPortBaseAddress); GeneralConfig->P2sbBase = (UINT32) PcdGet32 (PcdP2SBBaseAddress); GeneralConfig->Crid = SystemConfiguration.CRIDSettings; - GeneralConfig->ResetSelect = SystemConfiguration.ResetSelect; - + GeneralConfig->ResetSelect = (UINT8) PcdGet8 (PcdResetType); HpetConfig->Enable = SystemConfiguration.Hpet; HpetConfig->Base = HPET_BASE_ADDRESS; HpetConfig->BdfValid = 0x01; diff --git a/Platform/BroxtonPlatformPkg/Common/PlatformSettings/PlatformSetupDxe/SystemComponent.vfi b/Platform/BroxtonPlatformPkg/Common/PlatformSettings/PlatformSetupDxe/SystemComponent.vfi index 16822f6c06..9bd93d3f02 100644 --- a/Platform/BroxtonPlatformPkg/Common/PlatformSettings/PlatformSetupDxe/SystemComponent.vfi +++ b/Platform/BroxtonPlatformPkg/Common/PlatformSettings/PlatformSetupDxe/SystemComponent.vfi @@ -45,12 +45,14 @@ form formid = SYSTEM_COMPONENT_FORM_ID, option text = STRING_TOKEN(STR_PNP_POWER_PERFORMANCE_STRING), value = 3, flags = MANUFACTURING | DEFAULT | RESET_REQUIRED; endoneof; +suppressif TRUE; oneof varid = Setup.ResetSelect, prompt = STRING_TOKEN(STR_RESET_SELECT), help = STRING_TOKEN(STR_RESET_SELECT_HELP), option text = STRING_TOKEN(STR_WARM_RESET), value = 0x6, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; option text = STRING_TOKEN(STR_COLD_RESET), value = 0xE, flags = RESET_REQUIRED; endoneof; +endif; // Embedded Power Instrumentation oneof varid = Setup.EPIEnable, diff --git a/Platform/BroxtonPlatformPkg/PlatformPkg.dec b/Platform/BroxtonPlatformPkg/PlatformPkg.dec index b318b586ea..208f2a5348 100644 --- a/Platform/BroxtonPlatformPkg/PlatformPkg.dec +++ b/Platform/BroxtonPlatformPkg/PlatformPkg.dec @@ -178,6 +178,7 @@ gPlatformModuleTokenSpaceGuid.PcdUpdateFspmUpdFunc|0|UINT64|0x80000010 gPlatformModuleTokenSpaceGuid.PcdDramCreatePolicyDefaultsFunc|0|UINT64|0x80000011 gPlatformModuleTokenSpaceGuid.PcdGetBoardNameFunc|0|UINT64|0x80000012 + gPlatformModuleTokenSpaceGuid.PcdResetType|0x0E|UINT8|0x80000013 ## MemoryCheck value for checking memory before boot OS. ## To save the boot performance, the default MemoryCheck is set to 0. diff --git a/Silicon/BroxtonSoC/BroxtonSiPkg/SouthCluster/Reset/RuntimeDxe/ScReset.c b/Silicon/BroxtonSoC/BroxtonSiPkg/SouthCluster/Reset/RuntimeDxe/ScReset.c index 2bac0a5e34..96dd4f7e45 100644 --- a/Silicon/BroxtonSoC/BroxtonSiPkg/SouthCluster/Reset/RuntimeDxe/ScReset.c +++ b/Silicon/BroxtonSoC/BroxtonSiPkg/SouthCluster/Reset/RuntimeDxe/ScReset.c @@ -1,7 +1,7 @@ /** @file Reset Architectural Protocol implementation. - Copyright (c) 2011 - 2016, Intel Corporation. All rights reserved.
+ Copyright (c) 2011 - 2017, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License @@ -289,14 +289,14 @@ IntelScResetSystem ( switch (ResetType) { case EfiResetWarm: InitialData = V_RST_CNT_HARDSTARTSTATE; - OutputData = mResetInstance->ResetSelect; + OutputData = V_RST_CNT_HARDRESET; if (mResetInstance->ResetSelect == V_RST_CNT_FULLRESET) { } break; case EfiResetCold: InitialData = V_RST_CNT_HARDSTARTSTATE; - OutputData = V_RST_CNT_HARDRESET; + OutputData = mResetInstance->ResetSelect; break; case EfiResetShutdown: -- cgit v1.2.3