20#ifndef __INTEL_CPUID_H__
21#define __INTEL_CPUID_H__
45#define CPUID_SIGNATURE 0x00
50#define CPUID_SIGNATURE_GENUINE_INTEL_EBX SIGNATURE_32 ('G', 'e', 'n', 'u')
51#define CPUID_SIGNATURE_GENUINE_INTEL_EDX SIGNATURE_32 ('i', 'n', 'e', 'I')
52#define CPUID_SIGNATURE_GENUINE_INTEL_ECX SIGNATURE_32 ('n', 't', 'e', 'l')
81#define CPUID_VERSION_INFO 0x01
110#define CPUID_VERSION_INFO_EAX_PROCESSOR_TYPE_ORIGINAL_OEM_PROCESSOR 0x00
111#define CPUID_VERSION_INFO_EAX_PROCESSOR_TYPE_INTEL_OVERDRIVE_PROCESSOR 0x01
112#define CPUID_VERSION_INFO_EAX_PROCESSOR_TYPE_DUAL_PROCESSOR 0x02
710#define CPUID_CACHE_INFO 0x02
764#define CPUID_SERIAL_NUMBER 0x03
802#define CPUID_CACHE_PARAMS 0x04
866#define CPUID_CACHE_PARAMS_CACHE_TYPE_NULL 0x00
867#define CPUID_CACHE_PARAMS_CACHE_TYPE_DATA 0x01
868#define CPUID_CACHE_PARAMS_CACHE_TYPE_INSTRUCTION 0x02
869#define CPUID_CACHE_PARAMS_CACHE_TYPE_UNIFIED 0x03
967#define CPUID_MONITOR_MWAIT 0x05
1114#define CPUID_THERMAL_POWER_MANAGEMENT 0x06
1301#define CPUID_STRUCTURED_EXTENDED_FEATURE_FLAGS 0x07
1306#define CPUID_STRUCTURED_EXTENDED_FEATURE_FLAGS_SUB_LEAF_INFO 0x00
1623#define CPUID_DIRECT_CACHE_ACCESS_INFO 0x09
1647#define CPUID_ARCHITECTURAL_PERFORMANCE_MONITORING 0x0A
1815#define CPUID_EXTENDED_TOPOLOGY 0x0B
1902#define CPUID_EXTENDED_TOPOLOGY_LEVEL_TYPE_INVALID 0x00
1903#define CPUID_EXTENDED_TOPOLOGY_LEVEL_TYPE_SMT 0x01
1904#define CPUID_EXTENDED_TOPOLOGY_LEVEL_TYPE_CORE 0x02
1918#define CPUID_EXTENDED_STATE 0x0D
1953#define CPUID_EXTENDED_STATE_MAIN_LEAF 0x00
2033#define CPUID_EXTENDED_STATE_SUB_LEAF 0x01
2174#define CPUID_EXTENDED_STATE_SIZE_OFFSET 0x02
2214#define CPUID_INTEL_RDT_MONITORING 0x0F
2241#define CPUID_INTEL_RDT_MONITORING_ENUMERATION_SUB_LEAF 0x00
2290#define CPUID_INTEL_RDT_MONITORING_L3_CACHE_SUB_LEAF 0x01
2330#define CPUID_INTEL_RDT_ALLOCATION 0x10
2354#define CPUID_INTEL_RDT_ALLOCATION_ENUMERATION_SUB_LEAF 0x00
2414#define CPUID_INTEL_RDT_ALLOCATION_L3_CACHE_SUB_LEAF 0x01
2509#define CPUID_INTEL_RDT_ALLOCATION_L2_CACHE_SUB_LEAF 0x02
2587#define CPUID_INTEL_RDT_ALLOCATION_MEMORY_BANDWIDTH_SUB_LEAF 0x03
2675#define CPUID_INTEL_SGX 0x12
2704#define CPUID_INTEL_SGX_CAPABILITIES_0_SUB_LEAF 0x00
2803#define CPUID_INTEL_SGX_CAPABILITIES_1_SUB_LEAF 0x01
2838#define CPUID_INTEL_SGX_CAPABILITIES_RESOURCES_SUB_LEAF 0x02
2951#define CPUID_INTEL_PROCESSOR_TRACE 0x14
2978#define CPUID_INTEL_PROCESSOR_TRACE_MAIN_LEAF 0x00
3104#define CPUID_INTEL_PROCESSOR_TRACE_SUB_LEAF 0x01
3186#define CPUID_TIME_STAMP_COUNTER 0x15
3221#define CPUID_PROCESSOR_FREQUENCY 0x16
3302#define CPUID_SOC_VENDOR 0x17
3332#define CPUID_SOC_VENDOR_MAIN_LEAF 0x00
3389#define CPUID_SOC_VENDOR_BRAND_STRING1 0x01
3434#define CPUID_SOC_VENDOR_BRAND_STRING2 0x02
3464#define CPUID_SOC_VENDOR_BRAND_STRING3 0x03
3489#define CPUID_DETERMINISTIC_ADDRESS_TRANSLATION_PARAMETERS 0x18
3518#define CPUID_DETERMINISTIC_ADDRESS_TRANSLATION_PARAMETERS_MAIN_LEAF 0x00
3611#define CPUID_DETERMINISTIC_ADDRESS_TRANSLATION_PARAMETERS_TRANSLATION_CACHE_TYPE_INVALID 0x00
3612#define CPUID_DETERMINISTIC_ADDRESS_TRANSLATION_PARAMETERS_TRANSLATION_CACHE_TYPE_DATA_TLB 0x01
3613#define CPUID_DETERMINISTIC_ADDRESS_TRANSLATION_PARAMETERS_TRANSLATION_CACHE_TYPE_INSTRUCTION_TLB 0x02
3614#define CPUID_DETERMINISTIC_ADDRESS_TRANSLATION_PARAMETERS_TRANSLATION_CACHE_TYPE_UNIFIED_TLB 0x03
3643#define CPUID_HYBRID_INFORMATION 0x1A
3648#define CPUID_HYBRID_INFORMATION_MAIN_LEAF 0x00
3682#define CPUID_CORE_TYPE_INTEL_ATOM 0x20
3683#define CPUID_CORE_TYPE_INTEL_CORE 0x40
3712#define CPUID_V2_EXTENDED_TOPOLOGY 0x1F
3719#define CPUID_V2_EXTENDED_TOPOLOGY_LEVEL_TYPE_MODULE 0x03
3720#define CPUID_V2_EXTENDED_TOPOLOGY_LEVEL_TYPE_TILE 0x04
3721#define CPUID_V2_EXTENDED_TOPOLOGY_LEVEL_TYPE_DIE 0x05
3743#define CPUID_GUESTTD_RUNTIME_ENVIRONMENT 0x21
3748#define CPUID_GUESTTD_SIGNATURE_GENUINE_INTEL_EBX SIGNATURE_32 ('I', 'n', 't', 'e')
3749#define CPUID_GUESTTD_SIGNATURE_GENUINE_INTEL_ECX SIGNATURE_32 (' ', ' ', ' ', ' ')
3750#define CPUID_GUESTTD_SIGNATURE_GENUINE_INTEL_EDX SIGNATURE_32 ('l', 'T', 'D', 'X')
3772#define CPUID_EXTENDED_FUNCTION 0x80000000
3795#define CPUID_EXTENDED_CPU_SIG 0x80000001
3889#define CPUID_BRAND_STRING1 0x80000002
3926#define CPUID_BRAND_STRING2 0x80000003
3948#define CPUID_BRAND_STRING3 0x80000004
3968#define CPUID_EXTENDED_CACHE_INFO 0x80000006
4003#define CPUID_EXTENDED_CACHE_INFO_ECX_L2_ASSOCIATIVITY_DISABLED 0x00
4004#define CPUID_EXTENDED_CACHE_INFO_ECX_L2_ASSOCIATIVITY_DIRECT_MAPPED 0x01
4005#define CPUID_EXTENDED_CACHE_INFO_ECX_L2_ASSOCIATIVITY_2_WAY 0x02
4006#define CPUID_EXTENDED_CACHE_INFO_ECX_L2_ASSOCIATIVITY_4_WAY 0x04
4007#define CPUID_EXTENDED_CACHE_INFO_ECX_L2_ASSOCIATIVITY_8_WAY 0x06
4008#define CPUID_EXTENDED_CACHE_INFO_ECX_L2_ASSOCIATIVITY_16_WAY 0x08
4009#define CPUID_EXTENDED_CACHE_INFO_ECX_L2_ASSOCIATIVITY_32_WAY 0x0A
4010#define CPUID_EXTENDED_CACHE_INFO_ECX_L2_ASSOCIATIVITY_48_WAY 0x0B
4011#define CPUID_EXTENDED_CACHE_INFO_ECX_L2_ASSOCIATIVITY_64_WAY 0x0C
4012#define CPUID_EXTENDED_CACHE_INFO_ECX_L2_ASSOCIATIVITY_96_WAY 0x0D
4013#define CPUID_EXTENDED_CACHE_INFO_ECX_L2_ASSOCIATIVITY_128_WAY 0x0E
4014#define CPUID_EXTENDED_CACHE_INFO_ECX_L2_ASSOCIATIVITY_FULL 0x0F
4037#define CPUID_EXTENDED_TIME_STAMP_COUNTER 0x80000007
4079#define CPUID_VIR_PHY_ADDRESS_SIZE 0x80000008
UINT32 SelfInitializingCache
UINT32 MaximumAddressableIdsForLogicalProcessors
UINT32 FullyAssociativeCache
UINT32 MaximumAddressableIdsForProcessorCores
UINT32 CacheInclusiveness
UINT32 ComplexCacheIndexing
UINT32 TranslationCacheType
UINT32 TranslationCacheLevel
UINT32 IpTraceStopFiltering
UINT32 TraceTransportSubsystem
UINT32 ConfigurableAddressRanges
UINT32 MtcPeriodEncodings
UINT32 PsbFrequencyEncodings
UINT32 CycleThresholdEncodings
UINT32 CodeDataPrioritization
UINT32 MaximumMBAThrottling
UINT32 L3CacheTotalBandwidthMonitoring
UINT32 L3CacheLocalBandwidthMonitoring
UINT32 L3CacheOccupancyMonitoring
UINT32 MaxEnclaveSize_Not64
UINT32 LowAddressOfEpcSection
UINT32 HighAddressOfEpcSection
UINT32 LowSizeOfEpcSection
UINT32 HighSizeOfEpcSection
UINT32 SmallestMonitorLineSize
UINT32 LargestMonitorLineSize
UINT32 ExtensionsSupported
UINT32 ProcessorBaseFrequency
UINT32 IntelProcessorTrace
UINT32 EnhancedRepMovsbStosb
UINT32 EnumeratesSupportForSTIBP
UINT32 EnumeratesSupportForIBRSAndIBPB
UINT32 EnumeratesSupportForCapability
UINT32 EnumeratesSupportForL1D_FLUSH
UINT32 EnumeratesSupportForCoreCapabilitiesMsr
UINT32 EnumeratesSupportForSSBD
UINT32 DigitalTemperatureSensor
UINT32 TurboBoostMaxTechnology30
UINT32 HWP_Package_Level_Request
UINT32 TurboBoostTechnology
UINT32 HWP_Activity_Window
UINT32 HWP_Energy_Performance_Preference
UINT32 IgnoringIdleLogicalProcessorHWPRequest
UINT32 InterruptThresholds
UINT32 PerformanceEnergyBias
UINT32 HardwareCoordinationFeedback
UINT32 Reserved1
[Bits 15:14] Reserved
UINT32 ProcessorType
[Bits 13:12] Processor Type
UINT32 Reserved2
Reserved.
UINT32 ExtendedModelId
[Bits 19:16] Extended Model ID
UINT32 FamilyId
[Bits 11:8] Family
UINT32 Model
[Bits 7:4] Model
UINT32 SteppingId
[Bits 3:0] Stepping ID
UINT32 ExtendedFamilyId
[Bits 27:20] Extended Family ID
UINT32 MaximumAddressableIdsForLogicalProcessors
UINT32 InitialLocalApicId
UINT32 xTPR_Update_Control
UINT32 PhysicalAddressBits