/** @file
CPU Test Config Block.
Copyright (c) 2017, Intel Corporation. All rights reserved.
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.
Revision 1:
- Initial version.
Revision 2:
- Deprecated and moved Hyperthreading to CPU_CONFIG_LIB_PREMEM_CONFIG
- Deprecated and moved CpuRatioOverride to CPU_CONFIG_LIB_PREMEM_CONFIG
- Deprecated and moved CpuRatio to CPU_CONFIG_LIB_PREMEM_CONFIG
- Deprecated and moved ActiveCoreCount to CPU_CONFIG_LIB_PREMEM_CONFIG
- Deprecated and moved JtagC10PowerGateDisable to CPU_CONFIG_LIB_PREMEM_CONFIG
**/
typedef struct {
CONFIG_BLOCK_HEADER Header; ///< Config Block Header
UINT32 HyperThreading : 1; ///< Enable or Disable Hyper Threading; 0: Disable; 1: Enable.
/**
@deprecated since revision 2. Moved to CPU_CONFIG_LIB_PREMEM_CONFIG
Enable or disable override of default max non-turbo ratio. If enabled, BIOS will take the value specified in
CpuRatio policy and updates the max non-turbo ratio. See policy CpuRatio for more details.
- 0: Disable
- 1: Enable
**/
UINT32 CpuRatioOverride : 1; ///< @deprecated since revision 2. Moved to CPU_CONFIG_LIB_PREMEM_CONFIG
UINT32 MlcStreamerPrefetcher : 1; ///< Enable or Disable MLC Streamer Prefetcher; 0: Disable; 1: Enable.
UINT32 MlcSpatialPrefetcher : 1; ///< Enable or Disable MLC Spatial Prefetcher; 0: Disable; 1: Enable.
UINT32 MonitorMwaitEnable : 1; ///< Enable or Disable Monitor /MWAIT instructions; 0: Disable; 1: Enable.
UINT32 MachineCheckEnable : 1; ///< Enable or Disable initialization of machine check registers; 0: Disable; 1: Enable.
UINT32 DebugInterfaceEnable : 1; ///< Enable or Disable processor debug features; 0: Disable; 1: Enable.
UINT32 DebugInterfaceLockEnable : 1; ///< Lock or Unlock debug interface features; 0: Disable; 1: Enable.
/**
AP Idle Manner of waiting - Manner of which APs are waiting to be tasked by MP Services
- 1: HALT loop
- 2: MWAIT loop
- 3: Run loop
**/
UINT32 ApIdleManner : 2;
/**
Settings for AP Handoff to OS - Type of loop AP is placed in before handing control to OS.
- 1: HALT loop
- 2: MWAIT loop
**/
UINT32 ApHandoffManner : 2;
/**
@deprecated since revision 2. Moved to CPU_CONFIG_LIB_PREMEM_CONFIG
Number of processor cores to enable.
- 0: All cores
- 1: 1 core
- 2: 2 cores
- 3: 3 cores
**/
UINT32 ActiveCoreCount : 3; ///< @deprecated since revision 2. Moved to CPU_CONFIG_LIB_PREMEM_CONFIG
UINT32 JtagC10PowerGateDisable : 1; ///< Power JTAG in C10 and deeper power states; 0: Disable; 1: Enable.
UINT32 ProcTraceOutputScheme : 1; ///< Control on Processor Trace output scheme; 0: Single Range Output; 1: ToPA Output.
UINT32 ProcTraceEnable : 1; ///< Enable or Disable Processor Trace feature; 0: Disable; 1: Enable.
/**
Memory region allocation for Processor Trace.
Total memory required is equal to the requested value * 2 (for memory alignment) * number of active processor threads.
Based on MEMORY_CONFIG_NO_CRC.PlatformMemorySize default, up to 2MB policy setting with up to 8 active threads is supported (32MB memory total).
For larger size requests, MEMORY_CONFIG_NO_CRC.PlatformMemorySize needs to be increased.
- 0: 4K
- 1: 8K
- 2: 16K
- 3: 32K
- 4: 64K
- 5: 128K
- 6: 256K
- 7: 512K
- 8: 1M
- 9: 2M
- 10: 4M
- 11: 8M
- 12: 16M
- 13: 32M
- 14: 64M
- 15: 128M
- 255: Disable
**/
UINT32 ProcTraceMemSize : 8;
UINT32 ThreeStrikeCounterDisable : 1; ///< Disable Three strike counter; 0: FALSE; 1: TRUE.
/**
This policy should be used to enable or disable Voltage Optimization feature.
Recommended defaults:
Enable - For Mobile SKUs(U/Y)
Disable - Rest of all SKUs other than Mobile.
**/
UINT32 VoltageOptimization : 1;
UINT32 RsvdBits : 4; ///< Reserved for future use
/**
@deprecated since revision 2. Moved to CPU_CONFIG_LIB_PREMEM_CONFIG
CpuRatio - When CpuRatioOverride is enabled, max non-turbo ratio (Flexible Ratio Boot) is set to CpuRatio.
**/
UINT8 CpuRatio;
UINT8 Rsvd[3]; ///< Reserved for future use
} CPU_TEST_CONFIG;
#pragma pack (pop)
#endif // _CPU_TEST_CONFIG_H_