Cc: Chasel Chiu <chasel.c...@intel.com> Cc: Michael Kubacki <michael.a.kuba...@intel.com> Signed-off-by: Nate DeSimone <nathaniel.l.desim...@intel.com> --- .../BoardInitLib/PeiBoardInitPostMemLib.inf | 1 + .../BoardInitLib/PeiBoardInitPreMemLib.inf | 1 + .../PeiMultiBoardInitPostMemLib.inf | 1 + .../PeiMultiBoardInitPreMemLib.inf | 2 +- .../PeiWhiskeylakeURvpInitPostMemLib.c | 6 +- .../PeiWhiskeylakeURvpInitPreMemLib.c | 89 ++----------------- .../BoardInitLib/WhiskeylakeURvpInit.h | 1 + .../WhiskeylakeURvp/OpenBoardPkg.dsc | 5 ++ 8 files changed, 24 insertions(+), 82 deletions(-)
diff --git a/Platform/Intel/WhiskeylakeOpenBoardPkg/WhiskeylakeURvp/Library/BoardInitLib/PeiBoardInitPostMemLib.inf b/Platform/Intel/WhiskeylakeOpenBoardPkg/WhiskeylakeURvp/Library/BoardInitLib/PeiBoardInitPostMemLib.inf index 9bf4d127c5..affc5c56ad 100644 --- a/Platform/Intel/WhiskeylakeOpenBoardPkg/WhiskeylakeURvp/Library/BoardInitLib/PeiBoardInitPostMemLib.inf +++ b/Platform/Intel/WhiskeylakeOpenBoardPkg/WhiskeylakeURvp/Library/BoardInitLib/PeiBoardInitPostMemLib.inf @@ -26,6 +26,7 @@ HdaVerbTableLib MemoryAllocationLib PcdLib + SiliconInitLib [Packages] MinPlatformPkg/MinPlatformPkg.dec diff --git a/Platform/Intel/WhiskeylakeOpenBoardPkg/WhiskeylakeURvp/Library/BoardInitLib/PeiBoardInitPreMemLib.inf b/Platform/Intel/WhiskeylakeOpenBoardPkg/WhiskeylakeURvp/Library/BoardInitLib/PeiBoardInitPreMemLib.inf index 4ab80f9eb3..40e20285e0 100644 --- a/Platform/Intel/WhiskeylakeOpenBoardPkg/WhiskeylakeURvp/Library/BoardInitLib/PeiBoardInitPreMemLib.inf +++ b/Platform/Intel/WhiskeylakeOpenBoardPkg/WhiskeylakeURvp/Library/BoardInitLib/PeiBoardInitPreMemLib.inf @@ -23,6 +23,7 @@ BaseMemoryLib MemoryAllocationLib PcdLib + SiliconInitLib [Packages] MinPlatformPkg/MinPlatformPkg.dec diff --git a/Platform/Intel/WhiskeylakeOpenBoardPkg/WhiskeylakeURvp/Library/BoardInitLib/PeiMultiBoardInitPostMemLib.inf b/Platform/Intel/WhiskeylakeOpenBoardPkg/WhiskeylakeURvp/Library/BoardInitLib/PeiMultiBoardInitPostMemLib.inf index c043e32638..21dc2f70c0 100644 --- a/Platform/Intel/WhiskeylakeOpenBoardPkg/WhiskeylakeURvp/Library/BoardInitLib/PeiMultiBoardInitPostMemLib.inf +++ b/Platform/Intel/WhiskeylakeOpenBoardPkg/WhiskeylakeURvp/Library/BoardInitLib/PeiMultiBoardInitPostMemLib.inf @@ -30,6 +30,7 @@ PeiPlatformHookLib PeiPolicyInitLib PchInfoLib + SiliconInitLib [Packages] MinPlatformPkg/MinPlatformPkg.dec diff --git a/Platform/Intel/WhiskeylakeOpenBoardPkg/WhiskeylakeURvp/Library/BoardInitLib/PeiMultiBoardInitPreMemLib.inf b/Platform/Intel/WhiskeylakeOpenBoardPkg/WhiskeylakeURvp/Library/BoardInitLib/PeiMultiBoardInitPreMemLib.inf index cd0315377a..7389f1dfcd 100644 --- a/Platform/Intel/WhiskeylakeOpenBoardPkg/WhiskeylakeURvp/Library/BoardInitLib/PeiMultiBoardInitPreMemLib.inf +++ b/Platform/Intel/WhiskeylakeOpenBoardPkg/WhiskeylakeURvp/Library/BoardInitLib/PeiMultiBoardInitPreMemLib.inf @@ -31,6 +31,7 @@ PeiPlatformHookLib PeiPolicyInitLib PlatformHookLib + SiliconInitLib StallPpiLib [Packages] @@ -57,7 +58,6 @@ [Guids] gPchGeneralPreMemConfigGuid ## CONSUMES - gTcoWdtHobGuid ## CONSUMES [Pcd] gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdLpcSioConfigDefaultPort diff --git a/Platform/Intel/WhiskeylakeOpenBoardPkg/WhiskeylakeURvp/Library/BoardInitLib/PeiWhiskeylakeURvpInitPostMemLib.c b/Platform/Intel/WhiskeylakeOpenBoardPkg/WhiskeylakeURvp/Library/BoardInitLib/PeiWhiskeylakeURvpInitPostMemLib.c index 9413620a4a..248a6657d5 100644 --- a/Platform/Intel/WhiskeylakeOpenBoardPkg/WhiskeylakeURvp/Library/BoardInitLib/PeiWhiskeylakeURvpInitPostMemLib.c +++ b/Platform/Intel/WhiskeylakeOpenBoardPkg/WhiskeylakeURvp/Library/BoardInitLib/PeiWhiskeylakeURvpInitPostMemLib.c @@ -430,6 +430,10 @@ WhiskeylakeURvpBoardInitBeforeSiliconInit ( // Status = UpdateChipsetInitPtr(); + /// + /// Do Late PCH init + /// + LateSiliconInit (); + return EFI_SUCCESS; } - diff --git a/Platform/Intel/WhiskeylakeOpenBoardPkg/WhiskeylakeURvp/Library/BoardInitLib/PeiWhiskeylakeURvpInitPreMemLib.c b/Platform/Intel/WhiskeylakeOpenBoardPkg/WhiskeylakeURvp/Library/BoardInitLib/PeiWhiskeylakeURvpInitPreMemLib.c index 0124888244..055d731651 100644 --- a/Platform/Intel/WhiskeylakeOpenBoardPkg/WhiskeylakeURvp/Library/BoardInitLib/PeiWhiskeylakeURvpInitPreMemLib.c +++ b/Platform/Intel/WhiskeylakeOpenBoardPkg/WhiskeylakeURvp/Library/BoardInitLib/PeiWhiskeylakeURvpInitPreMemLib.c @@ -45,7 +45,6 @@ #include <Library/PciSegmentLib.h> #include <PeiPlatformHookLib.h> #include <FirwmareConfigurations.h> -#include <Guid/TcoWdtHob.h> #include <Library/OcWdtLib.h> /// @@ -232,50 +231,8 @@ BoardMiscInitPreMem( return EFI_SUCCESS; } -//@todo it should be moved to Si Pkg. -/** -Early Platform PCH initialization -**/ -VOID -EarlyPlatformPchInit( - VOID -) -{ - UINT8 Data8; - UINT8 TcoRebootHappened; - TCO_WDT_HOB *TcoWdtHobPtr; - EFI_STATUS Status; - - /// - /// Read the Second TO status bit - /// - Data8 = IoRead8(PcdGet16(PcdTcoBaseAddress) + R_TCO_IO_TCO2_STS); - if ((Data8 & B_TCO_IO_TCO2_STS_SECOND_TO) == B_TCO_IO_TCO2_STS_SECOND_TO) { - TcoRebootHappened = 1; - DEBUG((DEBUG_INFO, "PlatformInitPreMem - TCO Second TO status bit is set. This might be a TCO reboot\n")); - } - else { - TcoRebootHappened = 0; - } - - /// - /// Create HOB - /// - Status = PeiServicesCreateHob(EFI_HOB_TYPE_GUID_EXTENSION, sizeof(TCO_WDT_HOB), (VOID **)&TcoWdtHobPtr); - if (!EFI_ERROR(Status)) { - TcoWdtHobPtr->Header.Name = gTcoWdtHobGuid; - TcoWdtHobPtr->TcoRebootHappened = TcoRebootHappened; - } - - /// - /// Clear the Second TO status bit - /// - IoWrite8(PcdGet16(PcdTcoBaseAddress) + R_TCO_IO_TCO2_STS, B_TCO_IO_TCO2_STS_SECOND_TO); -} - /** Board configuration initialization in the pre-memory boot phase. - **/ VOID BoardConfigInitPreMem ( @@ -341,7 +298,6 @@ PlatformInitPreMemCallBack( ) { EFI_STATUS Status; - UINT16 ABase; UINT8 FwConfig; // @@ -378,16 +334,8 @@ PlatformInitPreMemCallBack( /// /// Configure GPIO and SIO /// - Status = BoardInitPreMem(); - ASSERT_EFI_ERROR(Status); - - ABase = PmcGetAcpiBase(); - - /// - /// Clear all pending SMI. On S3 clear power button enable so it will not generate an SMI. - /// - IoWrite16(ABase + R_ACPI_IO_PM1_EN, 0); - IoWrite32(ABase + R_ACPI_IO_GPE0_EN_127_96, 0); + Status = BoardInitPreMem (); + ASSERT_EFI_ERROR (Status); /// /// Install Pre Memory PPIs @@ -550,12 +498,6 @@ WhiskeylakeURvpInitPreMem ( Status = InstallStallPpi(); ASSERT_EFI_ERROR(Status); - ///@todo it should be moved to Si Pkg. - /// - /// Do Early PCH init - /// - EarlyPlatformPchInit(); - // // Install PCH RESET PPI and EFI RESET2 PeiService // @@ -588,6 +530,11 @@ WhiskeylakeURvpBoardInitBeforeMemoryInit ( VOID ) { + /// + /// Do basic PCH init + /// + SiliconInit (); + WhiskeylakeURvpInitPreMem (); return EFI_SUCCESS; @@ -600,27 +547,9 @@ WhiskeylakeURvpBoardDebugInit ( ) { /// - /// LPC I/O Configuration + /// Do Early PCH init /// - PchLpcIoDecodeRangesSet ( - (V_LPC_CFG_IOD_LPT_378 << N_LPC_CFG_IOD_LPT) | - (V_LPC_CFG_IOD_COMB_3E8 << N_LPC_CFG_IOD_COMB) | - (V_LPC_CFG_IOD_COMA_3F8 << N_LPC_CFG_IOD_COMA) - ); - - PchLpcIoEnableDecodingSet ( - B_LPC_CFG_IOE_ME2 | - B_LPC_CFG_IOE_SE | - B_LPC_CFG_IOE_ME1 | - B_LPC_CFG_IOE_KE | - B_LPC_CFG_IOE_HGE | - B_LPC_CFG_IOE_LGE | - B_LPC_CFG_IOE_FDE | - B_LPC_CFG_IOE_PPE | - B_LPC_CFG_IOE_CBE | - B_LPC_CFG_IOE_CAE - ); - + EarlySiliconInit (); return EFI_SUCCESS; } diff --git a/Platform/Intel/WhiskeylakeOpenBoardPkg/WhiskeylakeURvp/Library/BoardInitLib/WhiskeylakeURvpInit.h b/Platform/Intel/WhiskeylakeOpenBoardPkg/WhiskeylakeURvp/Library/BoardInitLib/WhiskeylakeURvpInit.h index 325bcb41df..d3a709b2a9 100644 --- a/Platform/Intel/WhiskeylakeOpenBoardPkg/WhiskeylakeURvp/Library/BoardInitLib/WhiskeylakeURvpInit.h +++ b/Platform/Intel/WhiskeylakeOpenBoardPkg/WhiskeylakeURvp/Library/BoardInitLib/WhiskeylakeURvpInit.h @@ -15,6 +15,7 @@ #include <Library/MemoryAllocationLib.h> #include <Library/DebugLib.h> #include <Library/GpioLib.h> +#include <Library/SiliconInitLib.h> #include <Ppi/SiPolicy.h> #include <PchHsioPtssTables.h> diff --git a/Platform/Intel/WhiskeylakeOpenBoardPkg/WhiskeylakeURvp/OpenBoardPkg.dsc b/Platform/Intel/WhiskeylakeOpenBoardPkg/WhiskeylakeURvp/OpenBoardPkg.dsc index cdaf47b6f7..3cd0478021 100644 --- a/Platform/Intel/WhiskeylakeOpenBoardPkg/WhiskeylakeURvp/OpenBoardPkg.dsc +++ b/Platform/Intel/WhiskeylakeOpenBoardPkg/WhiskeylakeURvp/OpenBoardPkg.dsc @@ -154,6 +154,11 @@ TimerLib|$(PLATFORM_BOARD_PACKAGE)/Library/AcpiTimerLib/BaseAcpiTimerLib.inf [LibraryClasses.common.PEIM] + ####################################### + # Silicon Initialization Package + ####################################### + SiliconInitLib|$(PLATFORM_SI_PACKAGE)/Library/PeiSiliconInitLib/PeiSiliconInitLib.inf + ####################################### # Platform Package ####################################### -- 2.23.0.windows.1 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#50631): https://edk2.groups.io/g/devel/message/50631 Mute This Topic: https://groups.io/mt/57059552/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-