public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: "Nate DeSimone" <nathaniel.l.desimone@intel.com>
To: "Luo, Heng" <heng.luo@intel.com>,
	"devel@edk2.groups.io" <devel@edk2.groups.io>
Cc: "Chaganty, Rangasai V" <rangasai.v.chaganty@intel.com>
Subject: Re: [PATCH 04/40] TigerlakeSiliconPkg/Cpu: Add Include headers
Date: Thu, 4 Feb 2021 03:53:07 +0000	[thread overview]
Message-ID: <BN6PR1101MB214774158FDC9A786E07AF9BCDB39@BN6PR1101MB2147.namprd11.prod.outlook.com> (raw)
In-Reply-To: <20210201013657.1833-4-heng.luo@intel.com>

Reviewed-by: Nate DeSimone <nathaniel.l.desimone@intel.com>

> -----Original Message-----
> From: Luo, Heng <heng.luo@intel.com>
> Sent: Sunday, January 31, 2021 5:36 PM
> To: devel@edk2.groups.io
> Cc: Chaganty, Rangasai V <rangasai.v.chaganty@intel.com>; Desimone,
> Nathaniel L <nathaniel.l.desimone@intel.com>
> Subject: [PATCH 04/40] TigerlakeSiliconPkg/Cpu: Add Include headers
> 
> REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3171
> 
> Adds header files common to CPU modules.
> 
> Cc: Sai Chaganty <rangasai.v.chaganty@intel.com>
> Cc: Nate DeSimone <nathaniel.l.desimone@intel.com>
> Signed-off-by: Heng Luo <heng.luo@intel.com>
> ---
>  Silicon/Intel/TigerlakeSiliconPkg/Cpu/Include/ConfigBlock/CpuConfig.h
> |  83
> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> +++++++++++++++++++++++++
> 
> Silicon/Intel/TigerlakeSiliconPkg/Cpu/Include/ConfigBlock/CpuConfigLibPre
> MemConfig.h | 148
> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> ++++++++++++++++++++++++++++++++
> 
> Silicon/Intel/TigerlakeSiliconPkg/Cpu/Include/ConfigBlock/CpuPidTestConfig.
> h         |  52
> ++++++++++++++++++++++++++++++++++++++++++++++++++++
> 
> Silicon/Intel/TigerlakeSiliconPkg/Cpu/Include/ConfigBlock/CpuPowerMgmtB
> asicConfig.h  | 226
> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> ++++++++++++++++++++++++++++++++++++++++++++++++++++
> 
> Silicon/Intel/TigerlakeSiliconPkg/Cpu/Include/ConfigBlock/CpuPowerMgmtC
> ustomConfig.h |  76
> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> ++++++++++++++++++
> 
> Silicon/Intel/TigerlakeSiliconPkg/Cpu/Include/ConfigBlock/CpuPowerMgmtP
> sysConfig.h   |  36 ++++++++++++++++++++++++++++++++++++
> 
> Silicon/Intel/TigerlakeSiliconPkg/Cpu/Include/ConfigBlock/CpuPowerMgmtT
> estConfig.h   | 150
> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> ++++++++++++++++++++++++++++++++++
> 
> Silicon/Intel/TigerlakeSiliconPkg/Cpu/Include/ConfigBlock/CpuSecurityPreM
> emConfig.h  |  63
> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> +++++
>  Silicon/Intel/TigerlakeSiliconPkg/Cpu/Include/ConfigBlock/CpuTestConfig.h
> |  51 +++++++++++++++++++++++++++++++++++++++++++++++++++
>  Silicon/Intel/TigerlakeSiliconPkg/Cpu/Include/CpuAccess.h                            |
> 12 ++++++++++++
>  Silicon/Intel/TigerlakeSiliconPkg/Cpu/Include/CpuDataStruct.h                        |
> 21 +++++++++++++++++++++
>  Silicon/Intel/TigerlakeSiliconPkg/Cpu/Include/CpuPolicyCommon.h
> |  23 +++++++++++++++++++++++
>  Silicon/Intel/TigerlakeSiliconPkg/Cpu/Include/Register/CommonMsr.h
> |  18 ++++++++++++++++++
>  13 files changed, 959 insertions(+)
> 
> diff --git
> a/Silicon/Intel/TigerlakeSiliconPkg/Cpu/Include/ConfigBlock/CpuConfig.h
> b/Silicon/Intel/TigerlakeSiliconPkg/Cpu/Include/ConfigBlock/CpuConfig.h
> new file mode 100644
> index 0000000000..d837500a38
> --- /dev/null
> +++
> b/Silicon/Intel/TigerlakeSiliconPkg/Cpu/Include/ConfigBlock/CpuConfig.h
> @@ -0,0 +1,83 @@
> +/** @file
> 
> +  CPU Config Block.
> 
> +
> 
> +  Copyright (c) 2021, Intel Corporation. All rights reserved.<BR>
> 
> +  SPDX-License-Identifier: BSD-2-Clause-Patent
> 
> +**/
> 
> +#ifndef _CPU_CONFIG_H_
> 
> +#define _CPU_CONFIG_H_
> 
> +
> 
> +#define CPU_CONFIG_REVISION 3
> 
> +
> 
> +extern EFI_GUID gCpuConfigGuid;
> 
> +
> 
> +#pragma pack (push,1)
> 
> +
> 
> +/**
> 
> +  CPU Configuration Structure.
> 
> +
> 
> +  <b>Revision 1</b>:
> 
> +  - Initial version.
> 
> +  <b>Revision 2</b>:
> 
> +  - Add SmbiosType4MaxSpeedOverride.
> 
> +  <b>Revision 3</b>:
> 
> +  - Add AvxDisable & Avx3Disable.
> 
> +**/
> 
> +typedef struct {
> 
> +  CONFIG_BLOCK_HEADER   Header;                   ///< Config Block Header
> 
> +  UINT32                MicrocodePatchRegionSize;
> 
> +  EFI_PHYSICAL_ADDRESS  MicrocodePatchAddress;    ///< Pointer to
> microcode patch that is suitable for this processor.
> 
> +  /**
> 
> +    Enable or Disable Advanced Encryption Standard (AES) feature.
> 
> +    For some countries, this should be disabled for legal reasons.
> 
> +    -    0: Disable
> 
> +    - <b>1: Enable</b>
> 
> +  **/
> 
> +  UINT32 AesEnable           : 1;
> 
> +  /**
> 
> +    Enable or Disable Trusted Execution Technology (TXT) feature.
> 
> +    -    0: Disable
> 
> +    - <b>1: Enable</b>
> 
> +  **/
> 
> +  UINT32 TxtEnable           : 1;
> 
> +  UINT32 SkipMpInit          : 1;                 ///< For Fsp only, Silicon Initialization
> will skip MP Initialization (including BSP) if enabled. For non-FSP, this should
> always be 0.
> 
> +  /**
> 
> +    Enable or Disable or Auto for PPIN Support to view Protected Processor
> Inventory Number.
> 
> +    - <b>0: Disable</b>
> 
> +    -    1: Enable
> 
> +    -    2: Auto : Feature is based on End Of Manufacturing (EOM) flag. If EOM
> is set, it is disabled.
> 
> +  **/
> 
> +  UINT32 PpinSupport         : 2;
> 
> +  /**
> 
> +    Enable or Disable #AC machine check on split lock.
> 
> +    - <b>0: Disable</b>
> 
> +    -    1: Enable
> 
> +  **/
> 
> +  UINT32 AcSplitLock         : 1;
> 
> +  /**
> 
> +  Enable or Disable Avx.
> 
> +  -      1: Disable
> 
> +  -  <b> 0: Enable</b>
> 
> +  **/
> 
> +  UINT32 AvxDisable          : 1;
> 
> +  /**
> 
> +  Enable or Disable Avx3.
> 
> +  -      1: Disable
> 
> +  -  <b> 0: Enable</b>
> 
> +  **/
> 
> +  UINT32 Avx3Disable         : 1;
> 
> +  UINT32 RsvdBits            : 24;                ///< Reserved for future use
> 
> +  /**
> 
> +    Provide the option for platform to override the MaxSpeed field of Smbios
> Type 4.
> 
> +    Value 4000 means 4000MHz.
> 
> +    If this value is not zero, it dominates the field.
> 
> +    If this value is zero, CPU RC will update the field according to the max
> radio.
> 
> +    <b>default is 0.</b>
> 
> +  **/
> 
> +  UINT16 SmbiosType4MaxSpeedOverride;
> 
> +  UINT8  Reserved0[2];                            ///< Reserved for future use
> 
> +} CPU_CONFIG;
> 
> +
> 
> +#pragma pack (pop)
> 
> +
> 
> +#endif // _CPU_CONFIG_H_
> 
> diff --git
> a/Silicon/Intel/TigerlakeSiliconPkg/Cpu/Include/ConfigBlock/CpuConfigLibPr
> eMemConfig.h
> b/Silicon/Intel/TigerlakeSiliconPkg/Cpu/Include/ConfigBlock/CpuConfigLibPr
> eMemConfig.h
> new file mode 100644
> index 0000000000..bf3f436ddd
> --- /dev/null
> +++
> b/Silicon/Intel/TigerlakeSiliconPkg/Cpu/Include/ConfigBlock/CpuConfigLibPr
> eMemConfig.h
> @@ -0,0 +1,148 @@
> +/** @file
> 
> +  CPU Security PreMemory Config Block.
> 
> +
> 
> +  Copyright (c) 2021, Intel Corporation. All rights reserved.<BR>
> 
> +  SPDX-License-Identifier: BSD-2-Clause-Patent
> 
> +**/
> 
> +#ifndef _CPU_CONFIG_LIB_PREMEM_CONFIG_H_
> 
> +#define _CPU_CONFIG_LIB_PREMEM_CONFIG_H_
> 
> +
> 
> +#define CPU_CONFIG_LIB_PREMEM_CONFIG_REVISION 6
> 
> +
> 
> +extern EFI_GUID gCpuConfigLibPreMemConfigGuid;
> 
> +
> 
> +#define BOOT_FREQUENCY_MAX_BATTERY_PERF   0
> 
> +#define BOOT_FREQUENCY_MAX_NON_TURBO_PERF 1
> 
> +#define BOOT_FREQUENCY_TURBO_PERF         2
> 
> +
> 
> +#pragma pack (push,1)
> 
> +
> 
> +/**
> 
> +  CPU Config Library PreMemory Configuration Structure.
> 
> +
> 
> +  <b>Revision 1</b>:
> 
> +  - Initial version.
> 
> +  <b>Revision 2</b>:
> 
> +  - Expand the supported number of processor cores (ActiveCoreCount1).
> 
> +  <b>Revision  3</b>:
> 
> +  - Added PECI Sx and C10 Reset.
> 
> +  <b>Revision  4</b>:
> 
> +  - Added ActiveSmallCoreCount.
> 
> +  <b>Revision  5</b>:
> 
> +  - Added CrashLogGprs
> 
> +  <b>Revision  6</b>:
> 
> +  - Added ConfigTdpLevel
> 
> +**/
> 
> +typedef struct {
> 
> +  CONFIG_BLOCK_HEADER Header;            ///< Config Block Header
> 
> +  UINT32 HyperThreading             : 1; ///< Enable or Disable Hyper Threading;
> 0: Disable; <b>1: Enable</b>.
> 
> +  /**
> 
> +  Sets the boot frequency starting from reset vector.
> 
> +   - 0: Maximum battery performance.
> 
> +   - 1: Maximum non-turbo performance
> 
> +   -<b>2: Turbo performance</b>.
> 
> +  @note If Turbo is selected BIOS will start in max non-turbo mode and
> switch to Turbo mode.
> 
> +  **/
> 
> +  UINT32 BootFrequency              : 2;
> 
> +  /**
> 
> +    Number of processor cores to enable.
> 
> +    - <b> 0: All cores</b>
> 
> +    -     1: 1 core
> 
> +    -     2: 2 cores
> 
> +    -     3: 3 cores
> 
> +  **/
> 
> +  UINT32 ActiveCoreCount            : 3; ///< @deprecated due to core active
> number limitaion.
> 
> +  UINT32 JtagC10PowerGateDisable    : 1; ///< False: JTAG is power gated in
> C10 state. True: keeps the JTAG power up during C10 and deeper power
> states for debug purpose. <b>0: False<\b>; 1: True.
> 
> +  UINT32 BistOnReset                : 1; ///< <b>(Test)</b> Enable or Disable BIST
> on Reset; <b>0: Disable</b>; 1: Enable.
> 
> +  /**
> 
> +    Enable or Disable Virtual Machine Extensions (VMX) feature.
> 
> +    -    0: Disable
> 
> +    - <b>1: Enable</b>
> 
> +  **/
> 
> +  UINT32 VmxEnable                  : 1;
> 
> +  /**
> 
> +  Processor Early Power On Configuration FCLK setting.
> 
> +   - <b>0: 800 MHz (ULT/ULX)</b>.
> 
> +   - <b>1: 1 GHz (DT/Halo)</b>. Not supported on ULT/ULX.
> 
> +   - 2: 400 MHz.
> 
> +   - 3: Reserved.
> 
> +  **/
> 
> +  UINT32 FClkFrequency              : 2;
> 
> +  /**
> 
> +  Enable or Disable CrashLog feature
> 
> +    -    0: Disable
> 
> +    - <b>1: Enable</b>
> 
> +  **/
> 
> +  UINT32 CrashLogEnable              : 1;
> 
> +
> 
> +  /**
> 
> +  Enable or Disable Total Memory Encryption (TME) feature.
> 
> +    - <b>0: Disable</b>
> 
> +    -    1: Enable
> 
> +  **/
> 
> +  UINT32 TmeEnable                  : 1;
> 
> +
> 
> +  UINT32 DebugInterfaceEnable       : 2; ///< Enable or Disable processor
> debug features; 0: Disable; 1: Enable; <b>2: No Change</b>.
> 
> +  UINT32 DebugInterfaceLockEnable   : 1; ///< Lock or Unlock debug
> interface features; 0: Disable; <b>1: Enable</b>.
> 
> +
> 
> +  /**
> 
> +    Number of big cores in processor to enable. And support up to 16 cores.
> 
> +    - <b> 0: All cores</b>
> 
> +    -     1: 1 core
> 
> +    -     2: 2 cores
> 
> +    -     3: 3 cores
> 
> +  **/
> 
> +  UINT32 ActiveCoreCount1           : 4;
> 
> +
> 
> +  /**
> 
> +  Enables a mailbox command to resolve rare PECI related Sx issues.
> 
> +  @note This should only be used on systems that observe PECI Sx issues.
> 
> +  - <b>0: Disable</b>
> 
> +  -    1: Enable
> 
> +  **/
> 
> +  UINT32 PeciSxReset                : 1;
> 
> +
> 
> +  /**
> 
> +  Enables the mailbox command to resolve PECI reset issues during Pkg-C10
> exit.
> 
> +  If Enabled, BIOS will send the CPU message to disable peci reset on C10
> exit.
> 
> +  The default value is <b>1: Enable</b> for CML, and <b>0: Disable</b> for
> all other CPU's
> 
> +  - 0: Disable
> 
> +  - 1: Enable
> 
> +  **/
> 
> +  UINT32 PeciC10Reset               : 1;
> 
> +
> 
> +  /**
> 
> +    Number of small cores in processor to enable. And support the enabling
> of up to 63 cores.
> 
> +    - <b> 0: All cores</b>
> 
> +    -     1: 1 core
> 
> +    -     2: 2 cores
> 
> +    -     3: 3 cores
> 
> +  **/
> 
> +  UINT32 ActiveSmallCoreCount       : 6;
> 
> +
> 
> +  /**
> 
> +  Enable or Disable CrashLog GPRs dump
> 
> +    - <b>0: Disable</b>
> 
> +    -    1: Gprs Enabled, Smm Gprs Enabled
> 
> +         2: Gprs Enabled, Smm Gprs Disabled
> 
> +  **/
> 
> +  UINT32 CrashLogGprs               : 2;
> 
> +
> 
> +  UINT32 RsvdBits                   : 2;
> 
> +
> 
> +  /**
> 
> +    CpuRatio - Max non-turbo ratio (Flexible Ratio Boot) is set to CpuRatio.
> <b>0: Disabled</b> If disabled, doesn't override max-non turbo ratio.
> 
> +  **/
> 
> +  UINT8  CpuRatio;
> 
> +  /**
> 
> +    Configuration for boot TDP selection; <b>0: TDP Nominal</b>; 1: TDP
> Down; 2: TDP Up.
> 
> +  **/
> 
> +  UINT8  ConfigTdpLevel;
> 
> +  UINT8  Reserved[2];                    ///< Reserved for alignment
> 
> +  UINT32 ElixirSpringsPatchAddr;         ///< Address of Elixir Springs Patch(es)
> 
> +  UINT32 ElixirSpringsPatchSize;         ///< Elixir Springs Patch(es) Size.
> 
> +} CPU_CONFIG_LIB_PREMEM_CONFIG;
> 
> +
> 
> +#pragma pack (pop)
> 
> +
> 
> +#endif // _CPU_CONFIG_LIB_PREMEM_CONFIG_H_
> 
> diff --git
> a/Silicon/Intel/TigerlakeSiliconPkg/Cpu/Include/ConfigBlock/CpuPidTestConf
> ig.h
> b/Silicon/Intel/TigerlakeSiliconPkg/Cpu/Include/ConfigBlock/CpuPidTestConf
> ig.h
> new file mode 100644
> index 0000000000..4fcb92cb27
> --- /dev/null
> +++
> b/Silicon/Intel/TigerlakeSiliconPkg/Cpu/Include/ConfigBlock/CpuPidTestConf
> ig.h
> @@ -0,0 +1,52 @@
> +/** @file
> 
> +  CPU PID Config Block.
> 
> +
> 
> +  Copyright (c) 2021, Intel Corporation. All rights reserved.<BR>
> 
> +  SPDX-License-Identifier: BSD-2-Clause-Patent
> 
> +**/
> 
> +#ifndef _CPU_PID_TEST_CONFIG_H_
> 
> +#define _CPU_PID_TEST_CONFIG_H_
> 
> +
> 
> +#define CPU_PID_TEST_CONFIG_REVISION 1
> 
> +
> 
> +extern EFI_GUID gCpuPidTestConfigGuid;
> 
> +
> 
> +#pragma pack (push,1)
> 
> +
> 
> +/**
> 
> +  PID Tuning Configuration Structure.
> 
> +  Domain is mapped to Kp = 0, Ki = 1, Kd = 2.
> 
> +
> 
> +  <b>Revision 1</b>:
> 
> +  - Initial version.
> 
> +**/
> 
> +typedef struct {
> 
> +  CONFIG_BLOCK_HEADER   Header;                   ///< Config Block Header
> 
> +  UINT16  Ratl[3];                                ///< RATL setting, in 1/256 units. Range is 0
> - 65280
> 
> +  UINT16  VrTdcVr0[3];                            ///< VR Thermal Design Current for
> VR0. In 1/256 units. Range is 0 - 65280
> 
> +  UINT16  VrTdcVr1[3];                            ///< VR Thermal Design Current for
> VR1. In 1/256 units. Range is 0 - 65280
> 
> +  UINT16  VrTdcVr2[3];                            ///< VR Thermal Design Current for
> VR2. In 1/256 units. Range is 0 - 65280
> 
> +  UINT16  VrTdcVr3[3];                            ///< VR Thermal Design Current for
> VR3. In 1/256 units. Range is 0 - 65280
> 
> +  UINT16  PbmPsysPl1Msr[3];                       ///< Power Budget Management
> Psys PL1 MSR. In 1/256 units. Range is 0 - 65280
> 
> +  UINT16  PbmPsysPl1MmioPcs[3];                   ///< Power Budget
> Management Psys PL1 MMIO/PCS. In 1/256 units. Range is 0 - 65280
> 
> +  UINT16  PbmPsysPl2Msr[3];                       ///< Power Budget Management
> Psys PL2 MSR. In 1/256 units. Range is 0 - 65280
> 
> +  UINT16  PbmPsysPl2MmioPcs[3];                   ///< Power Budget
> Management Psys PL2 MMIO/PCS. In 1/256 units. Range is 0 - 65280
> 
> +  UINT16  PbmPkgPl1Msr[3];                        ///< Power Budget Management
> Package PL1 MSR. In 1/256 units. Range is 0 - 65280
> 
> +  UINT16  PbmPkgPl1MmioPcs[3];                    ///< Power Budget
> Management Package PL1 MMIO/PCS. In 1/256 units. Range is 0 - 65280
> 
> +  UINT16  PbmPkgPl2Msr[3];                        ///< Power Budget Management
> Package PL2 MSR. In 1/256 units. Range is 0 - 65280
> 
> +  UINT16  PbmPkgPl2MmioPcs[3];                    ///< Power Budget
> Management Package PL2 MMIO/PCS. In 1/256 units. Range is 0 - 65280
> 
> +  UINT16  DdrPl1Msr[3];                           ///< DDR PL1 MSR. In 1/256 units.
> Range is 0 - 65280
> 
> +  UINT16  DdrPl1MmioPcs[3];                       ///< DDR PL1 MMIO/PCS. In 1/256
> units. Range is 0 - 65280
> 
> +  UINT16  DdrPl2Msr[3];                           ///< DDR PL2 MSR. In 1/256 units.
> Range is 0 - 65280
> 
> +  UINT16  DdrPl2MmioPcs[3];                       ///< DDR PL2 MMIO/PCS. In 1/256
> units. Range is 0 - 65280
> 
> +  /**
> 
> +  Enable or Disable PID Tuning programming flow.
> 
> +  If disabled, all other policies in this config block are ignored.
> 
> +  **/
> 
> +  UINT8   PidTuning;
> 
> +  UINT8   Rsvd;                                   ///< Reserved for DWORD alignment.
> 
> +} CPU_PID_TEST_CONFIG;
> 
> +
> 
> +#pragma pack (pop)
> 
> +
> 
> +#endif // _CPU_PID_TEST_CONFIG_H_
> 
> diff --git
> a/Silicon/Intel/TigerlakeSiliconPkg/Cpu/Include/ConfigBlock/CpuPowerMgm
> tBasicConfig.h
> b/Silicon/Intel/TigerlakeSiliconPkg/Cpu/Include/ConfigBlock/CpuPowerMgm
> tBasicConfig.h
> new file mode 100644
> index 0000000000..0255d49bdf
> --- /dev/null
> +++
> b/Silicon/Intel/TigerlakeSiliconPkg/Cpu/Include/ConfigBlock/CpuPowerMgm
> tBasicConfig.h
> @@ -0,0 +1,226 @@
> +/** @file
> 
> +  CPU Power Management Basic Config Block.
> 
> +
> 
> +  Copyright (c) 2021, Intel Corporation. All rights reserved.<BR>
> 
> +  SPDX-License-Identifier: BSD-2-Clause-Patent
> 
> +**/
> 
> +#ifndef _CPU_POWER_MGMT_BASIC_CONFIG_H_
> 
> +#define _CPU_POWER_MGMT_BASIC_CONFIG_H_
> 
> +
> 
> +#define CPU_POWER_MGMT_BASIC_CONFIG_REVISION 5
> 
> +
> 
> +extern EFI_GUID gCpuPowerMgmtBasicConfigGuid;
> 
> +
> 
> +#pragma pack (push,1)
> 
> +
> 
> +/**
> 
> +  CPU Power Management Basic Configuration Structure.
> 
> +
> 
> +  <b>Revision 1</b>:
> 
> +  - Initial version.
> 
> +  <b>Revision 2</b>:
> 
> +  - Changed EnableItbm default to be disable
> 
> +  - Deprecated EnableItbmDriver due to Platform doesn't have ITBMT OS
> driver
> 
> +  <b>Revision 3</b>:
> 
> +  - Add ApplyConfigTdp for TDP initialization settings based on non-cTDP or
> cTDP
> 
> +  <b>Revision 4</b>:
> 
> +  - Add Hwp Lock support
> 
> +  <b>Revision 5</b>:
> 
> +  - Add VccInDemotionOverride and VccInDemotionMs
> 
> +**/
> 
> +typedef struct {
> 
> +  CONFIG_BLOCK_HEADER   Header;                   ///< Config Block Header
> 
> +  /**
> 
> +  Sets the boot frequency starting from reset vector.
> 
> +   - 0: Maximum battery performance.
> 
> +   - 1: Maximum non-turbo performance.
> 
> +   - <b>2: Turbo performance.</b>
> 
> +  @note If Turbo is selected BIOS will start in max non-turbo mode and
> switch to Turbo mode.
> 
> +  **/
> 
> +  UINT32 BootFrequency                  : 2;       //@deprecated
> 
> +  UINT32 SkipSetBootPState              : 1;      ///< Choose whether to skip
> SetBootPState function for all APs; <b>0: Do not skip</b>; 1: Skip.
> 
> +  /**
> 
> +  Enable or Disable Intel Speed Shift Technology.
> 
> +  Enabling allows for processor control of P-state transitions.
> 
> +  0: Disable; <b>1: Enable;</b> Bit 1 is ignored.
> 
> +  @note Currently this feature is recommended to be enabled only on
> win10
> 
> +  **/
> 
> +  UINT32 Hwp                            : 2;
> 
> +  /**
> 
> +  Hardware Duty Cycle Control configuration. 0: Disabled; <b>1: Enabled</b>
> 2-3:Reserved
> 
> +  HDC enables the processor to autonomously force components to enter
> into an idle state to lower effective frequency.
> 
> +  This allows for increased package level C6 residency.
> 
> +  @note Currently this feature is recommended to be enabled only on
> win10
> 
> +  **/
> 
> +  UINT32 HdcControl                     : 2;
> 
> +  UINT32 PowerLimit2                    : 1;      ///< Enable or Disable short duration
> Power Limit (PL2). 0: Disable; <b>1: Enable</b>
> 
> +  UINT32 TurboPowerLimitLock            : 1;      ///< MSR 0x610[63] and
> 0x618[63]: Locks all Turbo power limit settings to read-only; <b>0:
> Disable</b>; 1: Enable (Lock).
> 
> +  UINT32 PowerLimit3DutyCycle           : 8;      ///< Package PL3 Duty Cycle.
> Specifies the PL3 duty cycle percentage, Range 0-100. <b>Default: 0</b>.
> 
> +  UINT32 PowerLimit3Lock                : 1;      ///< Package PL3 MSR 615h lock;
> <b>0: Disable</b>; 1: Enable (Lock).
> 
> +  UINT32 PowerLimit4Lock                : 1;      ///< Package PL4 MSR 601h lock;
> <b>0: Disable</b>; 1: Enable (Lock).
> 
> +  /**
> 
> +  Tcc Offset Clamp for Runtime Average Temperature Limit (RATL) allows
> CPU to throttle below P1.
> 
> +  For Y SKU, the recommended default for this policy is <b>1: Enabled</b>,
> which indicates throttling below P1 is allowed.
> 
> +  For all other SKUs the recommended default are  <b>0: Disabled</b>.
> 
> +  **/
> 
> +  UINT32 TccOffsetClamp                 : 1;
> 
> +  UINT32 TccOffsetLock                  : 1;      ///< Tcc Offset Lock for Runtime
> Average Temperature Limit (RATL) to lock temperature target MSR 1A2h; 0:
> Disabled; <b>1: Enabled (Lock)</b>.
> 
> +  UINT32 TurboMode                      : 1;      ///< Enable or Disable Turbo Mode.
> Disable; <b>1: Enable</b>
> 
> +  UINT32 HwpInterruptControl            : 1;      ///< Set HW P-State Interrupts
> Enabled  for MISC_PWR_MGMT MSR 0x1AA[7]; <b>0: Disable</b>; 1:
> Enable.
> 
> +  UINT32 ApplyConfigTdp                 : 1;      ///< Switch TDP applied setting
> based on non-cTDP or TDP; 0: non-cTDP; <b>1: cTDP</b>.
> 
> +  UINT32 HwpLock                        : 1;      ///< HWP Lock in MISC PWR MGMT
> MSR 1AAh; <b>0: Disable</b>; 1: Enable (Lock).
> 
> +  UINT32 VccInDemotionOverride          : 1;      ///< Enable VccIn Demotion
> Override configuration. <b>0: Disable</b>; 1: Enable.
> 
> +  UINT32 RsvdBits                       : 6;      ///< Reserved for future use.
> 
> +
> 
> +  /**
> 
> +   1-Core Ratio Limit: LFM to Fused 1-Core Ratio Limit. For overclocking parts:
> LFM to Fused 1-Core Ratio Limit + OC Bins.
> 
> +   Note: OC Bins = 7 means fully unlocked, so range is LFM to 83.
> 
> +     - This 1-Core Ratio Limit Must be greater than or equal to 2-Core Ratio
> Limit, 3-Core Ratio Limit, 4-Core Ratio Limit.
> 
> +  **/
> 
> +  UINT8  OneCoreRatioLimit;
> 
> +  /**
> 
> +   2-Core Ratio Limit: LFM to Fused 2-Core Ratio Limit, For overclocking part:
> LFM to Fused 2-Core Ratio Limit + OC Bins.
> 
> +   Note: OC Bins = 7 means fully unlocked, so range is LFM to 83.
> 
> +     - This 2-Core Ratio Limit Must be Less than or equal to 1-Core Ratio Limit.
> 
> +  **/
> 
> +  UINT8  TwoCoreRatioLimit;
> 
> +  /**
> 
> +   3-Core Ratio Limit: LFM to Fused 3-Core Ratio Limit, For overclocking part:
> LFM to Fused 3-Core Ratio Limit + OC Bins.
> 
> +   Note: OC Bins = 7 means fully unlocked, so range is LFM to 83.
> 
> +     - This 3-Core Ratio Limit Must be Less than or equal to 1-Core Ratio Limit.
> 
> +  **/
> 
> +  UINT8  ThreeCoreRatioLimit;
> 
> +  /**
> 
> +   4-Core Ratio Limit: LFM to Fused 4-Core Ratio Limit, For overclocking part:
> LFM to Fused 4-Core Ratio Limit + OC Bins.
> 
> +   Note: OC Bins = 7 means fully unlocked, so range is LFM to 83.
> 
> +     - This 4-Core Ratio Limit Must be Less than or equal to 1-Core Ratio Limit.
> 
> +  **/
> 
> +  UINT8  FourCoreRatioLimit;
> 
> +  /**
> 
> +   5-Core Ratio Limit: LFM to Fused 5-Core Ratio Limit, For overclocking part:
> LFM to Fused 5-Core Ratio Limit + OC Bins.
> 
> +   Note: OC Bins = 7 means fully unlocked, so range is LFM to 83.
> 
> +     - This 5-Core Ratio Limit Must be Less than or equal to 1-Core Ratio Limit.
> 
> +  **/
> 
> +  UINT8  FiveCoreRatioLimit;
> 
> +  /**
> 
> +   6-Core Ratio Limit: LFM to Fused 6-Core Ratio Limit, For overclocking part:
> LFM to Fused 6-Core Ratio Limit + OC Bins.
> 
> +   Note: OC Bins = 7 means fully unlocked, so range is LFM to 83.
> 
> +     - This 6-Core Ratio Limit Must be Less than or equal to 1-Core Ratio Limit.
> 
> +  **/
> 
> +  UINT8  SixCoreRatioLimit;
> 
> +  /**
> 
> +   7-Core Ratio Limit: LFM to Fused 7-Core Ratio Limit, For overclocking part:
> LFM to Fused 7-Core Ratio Limit + OC Bins.
> 
> +   Note: OC Bins = 7 means fully unlocked, so range is LFM to 83.
> 
> +     - This 7-Core Ratio Limit Must be Less than or equal to 1-Core Ratio Limit.
> 
> +  **/
> 
> +  UINT8  SevenCoreRatioLimit;
> 
> +  /**
> 
> +   8-Core Ratio Limit: LFM to Fused 8-Core Ratio Limit, For overclocking part:
> LFM to Fused 8-Core Ratio Limit + OC Bins.
> 
> +   Note: OC Bins = 7 means fully unlocked, so range is LFM to 83.
> 
> +     - This 8-Core Ratio Limit Must be Less than or equal to 1-Core Ratio Limit.
> 
> +  **/
> 
> +  UINT8  EightCoreRatioLimit;
> 
> +  /**
> 
> +  TCC Activation Offset. Offset from factory set TCC activation temperature
> at which the Thermal Control Circuit must be activated.
> 
> +  TCC will be activated at (TCC Activation Temperature - TCC Activation
> Offset), in degrees Celcius.
> 
> +  For Y SKU, the recommended default for this policy is  <b>10</b>
> 
> +  For all other SKUs the recommended default are <b>0</b>, causing TCC to
> activate at TCC Activation temperature.
> 
> +  @note The policy is recommended for validation purpose only.
> 
> +  **/
> 
> +  UINT8  TccActivationOffset;
> 
> +  /**
> 
> +  Intel Turbo Boost Max Technology 3.0
> 
> +  Enabling it on processors with OS support will allow OS to exploit the
> diversity in max turbo frequency of the cores.
> 
> +  <b>0: Disable</b>; 1: Enable;
> 
> +  **/
> 
> +  UINT8  EnableItbm                     : 1;
> 
> +  /**
> 
> +  @deprecated: Platform doesn't have Intel Turbo Boost Max Technology
> 3.0 Driver
> 
> +  Enabling it will load the driver upon ACPI device with HID = INT3510.
> 
> +  <b> 0: Disable;</b> 1: Enable;
> 
> +  **/
> 
> +  UINT8  EnableItbmDriver               : 1;
> 
> +  /**
> 
> +  Per Core P State OS control mode
> 
> +  Disabling will set PCU_MISC_CONFIG (Command 0x06) Bit 31 = 1. When
> set, the highest core request is used for all other core requests.
> 
> +  0: Disable;<b> 1: Enable;</b>
> 
> +  **/
> 
> +  UINT8  EnablePerCorePState            : 1;
> 
> +  /**
> 
> +  HwP Autonomous Per Core P State
> 
> +  Disabling will set Bit 30 = 1, command 0x11. When set, autonomous will
> request the same value
> 
> +  for all cores all the time.
> 
> +  0: Disable;<b> 1: Enable;</b>
> 
> +  **/
> 
> +  UINT8  EnableHwpAutoPerCorePstate     : 1;
> 
> +  /**
> 
> +  HwP Autonomous EPP grouping.
> 
> +  Disabling will set Bit 29 = 1, command 0x11. When set, autonomous will not
> necesarrily request the same value
> 
> +  for all cores with same EPP.
> 
> +  Enabling will clean Bit 29 = 0, command 0x11. Autonomous will request
> same values for all cores with same EPP.
> 
> +  0: Disable;<b> 1: Enable;</b>
> 
> +  **/
> 
> +  UINT8  EnableHwpAutoEppGrouping       : 1;
> 
> +  /**
> 
> +  EPB override over PECI
> 
> +  Enable by sending pcode command 0x2b , subcommand 0x3 to 1.
> 
> +  This will allow OOB EPB PECI override control.
> 
> +  <b>0: Disable;</b> 1: Enable;
> 
> +  **/
> 
> +  UINT8  EnableEpbPeciOverride          : 1;
> 
> +  /**
> 
> +  Support for Fast MSR for IA32_HWP_REQUEST.
> 
> +  On systems with HwP enabled, if this feature is available as indicated by
> MSR 0x65F[0] = 1,
> 
> +  set MSR 0x657[0] = 1.
> 
> +  0: Disable; <b> 1: Enable;</b>
> 
> +  **/
> 
> +  UINT8  EnableFastMsrHwpReq            : 1;
> 
> +  UINT8  ReservedBits1                  : 1;      ///< Reserved for future use.
> 
> +  UINT8  MinRingRatioLimit;                       ///< Minimum Ring Ratio Limit. Range
> from 0 to Max Turbo Ratio. 0 = AUTO/HW Default
> 
> +  UINT8  MaxRingRatioLimit;                       ///< Maximum Ring Ratio Limit.
> Range from 0 to Max Turbo Ratio. 0 = AUTO/HW Default
> 
> +  /**
> 
> +  Package Long duration turbo mode power limit (PL1).
> 
> +  Default is the TDP power limit of processor. Units are based on
> POWER_MGMT_CONFIG.CustomPowerUnit.
> 
> +  **/
> 
> +  UINT16 PowerLimit1;
> 
> +  /**
> 
> +  Package Short duration turbo mode power limit (PL2). Allows for short
> excursions above TDP power limit.
> 
> +  Default = 1.25 * TDP Power Limit. Units are based on
> POWER_MGMT_CONFIG.CustomPowerUnit.
> 
> +  **/
> 
> +  UINT16 PowerLimit2Power;
> 
> +  /**
> 
> +  Package PL3 power limit. PL3 is the CPU Peak Power Occurences Limit.
> 
> +  <b>Default: 0</b>. Range 0-65535. Units are based on
> POWER_MGMT_CONFIG.CustomPowerUnit.
> 
> +  **/
> 
> +  UINT16 PowerLimit3;
> 
> +  /**
> 
> +  Package PL4 power limit. PL4 is a Preemptive CPU Package Peak Power
> Limit, it will never be exceeded.
> 
> +  Power is premptively lowered before limit is reached. <b>Default: 0</b>.
> Range 0-65535.
> 
> +  Units are based on POWER_MGMT_CONFIG.CustomPowerUnit.
> 
> +  **/
> 
> +  UINT16 PowerLimit4;
> 
> +  /**
> 
> +  Package Long duration turbo mode power limit (PL1) time window in
> seconds.
> 
> +  Used in calculating the average power over time.
> 
> +  Mobile: <b> 28s</b>
> 
> +  Desktop: <b> 8s</b>
> 
> +  Range: 0 - 128s
> 
> +  **/
> 
> +  UINT32 PowerLimit1Time;
> 
> +  UINT32 PowerLimit3Time;                         ///< Package PL3 time window.
> Range from 3ms to 64ms.
> 
> +  /**
> 
> +  Tcc Offset Time Window can range from 5ms to 448000ms for Runtime
> Average Temperature Limit (RATL).
> 
> +  For Y SKU, the recommended default for this policy is <b>5000: 5
> seconds</b>, For all other SKUs the recommended default are <b>0:
> Disabled</b>
> 
> +  **/
> 
> +  UINT32 TccOffsetTimeWindowForRatl;
> 
> +  /**
> 
> +  Customize the VccIn Demotion in ms accordingly. Values used by OEM
> expected to be in lower end of 1-30 ms range.
> 
> +  Value 1 means 1ms, value 2 means 2ms, and so on. Value 0 will disable
> VccIn Demotion knob.
> 
> +  <b> It's 30ms by silicon default</b>.
> 
> +  **/
> 
> +  UINT32 VccInDemotionMs;
> 
> +} CPU_POWER_MGMT_BASIC_CONFIG;
> 
> +
> 
> +#pragma pack (pop)
> 
> +
> 
> +#endif // _CPU_POWER_MGMT_BASIC_CONFIG_H_
> 
> diff --git
> a/Silicon/Intel/TigerlakeSiliconPkg/Cpu/Include/ConfigBlock/CpuPowerMgm
> tCustomConfig.h
> b/Silicon/Intel/TigerlakeSiliconPkg/Cpu/Include/ConfigBlock/CpuPowerMgm
> tCustomConfig.h
> new file mode 100644
> index 0000000000..e1a5bcc684
> --- /dev/null
> +++
> b/Silicon/Intel/TigerlakeSiliconPkg/Cpu/Include/ConfigBlock/CpuPowerMgm
> tCustomConfig.h
> @@ -0,0 +1,76 @@
> +/** @file
> 
> +  CPU Power Managment Custom Config Block.
> 
> +
> 
> +  Copyright (c) 2021, Intel Corporation. All rights reserved.<BR>
> 
> +  SPDX-License-Identifier: BSD-2-Clause-Patent
> 
> +**/
> 
> +#ifndef _CPU_POWER_MGMT_CUSTOM_CONFIG_H_
> 
> +#define _CPU_POWER_MGMT_CUSTOM_CONFIG_H_
> 
> +
> 
> +#define CPU_POWER_MGMT_CUSTOM_CONFIG_REVISION 1
> 
> +
> 
> +extern EFI_GUID gCpuPowerMgmtCustomConfigGuid;
> 
> +
> 
> +#pragma pack (push,1)
> 
> +
> 
> +///
> 
> +/// Defines the maximum number of custom ratio states supported.
> 
> +///
> 
> +#define MAX_CUSTOM_RATIO_TABLE_ENTRIES    40
> 
> +#define MAX_16_CUSTOM_RATIO_TABLE_ENTRIES 16
> 
> +
> 
> +///
> 
> +/// Defines the maximum number of custom ConfigTdp entries supported.
> 
> +/// @warning: Changing this define would cause DWORD alignment issues
> in policy structures.
> 
> +///
> 
> +#define MAX_CUSTOM_CTDP_ENTRIES 3
> 
> +
> 
> +///
> 
> +/// This structure is used to describe the custom processor ratio table
> desired by the platform.
> 
> +///
> 
> +typedef struct {
> 
> +  UINT8  MaxRatio;                                           ///< The maximum ratio of the
> custom ratio table.
> 
> +  UINT8  NumberOfEntries;                                    ///< The number of custom
> ratio state entries, ranges from 2 to 40 for a valid custom ratio table.
> 
> +  UINT8  Rsvd0[2];                                           ///< Reserved for DWORD
> alignment.
> 
> +  UINT32 Cpuid;                                              ///< The CPU ID for which this custom
> ratio table applies.
> 
> +  UINT8  StateRatio[MAX_CUSTOM_RATIO_TABLE_ENTRIES];         ///< The
> processor ratios in the custom ratio table.
> 
> +  ///
> 
> +  /// If there are more than 16 total entries in the StateRatio table, then use
> these 16 entries to fill max 16 table.
> 
> +  /// @note If NumberOfEntries is 16 or less, or the first entry of this table is
> 0, then this table is ignored,
> 
> +  /// and up to the top 16 values from the StateRatio table is used instead.
> 
> +  ///
> 
> +  UINT8  StateRatioMax16[MAX_16_CUSTOM_RATIO_TABLE_ENTRIES];
> 
> +#if ((MAX_CUSTOM_RATIO_TABLE_ENTRIES +
> MAX_16_CUSTOM_RATIO_TABLE_ENTRIES) % 4)
> 
> +  UINT8  Rsvd1[4 - ((MAX_CUSTOM_RATIO_TABLE_ENTRIES +
> MAX_16_CUSTOM_RATIO_TABLE_ENTRIES) % 4)];  ///< If needed, add
> padding for dword alignment.
> 
> +#endif
> 
> +} PPM_CUSTOM_RATIO_TABLE;
> 
> +
> 
> +///
> 
> +/// PPM Custom ConfigTdp Settings
> 
> +///
> 
> +typedef struct _PPM_CUSTOM_CTDP_TABLE {
> 
> +  UINT32 CustomPowerLimit1Time      :  8;            ///< Short term Power Limit
> time window value for custom cTDP level.
> 
> +  UINT32 CustomTurboActivationRatio :  8;            ///< Turbo Activation Ratio
> for custom cTDP level.
> 
> +  UINT32 RsvdBits                   : 16;            ///< Bits reserved for DWORD
> alignment.
> 
> +  UINT16 CustomPowerLimit1;                          ///< Short term Power Limit
> value for custom cTDP level. Units are based on
> POWER_MGMT_CONFIG.CustomPowerUnit.
> 
> +  UINT16 CustomPowerLimit2;                          ///< Long term Power Limit value
> for custom cTDP level. Units are based on
> POWER_MGMT_CONFIG.CustomPowerUnit.
> 
> +} PPM_CUSTOM_CTDP_TABLE;
> 
> +
> 
> +/**
> 
> +  CPU Power Management Custom Configuration Structure.
> 
> +
> 
> +  <b>Revision 1</b>:
> 
> +  - Initial version.
> 
> +**/
> 
> +typedef struct {
> 
> +  CONFIG_BLOCK_HEADER    Header;                                                ///< Config
> Block Header
> 
> +  PPM_CUSTOM_RATIO_TABLE CustomRatioTable;                                      ///<
> Custom Processor Ratio Table Instance
> 
> +  PPM_CUSTOM_CTDP_TABLE
> CustomConfigTdpTable[MAX_CUSTOM_CTDP_ENTRIES];         ///< Custom
> ConfigTdp Settings Instance
> 
> +  UINT32                 ConfigTdpLock  : 1;                                    ///< Lock the
> ConfigTdp mode settings from runtime changes; <b>0: Disable</b>; 1:
> Enable.
> 
> +  UINT32                 ConfigTdpBios  : 1;                                    ///< Configure
> whether to load Configurable TDP SSDT; <b>0: Disable</b>; 1: Enable.
> 
> +  UINT32                 RsvdBits       : 30;                                   ///< Reserved for future
> use
> 
> +} CPU_POWER_MGMT_CUSTOM_CONFIG;
> 
> +
> 
> +#pragma pack (pop)
> 
> +
> 
> +#endif // _CPU_POWER_MGMT_CUSTOM_CONFIG_H_
> 
> diff --git
> a/Silicon/Intel/TigerlakeSiliconPkg/Cpu/Include/ConfigBlock/CpuPowerMgm
> tPsysConfig.h
> b/Silicon/Intel/TigerlakeSiliconPkg/Cpu/Include/ConfigBlock/CpuPowerMgm
> tPsysConfig.h
> new file mode 100644
> index 0000000000..f1ceb8f43b
> --- /dev/null
> +++
> b/Silicon/Intel/TigerlakeSiliconPkg/Cpu/Include/ConfigBlock/CpuPowerMgm
> tPsysConfig.h
> @@ -0,0 +1,36 @@
> +/** @file
> 
> +  CPU Power Management Psys(Platform) Config Block.
> 
> +
> 
> +  Copyright (c) 2021, Intel Corporation. All rights reserved.<BR>
> 
> +  SPDX-License-Identifier: BSD-2-Clause-Patent
> 
> +**/
> 
> +#ifndef _CPU_POWER_MGMT_PSYS_CONFIG_H_
> 
> +#define _CPU_POWER_MGMT_PSYS_CONFIG_H_
> 
> +
> 
> +#define CPU_POWER_MGMT_PSYS_CONFIG_REVISION 1
> 
> +
> 
> +extern EFI_GUID gCpuPowerMgmtPsysConfigGuid;
> 
> +
> 
> +#pragma pack (push,1)
> 
> +
> 
> +/**
> 
> +  CPU Power Management Psys(Platform) Configuration Structure.
> 
> +
> 
> +  <b>Revision 1</b>:
> 
> +  - Initial version.
> 
> +**/
> 
> +typedef struct {
> 
> +  CONFIG_BLOCK_HEADER   Header;                   ///< Config Block Header
> 
> +  UINT32 PsysPowerLimit1       : 1;               ///< MSR 0x65C[15]: PL1 Enable
> activates the PL1 value to limit average platform power
> 
> +  UINT32 PsysPowerLimit1Time   : 8;               ///< MSR 0x65C[23:17]: PL1
> timewindow in seconds.
> 
> +  UINT32 PsysPowerLimit2       : 1;               ///< MSR 0x65C[47]: PL2 Enable
> activates the PL2 value to limit average platform power
> 
> +  UINT32 RsvdBits              : 22;              ///< Reserved for future use.
> 
> +  UINT16 PsysPowerLimit1Power;                    ///< MSR 0x65C[14:0]: Platform
> PL1 power. Units are based on POWER_MGMT_CONFIG.CustomPowerUnit.
> 
> +  UINT16 PsysPowerLimit2Power;                    ///< MSR 0x65C[46:32]]:
> Platform PL2 power. Units are based on
> POWER_MGMT_CONFIG.CustomPowerUnit.
> 
> +  UINT16 PsysPmax;                                ///< PCODE MMIO Mailbox: Platform
> Power Pmax. <b>0 - Auto</b> Specified in 1/8 Watt increments. 0-1024
> Watts. Value of 800 = 100W.
> 
> +  UINT8  Rsvd[2];                                 ///< Reserved for future use and config
> block alignment
> 
> +} CPU_POWER_MGMT_PSYS_CONFIG;
> 
> +
> 
> +#pragma pack (pop)
> 
> +
> 
> +#endif // _CPU_POWER_MGMT_PSYS_CONFIG_H_
> 
> diff --git
> a/Silicon/Intel/TigerlakeSiliconPkg/Cpu/Include/ConfigBlock/CpuPowerMgm
> tTestConfig.h
> b/Silicon/Intel/TigerlakeSiliconPkg/Cpu/Include/ConfigBlock/CpuPowerMgm
> tTestConfig.h
> new file mode 100644
> index 0000000000..bd641f27c5
> --- /dev/null
> +++
> b/Silicon/Intel/TigerlakeSiliconPkg/Cpu/Include/ConfigBlock/CpuPowerMgm
> tTestConfig.h
> @@ -0,0 +1,150 @@
> +/** @file
> 
> +  CPU Power Management Test Config Block.
> 
> +
> 
> +  Copyright (c) 2021, Intel Corporation. All rights reserved.<BR>
> 
> +  SPDX-License-Identifier: BSD-2-Clause-Patent
> 
> +**/
> 
> +#ifndef _CPU_POWER_MGMT_TEST_CONFIG_H_
> 
> +#define _CPU_POWER_MGMT_TEST_CONFIG_H_
> 
> +
> 
> +#define CPU_POWER_MGMT_TEST_CONFIG_REVISION 4
> 
> +
> 
> +extern EFI_GUID gCpuPowerMgmtTestConfigGuid;
> 
> +
> 
> +#pragma pack (push,1)
> 
> +
> 
> +///
> 
> +/// PPM Package C State Limit
> 
> +///
> 
> +typedef enum {
> 
> +  PkgC0C1                 = 0,
> 
> +  PkgC2,
> 
> +  PkgC3,
> 
> +  PkgC6,
> 
> +  PkgC7,
> 
> +  PkgC7s,
> 
> +  PkgC8,
> 
> +  PkgC9,
> 
> +  PkgC10,
> 
> +  PkgCMax,
> 
> +  PkgCpuDefault = 254,
> 
> +  PkgAuto = 255
> 
> +} MAX_PKG_C_STATE;
> 
> +
> 
> +///
> 
> +/// PPM Package C State Time Limit
> 
> +///
> 
> +typedef enum {
> 
> +  TimeUnit1ns             = 0,
> 
> +  TimeUnit32ns,
> 
> +  TimeUnit1024ns,
> 
> +  TimeUnit32768ns,
> 
> +  TimeUnit1048576ns,
> 
> +  TimeUnit33554432ns,
> 
> +  TimeUnitMax
> 
> +} C_STATE_TIME_UNIT;
> 
> +
> 
> +///
> 
> +/// Custom Power Units. User can choose to enter in watts or 125 milliwatt
> increments.
> 
> +///
> 
> +typedef enum {
> 
> +  PowerUnitWatts = 0,     ///< in Watts.
> 
> +  PowerUnit125MilliWatts, ///< in 125 milliwatt increments. Example: 90
> power units times 125 mW equals 11.250 W.
> 
> +  PowerUnitMax
> 
> +} CUSTOM_POWER_UNIT;
> 
> +
> 
> +///
> 
> +/// PPM Interrupt Redirection Mode Selection
> 
> +///
> 
> +typedef enum {
> 
> +  PpmIrmFixedPriority     = 0,
> 
> +  PpmIrmRoundRobin,
> 
> +  PpmIrmHashVector,
> 
> +  PpmIrmReserved1,
> 
> +  PpmIrmReserved2,
> 
> +  PpmIrmReserved3,
> 
> +  PpmIrmReserved4,
> 
> +  PpmIrmNoChange
> 
> +} PPM_IRM_SETTING;
> 
> +
> 
> +/**
> 
> +  CPU Power Management Test Configuration Structure.
> 
> +
> 
> +  <b>Revision 1</b>:
> 
> +  - Initial version.
> 
> +  <b>Revision 2</b>:
> 
> +  - Add  CstateLatencyControl0TimeUnit for WHL only
> 
> +  - Add  CstateLatencyControl0Irtl for WHL only
> 
> +  <b>Revision 3</b>:
> 
> +  - Change C State LatencyContol to Auto as default.
> 
> +  <b>Revision 4</b>:
> 
> +  - Deprecate ConfigTdpLevel. Move to premem.
> 
> +**/
> 
> +typedef struct {
> 
> +  CONFIG_BLOCK_HEADER   Header;                    ///< Offset 0-27  Config Block
> Header
> 
> +  UINT32 Eist                          : 1;        ///< Offset 28-31 Enable or Disable Intel
> SpeedStep Technology. 0: Disable; <b>1: Enable</b>
> 
> +  UINT32 EnergyEfficientPState         : 1;        ///<              Enable or Disable
> Energy Efficient P-state will be applied in Turbo mode. Disable; <b>1:
> Enable</b>
> 
> +  UINT32 EnergyEfficientTurbo          : 1;        ///<              Enable or Disable
> Energy Efficient Turbo, will be applied in Turbo mode. Disable; <b>1:
> Enable</b>
> 
> +  UINT32 TStates                       : 1;        ///<              Enable or Disable T states;
> <b>0: Disable</b>; 1: Enable.
> 
> +  UINT32 BiProcHot                     : 1;        ///<              Enable or Disable Bi-
> Directional PROCHOT#; 0: Disable; <b>1: Enable</b>.
> 
> +  UINT32 DisableProcHotOut             : 1;        ///<              Enable or Disable
> PROCHOT# signal being driven externally; 0: Disable; <b>1: Enable</b>.
> 
> +  UINT32 ProcHotResponse               : 1;        ///<              Enable or Disable
> PROCHOT# Response; <b>0: Disable</b>; 1: Enable.
> 
> +  UINT32 DisableVrThermalAlert         : 1;        ///<              Enable or Disable VR
> Thermal Alert; <b>0: Disable</b>; 1: Enable.
> 
> +  UINT32 EnableAllThermalFunctions     : 1;        ///<              Enable or Disable
> Thermal Reporting through ACPI tables; 0: Disable; <b>1: Enable</b>.
> 
> +  UINT32 ThermalMonitor                : 1;        ///<              Enable or Disable
> Thermal Monitor; 0: Disable; <b>1: Enable</b>.
> 
> +  UINT32 Cx                            : 1;        ///<              Enable or Disable CPU power
> states (C-states). 0: Disable; <b>1: Enable</b>
> 
> +  UINT32 PmgCstCfgCtrlLock             : 1;        ///<              If enabled, sets MSR
> 0xE2[15]; 0: Disable; <b>1: Enable</b>.
> 
> +  UINT32 C1e                           : 1;        ///<              Enable or Disable Enhanced C-
> states. 0: Disable; <b>1: Enable</b>
> 
> +  UINT32 C1AutoDemotion                : 1;        ///<              Enable or Disable C6/C7
> auto demotion to C1. 0: Disabled; <b>1: C1 Auto demotion</b>
> 
> +  UINT32 C1UnDemotion                  : 1;        ///<              Enable or Disable
> C1UnDemotion. 0: Disabled; <b>1: C1 Auto undemotion</b>
> 
> +  UINT32 C3AutoDemotion                : 1;        ///<              [CoffeeLake Only]
> Enable or Disable C6/C7 auto demotion to C3  0: Disabled; <b>1: C3 Auto
> demotion</b>
> 
> +  UINT32 C3UnDemotion                  : 1;        ///<              [CoffeeLake Only]
> Enable or Disable C3UnDemotion. 0: Disabled; <b>1: C3 Auto
> undemotion</b>
> 
> +  UINT32 PkgCStateDemotion             : 1;        ///<              Enable or Disable
> Package Cstate Demotion. Disable; <b>1: Enable</b> [WhiskeyLake]
> <b>Disable</b>; 1: Enable
> 
> +  UINT32 PkgCStateUnDemotion           : 1;        ///<              Enable or Disable
> Package Cstate UnDemotion. Disable; <b>1: Enable</b> [WhiskeyLake]
> <b>Disable</b>; 1: Enable
> 
> +  UINT32 CStatePreWake                 : 1;        ///<              Enable or Disable
> CState-Pre wake. Disable; <b>1: Enable</b>
> 
> +  UINT32 TimedMwait                    : 1;        ///<              Enable or Disable
> TimedMwait Support. <b>Disable</b>; 1: Enable
> 
> +  UINT32 CstCfgCtrIoMwaitRedirection   : 1;        ///<              Enable or Disable
> IO to MWAIT redirection; <b>0: Disable</b>; 1: Enable.
> 
> +  UINT32 ProcHotLock                   : 1;        ///<              If enabled, sets MSR
> 0x1FC[23]; <b>0: Disable</b>; 1: Enable.
> 
> +  UINT32 RaceToHalt                    : 1;        ///<              Enable or Disable Race To
> Halt feature; 0: Disable; <b>1: Enable </b>. RTH will dynamically increase CPU
> frequency in order to enter pkg C-State faster to reduce overall power. (RTH
> is controlled through MSR 1FC bit 20)
> 
> +  UINT32 ConfigTdpLevel                : 8;        ///<              @deprecated. Move to
> premem phase.
> 
> +  UINT16 CstateLatencyControl1Irtl;                ///< Offset 32-33 Interrupt
> Response Time Limit of LatencyContol1 MSR 0x60B[9:0].<b>0 is Auto</b>.
> 
> +  UINT16 CstateLatencyControl2Irtl;                ///< Offset 34-35 Interrupt
> Response Time Limit of LatencyContol2 MSR 0x60C[9:0].<b>0 is Auto</b>.
> 
> +  UINT16 CstateLatencyControl3Irtl;                ///< Offset 36-37 Interrupt
> Response Time Limit of LatencyContol3 MSR 0x633[9:0].<b>0 is Auto</b>.
> 
> +  UINT16 CstateLatencyControl4Irtl;                ///< Offset 38-39 Interrupt
> Response Time Limit of LatencyContol4 MSR 0x634[9:0].<b>0 is Auto</b>.
> 
> +  UINT16 CstateLatencyControl5Irtl;                ///< Offset 40-41 Interrupt
> Response Time Limit of LatencyContol5 MSR 0x635[9:0].<b>0 is Auto</b>.
> 
> +  // Due to the removal of CstateLatencyControl0Irtl, PkgCStateLimit is not
> aligned to 32-bit address.
> 
> +  UINT8  Rsvd1[2];                                 ///< Offset 42-43 Reserved for config
> block alignment.
> 
> +  MAX_PKG_C_STATE   PkgCStateLimit;                ///< Offset 44    This field is
> used to set the Max Pkg Cstate. Default set to Auto which limits the Max Pkg
> Cstate to deep C-state.
> 
> +  /**
> 
> +     @todo: The following enums have to be replaced with policies.
> 
> +  **/
> 
> +  C_STATE_TIME_UNIT Reserved;                      ///< Offset 45    Reserved for
> config block alignment.
> 
> +  C_STATE_TIME_UNIT CstateLatencyControl1TimeUnit; ///< Offset 46
> TimeUnit for Latency Control1 MSR 0x60B[12:10]; <b>2: 1024ns</b>.
> 
> +  C_STATE_TIME_UNIT CstateLatencyControl2TimeUnit; ///< Offset 47
> TimeUnit for Latency Control2 MSR 0x60C[12:10]; <b>2: 1024ns</b>.
> 
> +  C_STATE_TIME_UNIT CstateLatencyControl3TimeUnit; ///< Offset 48
> TimeUnit for Latency Control3 MSR 0x633[12:10]; <b>2: 1024ns</b>.
> 
> +  C_STATE_TIME_UNIT CstateLatencyControl4TimeUnit; ///< Offset 49
> TimeUnit for Latency Control4 MSR 0x634[12:10]; <b>2: 1024ns</b>.
> 
> +  C_STATE_TIME_UNIT CstateLatencyControl5TimeUnit; ///< Offset 50
> TimeUnit for Latency Control5 MSR 0x635[12:10]; <b>2: 1024ns</b>.
> 
> +  /**
> 
> +  Offset 51  Default power unit in watts or in 125 milliwatt increments.
> 
> +  - 0: PowerUnitWatts.
> 
> +  - <b>1: PowerUnit125MilliWatts</b>.
> 
> +  **/
> 
> +  CUSTOM_POWER_UNIT CustomPowerUnit;
> 
> +  /**
> 
> +  Offset 52  Interrupt Redirection Mode Select.
> 
> +   - 0: Fixed priority.             //Default under CNL.
> 
> +   - 1: Round robin.
> 
> +   - 2: Hash vector.
> 
> +   - 4: PAIR with fixed priority.   //Default under KBL, not available under CNL.
> 
> +   - 5: PAIR with round robin.      //Not available under CNL.
> 
> +   - 6: PAIR with hash vector.      //Not available under CNL.
> 
> +   - 7: No change.
> 
> +  **/
> 
> +  PPM_IRM_SETTING      PpmIrmSetting;
> 
> +  // Move the padding to previous offset to align the structure at 32-bit
> address.
> 
> +  UINT8  Rsvd[4];                                 ///< Offset 53-56 Reserved for future use
> and config block alignment
> 
> +} CPU_POWER_MGMT_TEST_CONFIG;
> 
> +
> 
> +#pragma pack (pop)
> 
> +
> 
> +#endif // _CPU_POWER_MGMT_TEST_CONFIG_H_
> 
> diff --git
> a/Silicon/Intel/TigerlakeSiliconPkg/Cpu/Include/ConfigBlock/CpuSecurityPre
> MemConfig.h
> b/Silicon/Intel/TigerlakeSiliconPkg/Cpu/Include/ConfigBlock/CpuSecurityPre
> MemConfig.h
> new file mode 100644
> index 0000000000..24614fe497
> --- /dev/null
> +++
> b/Silicon/Intel/TigerlakeSiliconPkg/Cpu/Include/ConfigBlock/CpuSecurityPre
> MemConfig.h
> @@ -0,0 +1,63 @@
> +/** @file
> 
> +  CPU Security PreMemory Config Block.
> 
> +
> 
> +  Copyright (c) 2021, Intel Corporation. All rights reserved.<BR>
> 
> +  SPDX-License-Identifier: BSD-2-Clause-Patent
> 
> +**/
> 
> +#ifndef _CPU_SECURITY_PREMEM_CONFIG_H_
> 
> +#define _CPU_SECURITY_PREMEM_CONFIG_H_
> 
> +
> 
> +#define CPU_SECURITY_PREMEM_CONFIG_REVISION 1
> 
> +
> 
> +extern EFI_GUID gCpuSecurityPreMemConfigGuid;
> 
> +
> 
> +#pragma pack (push,1)
> 
> +
> 
> +/**
> 
> +  CPU Security PreMemory Configuration Structure.
> 
> +
> 
> +  <b>Revision 1</b>:
> 
> +  - Initial version.
> 
> +**/
> 
> +typedef struct {
> 
> +  CONFIG_BLOCK_HEADER Header;                      ///< Config Block Header
> 
> +  UINT32              PrmrrSize;                   ///< PRMRR Size.<b>Software Control:
> 0x0</b>  32MB: 0x2000000, 64MB: 0x4000000, 128 MB: 0x8000000, 256 MB:
> 0x10000000, 512 MB: 0x20000000
> 
> +  UINT16              BiosSize;                    ///< Flash information for BIOS Guard:
> BIOS Size in KB.
> 
> +  UINT8               Reserved[2];                 ///< Reserved for future use
> 
> +/**
> 
> +   Enable or Disable BIOS Guard; 0: Disable; <b>1: Enable</b>.
> 
> +    - This is an optional feature and can be opted out.
> 
> +    - If this policy is set to Disabled, the policies in the BIOS_GUARD_CONFIG
> will be ignored.
> 
> +    - If PeiBiosGuardLibNull is used, this policy will have no effect.
> 
> +**/
> 
> +  UINT32              BiosGuard               :  1;
> 
> +  UINT32              BiosGuardToolsInterface :  1; ///< BIOS Guard Tools
> Interface; <b>0: Disable</b>, 1:Enable
> 
> +/**
> 
> +   Enable or Disable Software Guard Extensions; <b>0: Disable</b>; 1:
> Enable.
> 
> +    - This is an optional feature and can be opted out.
> 
> +    - If this policy is set to Disabled, the policies in the CPU_SGX_CONFIG will
> be ignored.
> 
> +    - If BaseSoftwareGuardLibNull is used, this policy will have no effect.
> 
> +**/
> 
> +  UINT32              EnableSgx               :  1;
> 
> +/**
> 
> +   Enable or Disable Trusted Execution Technology; <b>0: Disable</b>; 1:
> Enable.
> 
> +    - This is an optional feature and can be opted out.
> 
> +    - If this policy is set to Disabled, the policies in the
> CPU_TXT_PREMEM_CONFIG will be ignored.
> 
> +    - If PeiTxtLibNull is used, this policy will have no effect.
> 
> +**/
> 
> +  UINT32              Txt                     :  1;
> 
> +  UINT32              SkipStopPbet            :  1; ///< <b>(Test)</b> Skip Stop PBET
> Timer; <b>0: Disable</b>; 1: Enable.
> 
> +  ///
> 
> +  /// <b>(Test)</b> This policy indicates whether or not BIOS should allocate
> PRMRR memory for C6DRAM power gating feature.
> 
> +  ///  - 0: Don't allocate any PRMRR memory for C6DRAM power gating
> feature.
> 
> +  ///  - <b>1: Allocate PRMRR memory for C6DRAM power gating
> feature</b>.
> 
> +  ///
> 
> +  UINT32              EnableC6Dram            :  1;
> 
> +  UINT32              ResetAux                :  1; ///< <b>(Test)</b> Reset Auxiliary
> content, <b>0: Disabled</b>, 1: Enabled
> 
> +  UINT32              TxtAcheckRequest        :  1; ///< <b>(Test)</b>
> AcheckRequest <b>0: Disabled</b>, 1: Enabled. When Enabled, it will call
> Acheck regardless of crashcode value
> 
> +  UINT32              RsvdBits                : 24; ///< Reserved for future use
> 
> +} CPU_SECURITY_PREMEM_CONFIG;
> 
> +
> 
> +#pragma pack (pop)
> 
> +
> 
> +#endif // _CPU_SECURITY_CONFIG_H_
> 
> diff --git
> a/Silicon/Intel/TigerlakeSiliconPkg/Cpu/Include/ConfigBlock/CpuTestConfig.
> h
> b/Silicon/Intel/TigerlakeSiliconPkg/Cpu/Include/ConfigBlock/CpuTestConfig.
> h
> new file mode 100644
> index 0000000000..ee946290e0
> --- /dev/null
> +++
> b/Silicon/Intel/TigerlakeSiliconPkg/Cpu/Include/ConfigBlock/CpuTestConfig.
> h
> @@ -0,0 +1,51 @@
> +/** @file
> 
> +  CPU Test Config Block.
> 
> +
> 
> +  Copyright (c) 2021, Intel Corporation. All rights reserved.<BR>
> 
> +  SPDX-License-Identifier: BSD-2-Clause-Patent
> 
> +**/
> 
> +#ifndef _CPU_TEST_CONFIG_H_
> 
> +#define _CPU_TEST_CONFIG_H_
> 
> +
> 
> +#define CPU_TEST_CONFIG_REVISION 2
> 
> +
> 
> +extern EFI_GUID gCpuTestConfigGuid;
> 
> +
> 
> +#pragma pack (push,1)
> 
> +
> 
> +/**
> 
> +  CPU Test Configuration Structure.
> 
> +
> 
> +  <b>Revision 1</b>:
> 
> +  - Initial version.
> 
> +  <b>Revision 2</b>:
> 
> +  - Removed Voltage Optimization feature.
> 
> +**/
> 
> +typedef struct {
> 
> +  CONFIG_BLOCK_HEADER   Header;                   ///< Config Block Header
> 
> +  UINT32                MlcStreamerPrefetcher           : 1;     ///< Enable or Disable
> MLC Streamer Prefetcher; 0: Disable; <b>1: Enable</b>.
> 
> +  UINT32                MlcSpatialPrefetcher            : 1;     ///< Enable or Disable MLC
> Spatial Prefetcher; 0: Disable; <b>1: Enable</b>.
> 
> +  UINT32                MonitorMwaitEnable              : 1;     ///< Enable or Disable
> Monitor /MWAIT instructions; 0: Disable; <b>1: Enable</b>.
> 
> +  UINT32                MachineCheckEnable              : 1;     ///< Enable or Disable
> initialization of machine check registers; 0: Disable; <b>1: Enable</b>.
> 
> +  UINT32                ProcessorTraceOutputScheme      : 1;     ///< Control on
> Processor Trace output scheme; <b>0: Single Range Output</b>; 1: ToPA
> Output.
> 
> +  UINT32                ProcessorTraceEnable            : 1;     ///< Enable or Disable
> Processor Trace feature; <b>0: Disable</b>; 1: Enable.
> 
> +  UINT32                ThreeStrikeCounterDisable       : 1;     ///< Disable Three
> strike counter; <b>0: FALSE</b>; 1: TRUE.
> 
> +  UINT32                RsvdBits                        : 25;     ///< Reserved for future use
> 
> +  /**
> 
> +     Base address of memory region allocated for Processor Trace.
> 
> +     Processor Trace requires 2^N alignment and size in bytes per thread,
> from 4KB to 128MB.
> 
> +     - <b>NULL: Disable</b>
> 
> +  **/
> 
> +  EFI_PHYSICAL_ADDRESS  ProcessorTraceMemBase;
> 
> +  /**
> 
> +     Length in bytes of memory region allocated for Processor Trace.
> 
> +     Processor Trace requires 2^N alignment and size in bytes per thread,
> from 4KB to 128MB.
> 
> +     - <b>0: Disable</b>
> 
> +  **/
> 
> +  UINT32                ProcessorTraceMemLength;
> 
> +  UINT8                 Reserved0[4];
> 
> +} CPU_TEST_CONFIG;
> 
> +
> 
> +#pragma pack (pop)
> 
> +
> 
> +#endif // _CPU_TEST_CONFIG_H_
> 
> diff --git a/Silicon/Intel/TigerlakeSiliconPkg/Cpu/Include/CpuAccess.h
> b/Silicon/Intel/TigerlakeSiliconPkg/Cpu/Include/CpuAccess.h
> new file mode 100644
> index 0000000000..5d5e4df071
> --- /dev/null
> +++ b/Silicon/Intel/TigerlakeSiliconPkg/Cpu/Include/CpuAccess.h
> @@ -0,0 +1,12 @@
> +/** @file
> 
> +  Macros to simplify and abstract the interface to CPU configuration.
> 
> +
> 
> +  Copyright (c) 2021, Intel Corporation. All rights reserved.<BR>
> 
> +  SPDX-License-Identifier: BSD-2-Clause-Patent
> 
> +**/
> 
> +#ifndef _CPUACCESS_H_
> 
> +#define _CPUACCESS_H_
> 
> +
> 
> +#include "CpuDataStruct.h"
> 
> +
> 
> +#endif
> 
> diff --git a/Silicon/Intel/TigerlakeSiliconPkg/Cpu/Include/CpuDataStruct.h
> b/Silicon/Intel/TigerlakeSiliconPkg/Cpu/Include/CpuDataStruct.h
> new file mode 100644
> index 0000000000..ba9a840e54
> --- /dev/null
> +++ b/Silicon/Intel/TigerlakeSiliconPkg/Cpu/Include/CpuDataStruct.h
> @@ -0,0 +1,21 @@
> +/** @file
> 
> +  This file declares various data structures used in CPU reference code.
> 
> +
> 
> +  Copyright (c) 2021, Intel Corporation. All rights reserved.<BR>
> 
> +  SPDX-License-Identifier: BSD-2-Clause-Patent
> 
> +**/
> 
> +
> 
> +#ifndef _CPU_DATA_STRUCT_H
> 
> +#define _CPU_DATA_STRUCT_H
> 
> +
> 
> +///
> 
> +/// Structure to hold the return value of AsmCpuid instruction
> 
> +///
> 
> +typedef struct {
> 
> +  UINT32 RegEax; ///< Value of EAX.
> 
> +  UINT32 RegEbx; ///< Value of EBX.
> 
> +  UINT32 RegEcx; ///< Value of ECX.
> 
> +  UINT32 RegEdx; ///< Value of EDX.
> 
> +} EFI_CPUID_REGISTER;
> 
> +
> 
> +#endif
> 
> diff --git
> a/Silicon/Intel/TigerlakeSiliconPkg/Cpu/Include/CpuPolicyCommon.h
> b/Silicon/Intel/TigerlakeSiliconPkg/Cpu/Include/CpuPolicyCommon.h
> new file mode 100644
> index 0000000000..1178f68d0c
> --- /dev/null
> +++ b/Silicon/Intel/TigerlakeSiliconPkg/Cpu/Include/CpuPolicyCommon.h
> @@ -0,0 +1,23 @@
> +/** @file
> 
> +  CPU Policy Structure definition which will contain several config blocks
> during runtime.
> 
> +
> 
> +  Copyright (c) 2021, Intel Corporation. All rights reserved.<BR>
> 
> +  SPDX-License-Identifier: BSD-2-Clause-Patent
> 
> +**/
> 
> +#ifndef _CPU_POLICY_COMMON_H_
> 
> +#define _CPU_POLICY_COMMON_H_
> 
> +
> 
> +#include <ConfigBlock.h>
> 
> +#include <ConfigBlock/CpuConfig.h>
> 
> +#include <ConfigBlock/CpuPidTestConfig.h>
> 
> +#include <ConfigBlock/CpuPowerMgmtBasicConfig.h>
> 
> +#include <ConfigBlock/CpuPowerMgmtCustomConfig.h>
> 
> +#include <ConfigBlock/CpuPowerMgmtPsysConfig.h>
> 
> +#include <ConfigBlock/CpuPowerMgmtTestConfig.h>
> 
> +#include <ConfigBlock/VoltageRegulator/CpuPowerMgmtVrConfig.h>
> 
> +#include <ConfigBlock/CpuTestConfig.h>
> 
> +#include <ConfigBlock/CpuSecurityPreMemConfig.h>
> 
> +#include <ConfigBlock/CpuConfigLibPreMemConfig.h>
> 
> +#include <OverclockingConfig.h>
> 
> +
> 
> +#endif // _CPU_POLICY_COMMON_H_
> 
> diff --git
> a/Silicon/Intel/TigerlakeSiliconPkg/Cpu/Include/Register/CommonMsr.h
> b/Silicon/Intel/TigerlakeSiliconPkg/Cpu/Include/Register/CommonMsr.h
> new file mode 100644
> index 0000000000..a2cd1db1d6
> --- /dev/null
> +++ b/Silicon/Intel/TigerlakeSiliconPkg/Cpu/Include/Register/CommonMsr.h
> @@ -0,0 +1,18 @@
> +
> 
> +/** @file
> 
> +  CommonMsr.h
> 
> +
> 
> +  Copyright (c) 2021, Intel Corporation. All rights reserved.<BR>
> 
> +  SPDX-License-Identifier: BSD-2-Clause-Patent
> 
> +**/
> 
> +
> 
> +#ifndef _COMMONMSR_h
> 
> +#define _COMMONMSR_h
> 
> +#include <Base.h>
> 
> +
> 
> +/**
> 
> +  Special Chipset Usage MSR
> 
> +**/
> 
> +#define MSR_SPCL_CHIPSET_USAGE 0x000001FE
> 
> +
> 
> +#endif /* _COMMONMSR_h */
> 
> --
> 2.24.0.windows.2


  reply	other threads:[~2021-02-04  3:54 UTC|newest]

Thread overview: 81+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-02-01  1:36 [PATCH 01/40] TigerlakeSiliconPkg: Add package and Include/ConfigBlock headers Heng Luo
2021-02-01  1:36 ` [PATCH 02/40] TigerlakeSiliconPkg/Include: Add Library, PPI and Protocol include headers Heng Luo
2021-02-04  3:51   ` Nate DeSimone
2021-02-01  1:36 ` [PATCH 03/40] TigerlakeSiliconPkg/Include: Add Pins, Register and other " Heng Luo
2021-02-04  3:52   ` Nate DeSimone
2021-02-01  1:36 ` [PATCH 04/40] TigerlakeSiliconPkg/Cpu: Add Include headers Heng Luo
2021-02-04  3:53   ` Nate DeSimone [this message]
2021-02-01  1:36 ` [PATCH 05/40] TigerlakeSiliconPkg/Pch: Add include headers Heng Luo
2021-02-04  3:53   ` Nate DeSimone
2021-02-01  1:36 ` [PATCH 06/40] TigerlakeSiliconPkg/Pch: Add IncludePrivate headers Heng Luo
2021-02-04  3:53   ` Nate DeSimone
2021-02-01  1:36 ` [PATCH 07/40] TigerlakeSiliconPkg/SystemAgent: Add include headers Heng Luo
2021-02-04  3:53   ` Nate DeSimone
2021-02-01  1:36 ` [PATCH 08/40] TigerlakeSiliconPkg/SystemAgent: Add IncludePrivate headers Heng Luo
2021-02-04  3:53   ` Nate DeSimone
2021-02-01  1:36 ` [PATCH 09/40] TigerlakeSiliconPkg/Fru: Add TglCpu/Include headers Heng Luo
2021-02-04  3:53   ` Nate DeSimone
2021-02-01  1:36 ` [PATCH 10/40] TigerlakeSiliconPkg/Fru: Add TglCpu/IncludePrivate headers Heng Luo
2021-02-04  3:53   ` Nate DeSimone
2021-02-01  1:36 ` [PATCH 11/40] TigerlakeSiliconPkg/Fru: Add TglPch/Include headers Heng Luo
2021-02-04  3:53   ` Nate DeSimone
2021-02-01  1:36 ` [PATCH 12/40] TigerlakeSiliconPkg/Fru: Add TglPch/IncludePrivate headers Heng Luo
2021-02-04  3:53   ` Nate DeSimone
2021-02-01  1:36 ` [PATCH 13/40] TigerlakeSiliconPkg/IpBlock: Add Cnvi component Heng Luo
2021-02-04  3:53   ` Nate DeSimone
2021-02-01  1:36 ` [PATCH 14/40] TigerlakeSiliconPkg/IpBlock: Add CpuPcieRp component Heng Luo
2021-02-04  3:53   ` Nate DeSimone
2021-02-01  1:36 ` [PATCH 15/40] TigerlakeSiliconPkg/IpBlock: Add Espi component Heng Luo
2021-02-04  3:54   ` Nate DeSimone
2021-02-01  1:36 ` [PATCH 16/40] TigerlakeSiliconPkg/IpBlock: Add Gbe component Heng Luo
2021-02-04  3:54   ` Nate DeSimone
2021-02-01  1:36 ` [PATCH 17/40] TigerlakeSiliconPkg/IpBlock: Add Gpio component Heng Luo
2021-02-04  3:54   ` Nate DeSimone
2021-02-01  1:36 ` [PATCH 18/40] TigerlakeSiliconPkg/IpBlock: Add Graphics component Heng Luo
2021-02-04  3:54   ` Nate DeSimone
2021-02-01  1:36 ` [PATCH 19/40] TigerlakeSiliconPkg/IpBlock: Add Hda component Heng Luo
2021-02-04  3:54   ` Nate DeSimone
2021-02-01  1:36 ` [PATCH 20/40] TigerlakeSiliconPkg/IpBlock: Add HostBridge component Heng Luo
2021-02-04  3:54   ` Nate DeSimone
2021-02-01  1:36 ` [PATCH 21/40] TigerlakeSiliconPkg/IpBlock: Add P2sb component Heng Luo
2021-02-04  3:54   ` Nate DeSimone
2021-02-01  1:36 ` [PATCH 22/40] TigerlakeSiliconPkg/IpBlock: Add PchDmi component Heng Luo
2021-02-04  3:54   ` Nate DeSimone
2021-02-01  1:36 ` [PATCH 23/40] TigerlakeSiliconPkg/IpBlock: Add PcieRp component Heng Luo
2021-02-04  3:55   ` Nate DeSimone
2021-02-01  1:36 ` [PATCH 24/40] TigerlakeSiliconPkg/IpBlock: Add Pmc component Heng Luo
2021-02-04  3:56   ` Nate DeSimone
2021-02-01  1:36 ` [PATCH 25/40] TigerlakeSiliconPkg/IpBlock: Add Psf component Heng Luo
2021-02-04  3:56   ` Nate DeSimone
2021-02-01  1:36 ` [PATCH 26/40] TigerlakeSiliconPkg/IpBlock: Add Sata component Heng Luo
2021-02-04  3:56   ` Nate DeSimone
2021-02-01  1:36 ` [PATCH 27/40] TigerlakeSiliconPkg/IpBlock: Add SerialIo component Heng Luo
2021-02-04  3:56   ` Nate DeSimone
2021-02-01  1:36 ` [PATCH 28/40] TigerlakeSiliconPkg/IpBlock: Add Smbus component Heng Luo
2021-02-04  3:56   ` Nate DeSimone
2021-02-01  1:36 ` [PATCH 29/40] TigerlakeSiliconPkg/IpBlock: Add Spi component Heng Luo
2021-02-04  3:56   ` Nate DeSimone
2021-02-01  1:36 ` [PATCH 30/40] TigerlakeSiliconPkg/IpBlock: Add Vtd component Heng Luo
2021-02-04  3:56   ` Nate DeSimone
2021-02-01  1:36 ` [PATCH 31/40] TigerlakeSiliconPkg/Library: Add package common library instances Heng Luo
2021-02-04  3:56   ` Nate DeSimone
2021-02-01  1:36 ` [PATCH 32/40] TigerlakeSiliconPkg/Pch: Add Pch " Heng Luo
2021-02-04  3:56   ` Nate DeSimone
2021-02-01  1:36 ` [PATCH 33/40] TigerlakeSiliconPkg/Pch: Add Pch private " Heng Luo
2021-02-04  3:56   ` Nate DeSimone
2021-02-01  1:36 ` [PATCH 34/40] TigerlakeSiliconPkg/SystemAgent: Add Acpi Tables and " Heng Luo
2021-02-04  3:56   ` Nate DeSimone
2021-02-01  1:36 ` [PATCH 35/40] TigerlakeSiliconPkg/Fru/TglCpu: Add CpuPcieRp and Vtd " Heng Luo
2021-02-04  3:56   ` Nate DeSimone
2021-02-01  1:36 ` [PATCH 36/40] TigerlakeSiliconPkg/Pch: Add Pch modules Heng Luo
2021-02-04  3:56   ` Nate DeSimone
2021-02-01  1:36 ` [PATCH 37/40] TigerlakeSiliconPkg/SystemAgent: Add SystemAgent modules Heng Luo
2021-02-04  3:56   ` Nate DeSimone
2021-02-01  1:36 ` [PATCH 38/40] TigerlakeSiliconPkg/Fru: Add Fru DSC files Heng Luo
2021-02-04  3:56   ` Nate DeSimone
2021-02-01  1:36 ` [PATCH 39/40] TigerlakeSiliconPkg: Add package " Heng Luo
2021-02-04  3:56   ` Nate DeSimone
2021-02-01  1:36 ` [PATCH 40/40] Maintainers.txt: Add TigerlakeSiliconPkg maintainers Heng Luo
2021-02-04  3:51   ` Nate DeSimone
2021-02-04  8:24     ` Heng Luo
2021-02-04  3:51 ` [PATCH 01/40] TigerlakeSiliconPkg: Add package and Include/ConfigBlock headers Nate DeSimone

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-list from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=BN6PR1101MB214774158FDC9A786E07AF9BCDB39@BN6PR1101MB2147.namprd11.prod.outlook.com \
    --to=devel@edk2.groups.io \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox