From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 8C71120945C16 for ; Mon, 11 Sep 2017 22:47:34 -0700 (PDT) Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by orsmga101.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 11 Sep 2017 22:50:30 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.42,382,1500966000"; d="scan'208";a="899362636" Received: from shwdeopenpsi011.ccr.corp.intel.com (HELO SHWDEOPENPSI011.local) ([10.239.9.21]) by FMSMGA003.fm.intel.com with SMTP; 11 Sep 2017 22:50:29 -0700 Date: Tue, 12 Sep 2017 13:50:30 +0800 From: lushifex CC: david.wei@intel.com; Sender: lushifex To: edk2-devel@lists.01.org Message-ID: X-Mailer: TortoiseGit MIME-Version: 1.0 Subject: [Patch][edk2-platforms/devel-MinnowBoard3-UDK2017] Change Reset Type X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 12 Sep 2017 05:47:34 -0000 Content-Type: text/plain; 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 729a158..a4f3414 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, @@ -76,6 +77,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 870f9c3..c065ed2 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 def40bf..4ce6ab2 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 501e810..e591b1d 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 298613a..5b92f75 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 a613fda..01931b8 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 ac6bf58..ef14216 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 b00f53e..196d140 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 d7ba739..f066703 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 3007132..d3c10b1 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 31c2a77..5e876dc 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 e9eaa96..5bc2a08 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 fab0d00..b4099b2 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 5695821..cf3eef2 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 d913506..ea8d7fb 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 c98a8df..9d2c028 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 16822f6..9bd93d3 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 b318b58..208f2a5 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 2bac0a5..96dd4f7 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: -- 2.7.0.windows.1