Reviewed-by: Sai Chaganty <rangasai.v.chaga...@intel.com> -----Original Message----- From: Esakkithevar, Kathappan <kathappan.esakkithe...@intel.com> Sent: Tuesday, February 18, 2020 6:54 AM To: devel@edk2.groups.io Cc: Chaganty, Rangasai V <rangasai.v.chaga...@intel.com>; Chiu, Chasel <chasel.c...@intel.com>; Desimone, Nathaniel L <nathaniel.l.desim...@intel.com>; Kethi Reddy, Deepika <deepika.kethi.re...@intel.com>; Agyeman, Prince <prince.agye...@intel.com> Subject: [edk2-platforms] [PATCH V1 1/2] CoffeeLakeSiliconPkg: Add Cometlake U Silicon support
REF:https://bugzilla.tianocore.org/show_bug.cgi?id=2280 Adds CPU model, SA Device ID, PCH SKU ID for Cometlake U V1. Key files ========= * CpuReg.h - Add CPU Family Model support. * SaRegsHostBridge.h - Add SA Device ID support. * MrcInterface.h - Add CPU Family Model support in MRC. * PchRegsLpcCnl.h - Add PCH SKU ID support. Signed-off-by: Kathappan Esakkithevar <kathappan.esakkithe...@intel.com> Cc: Sai Chaganty <rangasai.v.chaga...@intel.com> Cc: Chasel Chiu <chasel.c...@intel.com> Cc: Nate DeSimone <nathaniel.l.desim...@intel.com> Cc: Deepika Kethi Reddy <deepika.kethi.re...@intel.com> Cc: Prince Agyeman <prince.agye...@intel.com> --- .../Intel/CoffeelakeSiliconPkg/Cpu/Include/CpuRegs.h | 5 ++++- .../PeiDxeSmmCpuPlatformLib/CpuPlatformLibrary.c | 18 +++++++++++++++++- .../Pch/Include/Register/PchRegsLpcCnl.h | 3 ++- .../Pch/Library/PeiDxeSmmPchInfoLib/PchInfoLibCnl.c | 5 ++++- .../SystemAgent/Include/Register/SaRegsHostBridge.h | 5 ++++- .../MemoryInit/Include/Coffeelake/MrcInterface.h | 5 +++-- 6 files changed, 34 insertions(+), 7 deletions(-) diff --git a/Silicon/Intel/CoffeelakeSiliconPkg/Cpu/Include/CpuRegs.h b/Silicon/Intel/CoffeelakeSiliconPkg/Cpu/Include/CpuRegs.h index 68f2c019e2..4b9ce8d4d3 100644 --- a/Silicon/Intel/CoffeelakeSiliconPkg/Cpu/Include/CpuRegs.h +++ b/Silicon/Intel/CoffeelakeSiliconPkg/Cpu/Include/CpuRegs.h @@ -9,7 +9,7 @@ - Definitions beginning with "S_" are register sizes - Definitions beginning with "N_" are the bit position - Copyright (c) 2019 Intel Corporation. All rights reserved. <BR> + Copyright (c) 2019 - 2020 Intel Corporation. All rights reserved. + <BR> SPDX-License-Identifier: BSD-2-Clause-Patent **/ @@ -181,6 +181,7 @@ #define CPUID_FULL_FAMILY_MODEL_COFFEELAKE_ULT_ULX 0x000806E0 #define CPUID_FULL_FAMILY_MODEL_COFFEELAKE_DT_HALO 0x000906E0 #define CPUID_FULL_FAMILY_MODEL_CANNONLAKE_DT_HALO 0x00060670 +#define CPUID_FULL_FAMILY_MODEL_COMETLAKE_ULT 0x000A0660 #ifndef STALL_ONE_MICRO_SECOND #define STALL_ONE_MICRO_SECOND 1 @@ -206,6 +207,7 @@ typedef enum { EnumCpuCflUltUlx = CPUID_FULL_FAMILY_MODEL_COFFEELAKE_ULT_ULX, EnumCpuCflDtHalo = CPUID_FULL_FAMILY_MODEL_COFFEELAKE_DT_HALO, EnumCpuCnlDtHalo = CPUID_FULL_FAMILY_MODEL_CANNONLAKE_DT_HALO, + EnumCpuCmlUlt = CPUID_FULL_FAMILY_MODEL_COMETLAKE_ULT, EnumCpuMax = CPUID_FULL_FAMILY_MODEL } CPU_FAMILY; @@ -256,6 +258,7 @@ typedef enum { /// typedef enum { EnumCflCpu = 0, + EnumCmlCpu, EnumCpuUnknownGeneration = 255 } CPU_GENERATION; #endif diff --git a/Silicon/Intel/CoffeelakeSiliconPkg/Cpu/Library/PeiDxeSmmCpuPlatformLib/CpuPlatformLibrary.c b/Silicon/Intel/CoffeelakeSiliconPkg/Cpu/Library/PeiDxeSmmCpuPlatformLib/CpuPlatformLibrary.c index 18f2028fa9..702a10c9d8 100644 --- a/Silicon/Intel/CoffeelakeSiliconPkg/Cpu/Library/PeiDxeSmmCpuPlatformLib/CpuPlatformLibrary.c +++ b/Silicon/Intel/CoffeelakeSiliconPkg/Cpu/Library/PeiDxeSmmCpuPlatfor +++ mLib/CpuPlatformLibrary.c @@ -1,7 +1,7 @@ /** @file CPU Platform Lib implementation. - Copyright (c) 2019 Intel Corporation. All rights reserved. <BR> + Copyright (c) 2019 - 2020 Intel Corporation. All rights reserved. + <BR> SPDX-License-Identifier: BSD-2-Clause-Patent **/ @@ -80,6 +80,15 @@ GetCpuSku ( CpuDid = PciSegmentRead16 (PCI_SEGMENT_LIB_ADDRESS (SA_SEG_NUM, SA_MC_BUS, SA_MC_DEV, SA_MC_FUN, R_SA_MC_DEVICE_ID)); switch (CpuFamilyModel) { + case CPUID_FULL_FAMILY_MODEL_COMETLAKE_ULT: + switch (CpuDid) { + case V_SA_DEVICE_ID_CML_ULT_1: // CML ULT + case V_SA_DEVICE_ID_CML_ULT_2: // CML ULT + case V_SA_DEVICE_ID_CML_ULT_3: // CML ULT + CpuType = EnumCpuUlt; + break; + } + break; case CPUID_FULL_FAMILY_MODEL_COFFEELAKE_ULT_ULX: switch (CpuDid) { case V_SA_DEVICE_ID_KBL_MB_ULT_1: // KBL ULT OPI @@ -87,6 +96,9 @@ GetCpuSku ( case V_SA_DEVICE_ID_CFL_ULT_2: // CFL ULT case V_SA_DEVICE_ID_CFL_ULT_3: // CFL ULT case V_SA_DEVICE_ID_CFL_ULT_4: // CFL ULT + case V_SA_DEVICE_ID_CML_ULT_1: // CML ULT + case V_SA_DEVICE_ID_CML_ULT_2: // CML ULT + case V_SA_DEVICE_ID_CML_ULT_3: // CML ULT CpuType = EnumCpuUlt; break; @@ -378,6 +390,10 @@ GetCpuGeneration ( CpuGeneration = EnumCflCpu; break; + case EnumCpuCmlUlt: + CpuGeneration = EnumCmlCpu; + break; + default: CpuGeneration = EnumCpuUnknownGeneration; ASSERT (FALSE); diff --git a/Silicon/Intel/CoffeelakeSiliconPkg/Pch/Include/Register/PchRegsLpcCnl.h b/Silicon/Intel/CoffeelakeSiliconPkg/Pch/Include/Register/PchRegsLpcCnl.h index 74789a87ce..e8a18cac3e 100644 --- a/Silicon/Intel/CoffeelakeSiliconPkg/Pch/Include/Register/PchRegsLpcCnl.h +++ b/Silicon/Intel/CoffeelakeSiliconPkg/Pch/Include/Register/PchRegsLpc +++ Cnl.h @@ -21,7 +21,7 @@ - Registers / bits of new devices introduced in a PCH generation will be just named as "_PCH_" without [generation_name] inserted. - Copyright (c) 2019 Intel Corporation. All rights reserved. <BR> + Copyright (c) 2019 - 2020 Intel Corporation. All rights reserved. + <BR> SPDX-License-Identifier: BSD-2-Clause-Patent **/ @@ -31,6 +31,7 @@ #define V_LPC_CFG_DID_CNL_H 0xA300 #define V_LPC_CFG_DID_CNL_LP 0x9D80 +#define V_LPC_CFG_DID_CML_LP 0x0280 // // PCH-LP Device IDs diff --git a/Silicon/Intel/CoffeelakeSiliconPkg/Pch/Library/PeiDxeSmmPchInfoLib/PchInfoLibCnl.c b/Silicon/Intel/CoffeelakeSiliconPkg/Pch/Library/PeiDxeSmmPchInfoLib/PchInfoLibCnl.c index 431b1470c2..da6479f212 100644 --- a/Silicon/Intel/CoffeelakeSiliconPkg/Pch/Library/PeiDxeSmmPchInfoLib/PchInfoLibCnl.c +++ b/Silicon/Intel/CoffeelakeSiliconPkg/Pch/Library/PeiDxeSmmPchInfoLib +++ /PchInfoLibCnl.c @@ -4,7 +4,7 @@ All function in this library is available for PEI, DXE, and SMM, But do not support UEFI RUNTIME environment call. - Copyright (c) 2019 Intel Corporation. All rights reserved. <BR> + Copyright (c) 2019 - 2020 Intel Corporation. All rights reserved. + <BR> SPDX-License-Identifier: BSD-2-Clause-Patent **/ @@ -37,6 +37,9 @@ PchSeriesFromLpcDid ( case V_LPC_CFG_DID_CNL_LP: return PCH_LP; + case V_LPC_CFG_DID_CML_LP: + return PCH_LP; + default: return PCH_UNKNOWN_SERIES; } diff --git a/Silicon/Intel/CoffeelakeSiliconPkg/SystemAgent/Include/Register/SaRegsHostBridge.h b/Silicon/Intel/CoffeelakeSiliconPkg/SystemAgent/Include/Register/SaRegsHostBridge.h index 2cc0e5be68..67bbf13d77 100644 --- a/Silicon/Intel/CoffeelakeSiliconPkg/SystemAgent/Include/Register/SaRegsHostBridge.h +++ b/Silicon/Intel/CoffeelakeSiliconPkg/SystemAgent/Include/Register/Sa +++ RegsHostBridge.h @@ -15,7 +15,7 @@ - Registers / bits of new devices introduced in a SA generation will be just named as "_SA_" without [generation_name] inserted. - Copyright (c) 2019 Intel Corporation. All rights reserved. <BR> + Copyright (c) 2019 - 2020 Intel Corporation. All rights reserved. + <BR> SPDX-License-Identifier: BSD-2-Clause-Patent **/ @@ -112,6 +112,9 @@ #define V_SA_DEVICE_ID_CFL_ULT_4 0x3E35 ///< CoffeeLake Mobile (CFL-U 2+(1 or 2)) SA DID #define V_SA_DEVICE_ID_CFL_ULT_6 0x3ECC ///< CoffeeLake Mobile (CFL-U 2+3e) SA DID +#define V_SA_DEVICE_ID_CML_ULT_1 0x9B51 ///< CometLake (CML-U 6+2) SA DID +#define V_SA_DEVICE_ID_CML_ULT_2 0x9B61 ///< CometLake (CML-U 4+2) SA DID +#define V_SA_DEVICE_ID_CML_ULT_3 0x9B71 ///< CometLake (CML-U 2+2) SA DID // // CoffeeLake CPU Desktop SA Device IDs B0:D0:F0 // diff --git a/Silicon/Intel/CoffeelakeSiliconPkg/SystemAgent/MemoryInit/Include/Coffeelake/MrcInterface.h b/Silicon/Intel/CoffeelakeSiliconPkg/SystemAgent/MemoryInit/Include/Coffeelake/MrcInterface.h index 635906cc2b..b9b390cc71 100644 --- a/Silicon/Intel/CoffeelakeSiliconPkg/SystemAgent/MemoryInit/Include/Coffeelake/MrcInterface.h +++ b/Silicon/Intel/CoffeelakeSiliconPkg/SystemAgent/MemoryInit/Include/ +++ Coffeelake/MrcInterface.h @@ -1,7 +1,7 @@ /** @file This file includes all the data structures that the MRC considers "global data". - Copyright (c) 2019 Intel Corporation. All rights reserved. <BR> + Copyright (c) 2019 - 2020 Intel Corporation. All rights reserved. + <BR> SPDX-License-Identifier: BSD-2-Clause-Patent **/ @@ -477,7 +477,8 @@ typedef enum { /// typedef enum { cmCFL_ULX_ULT = CPUID_FULL_FAMILY_MODEL_COFFEELAKE_ULT_ULX, ///< Coffeelake ULT/ULX - cmCFL_DT_HALO = CPUID_FULL_FAMILY_MODEL_COFFEELAKE_DT_HALO ///< Coffeelake DT/Halo + cmCFL_DT_HALO = CPUID_FULL_FAMILY_MODEL_COFFEELAKE_DT_HALO, ///< Coffeelake DT/Halo + cmCML_ULX_ULT = CPUID_FULL_FAMILY_MODEL_COMETLAKE_ULT ///< Cometlake ULT/ULX } MrcCpuModel; /// -- 2.16.2.windows.1 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#54609): https://edk2.groups.io/g/devel/message/54609 Mute This Topic: https://groups.io/mt/71372343/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-