/** @file CPU PreMemory Config Block. Copyright (c) 2017, Intel Corporation. All rights reserved.
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 2 extern EFI_GUID gCpuConfigLibPreMemConfigGuid; #pragma pack (push,1) /** CPU Config Library PreMemory Configuration Structure. Revision 1: - Initial version. Revision 2: - Added PeciC10Reset. - Added PeciSxReset. **/ typedef struct { CONFIG_BLOCK_HEADER Header; ///< Config Block Header UINT32 HyperThreading : 1; ///< Enable or Disable Hyper Threading; 0: Disable; 1: Enable. /** 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. If disabled, BIOS will use the default max non-turbo ratio, and will not use any flex ratio setting. - 0: Disable - 1: Enable **/ UINT32 CpuRatioOverride : 1; /** Sets the boot frequency starting from reset vector. - 0: Maximum battery performance. - 1: Maximum non-turbo performance. - 2: Turbo performance. @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. - 0: All cores - 1: 1 core - 2: 2 cores - 3: 3 cores **/ UINT32 ActiveCoreCount : 3; /** Processor Early Power On Configuration FCLK setting. - 0: 800 MHz (ULT/ULX). - 1: 1 GHz (DT/Halo). Not supported on ULT/ULX. - 2: 400 MHz. - 3: Reserved. **/ UINT32 FClkFrequency : 2; UINT32 JtagC10PowerGateDisable : 1; ///< Power JTAG in C10 and deeper power states; 0: Disable; 1: Enable. UINT32 BistOnReset : 1; ///< (Test) Enable or Disable BIST on Reset; 0: Disable; 1: Enable. /** Enable or Disable Virtual Machine Extensions (VMX) feature. - 0: Disable - 1: Enable **/ UINT32 VmxEnable : 1; /** Enables a mailbox command to resolve rare PECI related Sx issues. @note This should only be used on systems that observe PECI Sx issues. - 0: Disable - 1: Enable **/ UINT32 PeciSxReset : 1; /** Enables a mailbox command to resolve rare PECI related C10 issues. @note This should only be used on systems that observe PECI C10 issues. - 0: Disable - 1: Enable **/ UINT32 PeciC10Reset : 1; UINT32 RsvdBits : 18; /** CpuRatio - When CpuRatioOverride is enabled, max non-turbo ratio (Flexible Ratio Boot) is set to CpuRatio. **/ UINT8 CpuRatio; UINT8 Reserved[3]; ///< Reserved for alignment } CPU_CONFIG_LIB_PREMEM_CONFIG; #pragma pack (pop) #endif // _CPU_CONFIG_LIB_PREMEM_CONFIG_H_