diff options
author | Lu, ShifeiX A <shifeix.a.lu@intel.com> | 2017-09-12 13:50:30 +0800 |
---|---|---|
committer | zwei4 <david.wei@intel.com> | 2017-09-12 14:00:55 +0800 |
commit | d0985c22d5c2c7e24fcf82f8bd77dad44eb342b8 (patch) | |
tree | 1681750055705044ae6b9001b99eb63d85c359a2 /Platform | |
parent | 57806691194ee7b5509e6992530c4696508ab85c (diff) | |
download | edk2-platforms-d0985c22d5c2c7e24fcf82f8bd77dad44eb342b8.tar.xz |
Change Reset Type
Change Reset Type according to different Board.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: lushifex <shifeix.a.lu@intel.com>
Diffstat (limited to 'Platform')
18 files changed, 42 insertions, 7 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,
@@ -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 870f9c3f21..c065ed2268 100644 --- a/Platform/BroxtonPlatformPkg/Board/BensonGlacier/BoardInitPostMem/BoardInit.h +++ b/Platform/BroxtonPlatformPkg/Board/BensonGlacier/BoardInitPostMem/BoardInit.h @@ -33,6 +33,7 @@ #include <Ppi/BoardInitSignalling.h>
#include "BoardInitMiscs.h"
+#include <ScRegs/RegsPcu.h>
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 <Library/HobLib.h>
#include <Library/TimerLib.h>
#include <Guid/PlatformInfo_Aplk.h>
+#include <ScRegs/RegsPcu.h>
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.<BR>
+# Copyright (c) 2014 - 2017, Intel Corporation. All rights reserved.<BR>
#
# 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 <Library/HobLib.h>
#include <Library/TimerLib.h>
#include <Guid/PlatformInfo_Aplk.h>
+#include <ScRegs/RegsPcu.h>
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.<BR>
+# Copyright (c) 2014 - 2017, Intel Corporation. All rights reserved.<BR>
#
# 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.<BR>
+ Copyright (c) 2015 - 2017, Intel Corporation. All rights reserved.<BR>
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 <Library/ConfigBlockLib.h>
#include <Library/PeiScPolicyLib.h>
#include <Library/MemoryAllocationLib.h>
+#include <Library/PcdLib.h>
#include <Guid/SetupVariable.h>
#include <FspEas.h>
#include <FspmUpd.h>
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.
|