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
2147#define CPUID_EXTENDED_STATE_SIZE_OFFSET 0x02
2187#define CPUID_INTEL_RDT_MONITORING 0x0F
2214#define CPUID_INTEL_RDT_MONITORING_ENUMERATION_SUB_LEAF 0x00
2263#define CPUID_INTEL_RDT_MONITORING_L3_CACHE_SUB_LEAF 0x01
2303#define CPUID_INTEL_RDT_ALLOCATION 0x10
2327#define CPUID_INTEL_RDT_ALLOCATION_ENUMERATION_SUB_LEAF 0x00
2387#define CPUID_INTEL_RDT_ALLOCATION_L3_CACHE_SUB_LEAF 0x01
2482#define CPUID_INTEL_RDT_ALLOCATION_L2_CACHE_SUB_LEAF 0x02
2560#define CPUID_INTEL_RDT_ALLOCATION_MEMORY_BANDWIDTH_SUB_LEAF 0x03
2648#define CPUID_INTEL_SGX 0x12
2677#define CPUID_INTEL_SGX_CAPABILITIES_0_SUB_LEAF 0x00
2776#define CPUID_INTEL_SGX_CAPABILITIES_1_SUB_LEAF 0x01
2811#define CPUID_INTEL_SGX_CAPABILITIES_RESOURCES_SUB_LEAF 0x02
2924#define CPUID_INTEL_PROCESSOR_TRACE 0x14
2951#define CPUID_INTEL_PROCESSOR_TRACE_MAIN_LEAF 0x00
3077#define CPUID_INTEL_PROCESSOR_TRACE_SUB_LEAF 0x01
3159#define CPUID_TIME_STAMP_COUNTER 0x15
3194#define CPUID_PROCESSOR_FREQUENCY 0x16
3275#define CPUID_SOC_VENDOR 0x17
3305#define CPUID_SOC_VENDOR_MAIN_LEAF 0x00
3362#define CPUID_SOC_VENDOR_BRAND_STRING1 0x01
3407#define CPUID_SOC_VENDOR_BRAND_STRING2 0x02
3437#define CPUID_SOC_VENDOR_BRAND_STRING3 0x03
3462#define CPUID_DETERMINISTIC_ADDRESS_TRANSLATION_PARAMETERS 0x18
3491#define CPUID_DETERMINISTIC_ADDRESS_TRANSLATION_PARAMETERS_MAIN_LEAF 0x00
3584#define CPUID_DETERMINISTIC_ADDRESS_TRANSLATION_PARAMETERS_TRANSLATION_CACHE_TYPE_INVALID 0x00
3585#define CPUID_DETERMINISTIC_ADDRESS_TRANSLATION_PARAMETERS_TRANSLATION_CACHE_TYPE_DATA_TLB 0x01
3586#define CPUID_DETERMINISTIC_ADDRESS_TRANSLATION_PARAMETERS_TRANSLATION_CACHE_TYPE_INSTRUCTION_TLB 0x02
3587#define CPUID_DETERMINISTIC_ADDRESS_TRANSLATION_PARAMETERS_TRANSLATION_CACHE_TYPE_UNIFIED_TLB 0x03
3616#define CPUID_HYBRID_INFORMATION 0x1A
3621#define CPUID_HYBRID_INFORMATION_MAIN_LEAF 0x00
3655#define CPUID_CORE_TYPE_INTEL_ATOM 0x20
3656#define CPUID_CORE_TYPE_INTEL_CORE 0x40
3685#define CPUID_V2_EXTENDED_TOPOLOGY 0x1F
3692#define CPUID_V2_EXTENDED_TOPOLOGY_LEVEL_TYPE_MODULE 0x03
3693#define CPUID_V2_EXTENDED_TOPOLOGY_LEVEL_TYPE_TILE 0x04
3694#define CPUID_V2_EXTENDED_TOPOLOGY_LEVEL_TYPE_DIE 0x05
3716#define CPUID_GUESTTD_RUNTIME_ENVIRONMENT 0x21
3721#define CPUID_GUESTTD_SIGNATURE_GENUINE_INTEL_EBX SIGNATURE_32 ('I', 'n', 't', 'e')
3722#define CPUID_GUESTTD_SIGNATURE_GENUINE_INTEL_ECX SIGNATURE_32 (' ', ' ', ' ', ' ')
3723#define CPUID_GUESTTD_SIGNATURE_GENUINE_INTEL_EDX SIGNATURE_32 ('l', 'T', 'D', 'X')
3745#define CPUID_EXTENDED_FUNCTION 0x80000000
3768#define CPUID_EXTENDED_CPU_SIG 0x80000001
3862#define CPUID_BRAND_STRING1 0x80000002
3899#define CPUID_BRAND_STRING2 0x80000003
3921#define CPUID_BRAND_STRING3 0x80000004
3941#define CPUID_EXTENDED_CACHE_INFO 0x80000006
3976#define CPUID_EXTENDED_CACHE_INFO_ECX_L2_ASSOCIATIVITY_DISABLED 0x00
3977#define CPUID_EXTENDED_CACHE_INFO_ECX_L2_ASSOCIATIVITY_DIRECT_MAPPED 0x01
3978#define CPUID_EXTENDED_CACHE_INFO_ECX_L2_ASSOCIATIVITY_2_WAY 0x02
3979#define CPUID_EXTENDED_CACHE_INFO_ECX_L2_ASSOCIATIVITY_4_WAY 0x04
3980#define CPUID_EXTENDED_CACHE_INFO_ECX_L2_ASSOCIATIVITY_8_WAY 0x06
3981#define CPUID_EXTENDED_CACHE_INFO_ECX_L2_ASSOCIATIVITY_16_WAY 0x08
3982#define CPUID_EXTENDED_CACHE_INFO_ECX_L2_ASSOCIATIVITY_32_WAY 0x0A
3983#define CPUID_EXTENDED_CACHE_INFO_ECX_L2_ASSOCIATIVITY_48_WAY 0x0B
3984#define CPUID_EXTENDED_CACHE_INFO_ECX_L2_ASSOCIATIVITY_64_WAY 0x0C
3985#define CPUID_EXTENDED_CACHE_INFO_ECX_L2_ASSOCIATIVITY_96_WAY 0x0D
3986#define CPUID_EXTENDED_CACHE_INFO_ECX_L2_ASSOCIATIVITY_128_WAY 0x0E
3987#define CPUID_EXTENDED_CACHE_INFO_ECX_L2_ASSOCIATIVITY_FULL 0x0F
4010#define CPUID_EXTENDED_TIME_STAMP_COUNTER 0x80000007
4052#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