xref: /linux/tools/arch/x86/kcpuid/cpuid.csv (revision 06a130e42a5bfc84795464bff023bff4c16f58c5)
1# SPDX-License-Identifier: CC0-1.0
2# Generator: x86-cpuid-db v1.0
3
4#
5# Auto-generated file.
6# Please submit all updates and bugfixes to https://x86-cpuid.org
7#
8
9# The basic row format is:
10#     LEAF, SUBLEAVES,  reg,    bits,    short_name             , long_description
11
12# Leaf 0H
13# Maximum standard leaf number + CPU vendor string
14
15         0,         0,  eax,    31:0,    max_std_leaf           , Highest cpuid standard leaf supported
16         0,         0,  ebx,    31:0,    cpu_vendorid_0         , CPU vendor ID string bytes 0 - 3
17         0,         0,  ecx,    31:0,    cpu_vendorid_2         , CPU vendor ID string bytes 8 - 11
18         0,         0,  edx,    31:0,    cpu_vendorid_1         , CPU vendor ID string bytes 4 - 7
19
20# Leaf 1H
21# CPU FMS (Family/Model/Stepping) + standard feature flags
22
23         1,         0,  eax,     3:0,    stepping               , Stepping ID
24         1,         0,  eax,     7:4,    base_model             , Base CPU model ID
25         1,         0,  eax,    11:8,    base_family_id         , Base CPU family ID
26         1,         0,  eax,   13:12,    cpu_type               , CPU type
27         1,         0,  eax,   19:16,    ext_model              , Extended CPU model ID
28         1,         0,  eax,   27:20,    ext_family             , Extended CPU family ID
29         1,         0,  ebx,     7:0,    brand_id               , Brand index
30         1,         0,  ebx,    15:8,    clflush_size           , CLFLUSH instruction cache line size
31         1,         0,  ebx,   23:16,    n_logical_cpu          , Logical CPU (HW threads) count
32         1,         0,  ebx,   31:24,    local_apic_id          , Initial local APIC physical ID
33         1,         0,  ecx,       0,    pni                    , Streaming SIMD Extensions 3 (SSE3)
34         1,         0,  ecx,       1,    pclmulqdq              , PCLMULQDQ instruction support
35         1,         0,  ecx,       2,    dtes64                 , 64-bit DS save area
36         1,         0,  ecx,       3,    monitor                , MONITOR/MWAIT support
37         1,         0,  ecx,       4,    ds_cpl                 , CPL Qualified Debug Store
38         1,         0,  ecx,       5,    vmx                    , Virtual Machine Extensions
39         1,         0,  ecx,       6,    smx                    , Safer Mode Extensions
40         1,         0,  ecx,       7,    est                    , Enhanced Intel SpeedStep
41         1,         0,  ecx,       8,    tm2                    , Thermal Monitor 2
42         1,         0,  ecx,       9,    ssse3                  , Supplemental SSE3
43         1,         0,  ecx,      10,    cid                    , L1 Context ID
44         1,         0,  ecx,      11,    sdbg                   , Sillicon Debug
45         1,         0,  ecx,      12,    fma                    , FMA extensions using YMM state
46         1,         0,  ecx,      13,    cx16                   , CMPXCHG16B instruction support
47         1,         0,  ecx,      14,    xtpr                   , xTPR Update Control
48         1,         0,  ecx,      15,    pdcm                   , Perfmon and Debug Capability
49         1,         0,  ecx,      17,    pcid                   , Process-context identifiers
50         1,         0,  ecx,      18,    dca                    , Direct Cache Access
51         1,         0,  ecx,      19,    sse4_1                 , SSE4.1
52         1,         0,  ecx,      20,    sse4_2                 , SSE4.2
53         1,         0,  ecx,      21,    x2apic                 , X2APIC support
54         1,         0,  ecx,      22,    movbe                  , MOVBE instruction support
55         1,         0,  ecx,      23,    popcnt                 , POPCNT instruction support
56         1,         0,  ecx,      24,    tsc_deadline_timer     , APIC timer one-shot operation
57         1,         0,  ecx,      25,    aes                    , AES instructions
58         1,         0,  ecx,      26,    xsave                  , XSAVE (and related instructions) support
59         1,         0,  ecx,      27,    osxsave                , XSAVE (and related instructions) are enabled by OS
60         1,         0,  ecx,      28,    avx                    , AVX instructions support
61         1,         0,  ecx,      29,    f16c                   , Half-precision floating-point conversion support
62         1,         0,  ecx,      30,    rdrand                 , RDRAND instruction support
63         1,         0,  ecx,      31,    guest_status           , System is running as guest; (para-)virtualized system
64         1,         0,  edx,       0,    fpu                    , Floating-Point Unit on-chip (x87)
65         1,         0,  edx,       1,    vme                    , Virtual-8086 Mode Extensions
66         1,         0,  edx,       2,    de                     , Debugging Extensions
67         1,         0,  edx,       3,    pse                    , Page Size Extension
68         1,         0,  edx,       4,    tsc                    , Time Stamp Counter
69         1,         0,  edx,       5,    msr                    , Model-Specific Registers (RDMSR and WRMSR support)
70         1,         0,  edx,       6,    pae                    , Physical Address Extensions
71         1,         0,  edx,       7,    mce                    , Machine Check Exception
72         1,         0,  edx,       8,    cx8                    , CMPXCHG8B instruction
73         1,         0,  edx,       9,    apic                   , APIC on-chip
74         1,         0,  edx,      11,    sep                    , SYSENTER, SYSEXIT, and associated MSRs
75         1,         0,  edx,      12,    mtrr                   , Memory Type Range Registers
76         1,         0,  edx,      13,    pge                    , Page Global Extensions
77         1,         0,  edx,      14,    mca                    , Machine Check Architecture
78         1,         0,  edx,      15,    cmov                   , Conditional Move Instruction
79         1,         0,  edx,      16,    pat                    , Page Attribute Table
80         1,         0,  edx,      17,    pse36                  , Page Size Extension (36-bit)
81         1,         0,  edx,      18,    pn                     , Processor Serial Number
82         1,         0,  edx,      19,    clflush                , CLFLUSH instruction
83         1,         0,  edx,      21,    dts                    , Debug Store
84         1,         0,  edx,      22,    acpi                   , Thermal monitor and clock control
85         1,         0,  edx,      23,    mmx                    , MMX instructions
86         1,         0,  edx,      24,    fxsr                   , FXSAVE and FXRSTOR instructions
87         1,         0,  edx,      25,    sse                    , SSE instructions
88         1,         0,  edx,      26,    sse2                   , SSE2 instructions
89         1,         0,  edx,      27,    ss                     , Self Snoop
90         1,         0,  edx,      28,    ht                     , Hyper-threading
91         1,         0,  edx,      29,    tm                     , Thermal Monitor
92         1,         0,  edx,      30,    ia64                   , Legacy IA-64 (Itanium) support bit, now resreved
93         1,         0,  edx,      31,    pbe                    , Pending Break Enable
94
95# Leaf 2H
96# Intel cache and TLB information one-byte descriptors
97
98         2,         0,  eax,     7:0,    iteration_count        , Number of times this CPUD leaf must be queried
99         2,         0,  eax,    15:8,    desc1                  , Descriptor #1
100         2,         0,  eax,   23:16,    desc2                  , Descriptor #2
101         2,         0,  eax,   30:24,    desc3                  , Descriptor #3
102         2,         0,  eax,      31,    eax_invalid            , Descriptors 1-3 are invalid if set
103         2,         0,  ebx,     7:0,    desc4                  , Descriptor #4
104         2,         0,  ebx,    15:8,    desc5                  , Descriptor #5
105         2,         0,  ebx,   23:16,    desc6                  , Descriptor #6
106         2,         0,  ebx,   30:24,    desc7                  , Descriptor #7
107         2,         0,  ebx,      31,    ebx_invalid            , Descriptors 4-7 are invalid if set
108         2,         0,  ecx,     7:0,    desc8                  , Descriptor #8
109         2,         0,  ecx,    15:8,    desc9                  , Descriptor #9
110         2,         0,  ecx,   23:16,    desc10                 , Descriptor #10
111         2,         0,  ecx,   30:24,    desc11                 , Descriptor #11
112         2,         0,  ecx,      31,    ecx_invalid            , Descriptors 8-11 are invalid if set
113         2,         0,  edx,     7:0,    desc12                 , Descriptor #12
114         2,         0,  edx,    15:8,    desc13                 , Descriptor #13
115         2,         0,  edx,   23:16,    desc14                 , Descriptor #14
116         2,         0,  edx,   30:24,    desc15                 , Descriptor #15
117         2,         0,  edx,      31,    edx_invalid            , Descriptors 12-15 are invalid if set
118
119# Leaf 4H
120# Intel deterministic cache parameters
121
122         4,      31:0,  eax,     4:0,    cache_type             , Cache type field
123         4,      31:0,  eax,     7:5,    cache_level            , Cache level (1-based)
124         4,      31:0,  eax,       8,    cache_self_init        , Self-initialializing cache level
125         4,      31:0,  eax,       9,    fully_associative      , Fully-associative cache
126         4,      31:0,  eax,   25:14,    num_threads_sharing    , Number logical CPUs sharing this cache
127         4,      31:0,  eax,   31:26,    num_cores_on_die       , Number of cores in the physical package
128         4,      31:0,  ebx,    11:0,    cache_linesize         , System coherency line size (0-based)
129         4,      31:0,  ebx,   21:12,    cache_npartitions      , Physical line partitions (0-based)
130         4,      31:0,  ebx,   31:22,    cache_nways            , Ways of associativity (0-based)
131         4,      31:0,  ecx,    30:0,    cache_nsets            , Cache number of sets (0-based)
132         4,      31:0,  edx,       0,    wbinvd_rll_no_guarantee, WBINVD/INVD not guaranteed for Remote Lower-Level caches
133         4,      31:0,  edx,       1,    ll_inclusive           , Cache is inclusive of Lower-Level caches
134         4,      31:0,  edx,       2,    complex_indexing       , Not a direct-mapped cache (complex function)
135
136# Leaf 5H
137# MONITOR/MWAIT instructions enumeration
138
139         5,         0,  eax,    15:0,    min_mon_size           , Smallest monitor-line size, in bytes
140         5,         0,  ebx,    15:0,    max_mon_size           , Largest monitor-line size, in bytes
141         5,         0,  ecx,       0,    mwait_ext              , Enumeration of MONITOR/MWAIT extensions is supported
142         5,         0,  ecx,       1,    mwait_irq_break        , Interrupts as a break-event for MWAIT is supported
143         5,         0,  edx,     3:0,    n_c0_substates         , Number of C0 sub C-states supported using MWAIT
144         5,         0,  edx,     7:4,    n_c1_substates         , Number of C1 sub C-states supported using MWAIT
145         5,         0,  edx,    11:8,    n_c2_substates         , Number of C2 sub C-states supported using MWAIT
146         5,         0,  edx,   15:12,    n_c3_substates         , Number of C3 sub C-states supported using MWAIT
147         5,         0,  edx,   19:16,    n_c4_substates         , Number of C4 sub C-states supported using MWAIT
148         5,         0,  edx,   23:20,    n_c5_substates         , Number of C5 sub C-states supported using MWAIT
149         5,         0,  edx,   27:24,    n_c6_substates         , Number of C6 sub C-states supported using MWAIT
150         5,         0,  edx,   31:28,    n_c7_substates         , Number of C7 sub C-states supported using MWAIT
151
152# Leaf 6H
153# Thermal and Power Management enumeration
154
155         6,         0,  eax,       0,    dtherm                 , Digital temprature sensor
156         6,         0,  eax,       1,    turbo_boost            , Intel Turbo Boost
157         6,         0,  eax,       2,    arat                   , Always-Running APIC Timer (not affected by p-state)
158         6,         0,  eax,       4,    pln                    , Power Limit Notification (PLN) event
159         6,         0,  eax,       5,    ecmd                   , Clock modulation duty cycle extension
160         6,         0,  eax,       6,    pts                    , Package thermal management
161         6,         0,  eax,       7,    hwp                    , HWP (Hardware P-states) base registers are supported
162         6,         0,  eax,       8,    hwp_notify             , HWP notification (IA32_HWP_INTERRUPT MSR)
163         6,         0,  eax,       9,    hwp_act_window         , HWP activity window (IA32_HWP_REQUEST[bits 41:32]) supported
164         6,         0,  eax,      10,    hwp_epp                , HWP Energy Performance Preference
165         6,         0,  eax,      11,    hwp_pkg_req            , HWP Package Level Request
166         6,         0,  eax,      13,    hdc_base_regs          , HDC base registers are supported
167         6,         0,  eax,      14,    turbo_boost_3_0        , Intel Turbo Boost Max 3.0
168         6,         0,  eax,      15,    hwp_capabilities       , HWP Highest Performance change
169         6,         0,  eax,      16,    hwp_peci_override      , HWP PECI override
170         6,         0,  eax,      17,    hwp_flexible           , Flexible HWP
171         6,         0,  eax,      18,    hwp_fast               , IA32_HWP_REQUEST MSR fast access mode
172         6,         0,  eax,      19,    hfi                    , HW_FEEDBACK MSRs supported
173         6,         0,  eax,      20,    hwp_ignore_idle        , Ignoring idle logical CPU HWP req is supported
174         6,         0,  eax,      23,    thread_director        , Intel thread director support
175         6,         0,  eax,      24,    therm_interrupt_bit25  , IA32_THERM_INTERRUPT MSR bit 25 is supported
176         6,         0,  ebx,     3:0,    n_therm_thresholds     , Digital thermometer thresholds
177         6,         0,  ecx,       0,    aperfmperf             , MPERF/APERF MSRs (effective frequency interface)
178         6,         0,  ecx,       3,    epb                    , IA32_ENERGY_PERF_BIAS MSR support
179         6,         0,  ecx,    15:8,    thrd_director_nclasses , Number of classes, Intel thread director
180         6,         0,  edx,       0,    perfcap_reporting      , Performance capability reporting
181         6,         0,  edx,       1,    encap_reporting        , Energy efficiency capability reporting
182         6,         0,  edx,    11:8,    feedback_sz            , HW feedback interface struct size, in 4K pages
183         6,         0,  edx,   31:16,    this_lcpu_hwfdbk_idx   , This logical CPU index @ HW feedback struct, 0-based
184
185# Leaf 7H
186# Extended CPU features enumeration
187
188         7,         0,  eax,    31:0,    leaf7_n_subleaves      , Number of cpuid 0x7 subleaves
189         7,         0,  ebx,       0,    fsgsbase               , FSBASE/GSBASE read/write support
190         7,         0,  ebx,       1,    tsc_adjust             , IA32_TSC_ADJUST MSR supported
191         7,         0,  ebx,       2,    sgx                    , Intel SGX (Software Guard Extensions)
192         7,         0,  ebx,       3,    bmi1                   , Bit manipulation extensions group 1
193         7,         0,  ebx,       4,    hle                    , Hardware Lock Elision
194         7,         0,  ebx,       5,    avx2                   , AVX2 instruction set
195         7,         0,  ebx,       6,    fdp_excptn_only        , FPU Data Pointer updated only on x87 exceptions
196         7,         0,  ebx,       7,    smep                   , Supervisor Mode Execution Protection
197         7,         0,  ebx,       8,    bmi2                   , Bit manipulation extensions group 2
198         7,         0,  ebx,       9,    erms                   , Enhanced REP MOVSB/STOSB
199         7,         0,  ebx,      10,    invpcid                , INVPCID instruction (Invalidate Processor Context ID)
200         7,         0,  ebx,      11,    rtm                    , Intel restricted transactional memory
201         7,         0,  ebx,      12,    cqm                    , Intel RDT-CMT / AMD Platform-QoS cache monitoring
202         7,         0,  ebx,      13,    zero_fcs_fds           , Deprecated FPU CS/DS (stored as zero)
203         7,         0,  ebx,      14,    mpx                    , Intel memory protection extensions
204         7,         0,  ebx,      15,    rdt_a                  , Intel RDT / AMD Platform-QoS Enforcemeent
205         7,         0,  ebx,      16,    avx512f                , AVX-512 foundation instructions
206         7,         0,  ebx,      17,    avx512dq               , AVX-512 double/quadword instructions
207         7,         0,  ebx,      18,    rdseed                 , RDSEED instruction
208         7,         0,  ebx,      19,    adx                    , ADCX/ADOX instructions
209         7,         0,  ebx,      20,    smap                   , Supervisor mode access prevention
210         7,         0,  ebx,      21,    avx512ifma             , AVX-512 integer fused multiply add
211         7,         0,  ebx,      23,    clflushopt             , CLFLUSHOPT instruction
212         7,         0,  ebx,      24,    clwb                   , CLWB instruction
213         7,         0,  ebx,      25,    intel_pt               , Intel processor trace
214         7,         0,  ebx,      26,    avx512pf               , AVX-512 prefetch instructions
215         7,         0,  ebx,      27,    avx512er               , AVX-512 exponent/reciprocal instrs
216         7,         0,  ebx,      28,    avx512cd               , AVX-512 conflict detection instrs
217         7,         0,  ebx,      29,    sha_ni                 , SHA/SHA256 instructions
218         7,         0,  ebx,      30,    avx512bw               , AVX-512 BW (byte/word granular) instructions
219         7,         0,  ebx,      31,    avx512vl               , AVX-512 VL (128/256 vector length) extensions
220         7,         0,  ecx,       0,    prefetchwt1            , PREFETCHWT1 (Intel Xeon Phi only)
221         7,         0,  ecx,       1,    avx512vbmi             , AVX-512 Vector byte manipulation instrs
222         7,         0,  ecx,       2,    umip                   , User mode instruction protection
223         7,         0,  ecx,       3,    pku                    , Protection keys for user-space
224         7,         0,  ecx,       4,    ospke                  , OS protection keys enable
225         7,         0,  ecx,       5,    waitpkg                , WAITPKG instructions
226         7,         0,  ecx,       6,    avx512_vbmi2           , AVX-512 vector byte manipulation instrs group 2
227         7,         0,  ecx,       7,    cet_ss                 , CET shadow stack features
228         7,         0,  ecx,       8,    gfni                   , Galois field new instructions
229         7,         0,  ecx,       9,    vaes                   , Vector AES instrs
230         7,         0,  ecx,      10,    vpclmulqdq             , VPCLMULQDQ 256-bit instruction support
231         7,         0,  ecx,      11,    avx512_vnni            , Vector neural network instructions
232         7,         0,  ecx,      12,    avx512_bitalg          , AVX-512 bit count/shiffle
233         7,         0,  ecx,      13,    tme                    , Intel total memory encryption
234         7,         0,  ecx,      14,    avx512_vpopcntdq       , AVX-512: POPCNT for vectors of DW/QW
235         7,         0,  ecx,      16,    la57                   , 57-bit linear addreses (five-level paging)
236         7,         0,  ecx,   21:17,    mawau_val_lm           , BNDLDX/BNDSTX MAWAU value in 64-bit mode
237         7,         0,  ecx,      22,    rdpid                  , RDPID instruction
238         7,         0,  ecx,      23,    key_locker             , Intel key locker support
239         7,         0,  ecx,      24,    bus_lock_detect        , OS bus-lock detection
240         7,         0,  ecx,      25,    cldemote               , CLDEMOTE instruction
241         7,         0,  ecx,      27,    movdiri                , MOVDIRI instruction
242         7,         0,  ecx,      28,    movdir64b              , MOVDIR64B instruction
243         7,         0,  ecx,      29,    enqcmd                 , Enqueue stores supported (ENQCMD{,S})
244         7,         0,  ecx,      30,    sgx_lc                 , Intel SGX launch configuration
245         7,         0,  ecx,      31,    pks                    , Protection keys for supervisor-mode pages
246         7,         0,  edx,       1,    sgx_keys               , Intel SGX attestation services
247         7,         0,  edx,       2,    avx512_4vnniw          , AVX-512 neural network instructions
248         7,         0,  edx,       3,    avx512_4fmaps          , AVX-512 multiply accumulation single precision
249         7,         0,  edx,       4,    fsrm                   , Fast short REP MOV
250         7,         0,  edx,       5,    uintr                  , CPU supports user interrupts
251         7,         0,  edx,       8,    avx512_vp2intersect    , VP2INTERSECT{D,Q} instructions
252         7,         0,  edx,       9,    srdbs_ctrl             , SRBDS mitigation MSR available
253         7,         0,  edx,      10,    md_clear               , VERW MD_CLEAR microcode support
254         7,         0,  edx,      11,    rtm_always_abort       , XBEGIN (RTM transaction) always aborts
255         7,         0,  edx,      13,    tsx_force_abort        , MSR TSX_FORCE_ABORT, RTM_ABORT bit, supported
256         7,         0,  edx,      14,    serialize              , SERIALIZE instruction
257         7,         0,  edx,      15,    hybrid_cpu             , The CPU is identified as a 'hybrid part'
258         7,         0,  edx,      16,    tsxldtrk               , TSX suspend/resume load address tracking
259         7,         0,  edx,      18,    pconfig                , PCONFIG instruction
260         7,         0,  edx,      19,    arch_lbr               , Intel architectural LBRs
261         7,         0,  edx,      20,    ibt                    , CET indirect branch tracking
262         7,         0,  edx,      22,    amx_bf16               , AMX-BF16: tile bfloat16 support
263         7,         0,  edx,      23,    avx512_fp16            , AVX-512 FP16 instructions
264         7,         0,  edx,      24,    amx_tile               , AMX-TILE: tile architecture support
265         7,         0,  edx,      25,    amx_int8               , AMX-INT8: tile 8-bit integer support
266         7,         0,  edx,      26,    spec_ctrl              , Speculation Control (IBRS/IBPB: indirect branch restrictions)
267         7,         0,  edx,      27,    intel_stibp            , Single thread indirect branch predictors
268         7,         0,  edx,      28,    flush_l1d              , FLUSH L1D cache: IA32_FLUSH_CMD MSR
269         7,         0,  edx,      29,    arch_capabilities      , Intel IA32_ARCH_CAPABILITIES MSR
270         7,         0,  edx,      30,    core_capabilities      , IA32_CORE_CAPABILITIES MSR
271         7,         0,  edx,      31,    spec_ctrl_ssbd         , Speculative store bypass disable
272         7,         1,  eax,       4,    avx_vnni               , AVX-VNNI instructions
273         7,         1,  eax,       5,    avx512_bf16            , AVX-512 bFloat16 instructions
274         7,         1,  eax,       6,    lass                   , Linear address space separation
275         7,         1,  eax,       7,    cmpccxadd              , CMPccXADD instructions
276         7,         1,  eax,       8,    arch_perfmon_ext       , ArchPerfmonExt: CPUID leaf 0x23 is supported
277         7,         1,  eax,      10,    fzrm                   , Fast zero-length REP MOVSB
278         7,         1,  eax,      11,    fsrs                   , Fast short REP STOSB
279         7,         1,  eax,      12,    fsrc                   , Fast Short REP CMPSB/SCASB
280         7,         1,  eax,      17,    fred                   , FRED: Flexible return and event delivery transitions
281         7,         1,  eax,      18,    lkgs                   , LKGS: Load 'kernel' (userspace) GS
282         7,         1,  eax,      19,    wrmsrns                , WRMSRNS instr (WRMSR-non-serializing)
283         7,         1,  eax,      21,    amx_fp16               , AMX-FP16: FP16 tile operations
284         7,         1,  eax,      22,    hreset                 , History reset support
285         7,         1,  eax,      23,    avx_ifma               , Integer fused multiply add
286         7,         1,  eax,      26,    lam                    , Linear address masking
287         7,         1,  eax,      27,    rd_wr_msrlist          , RDMSRLIST/WRMSRLIST instructions
288         7,         1,  ebx,       0,    intel_ppin             , Protected processor inventory number (PPIN{,_CTL} MSRs)
289         7,         1,  edx,       4,    avx_vnni_int8          , AVX-VNNI-INT8 instructions
290         7,         1,  edx,       5,    avx_ne_convert         , AVX-NE-CONVERT instructions
291         7,         1,  edx,       8,    amx_complex            , AMX-COMPLEX instructions (starting from Granite Rapids)
292         7,         1,  edx,      14,    prefetchit_0_1         , PREFETCHIT0/1 instructions
293         7,         1,  edx,      18,    cet_sss                , CET supervisor shadow stacks safe to use
294         7,         2,  edx,       0,    intel_psfd             , Intel predictive store forward disable
295         7,         2,  edx,       1,    ipred_ctrl             , MSR bits IA32_SPEC_CTRL.IPRED_DIS_{U,S}
296         7,         2,  edx,       2,    rrsba_ctrl             , MSR bits IA32_SPEC_CTRL.RRSBA_DIS_{U,S}
297         7,         2,  edx,       3,    ddp_ctrl               , MSR bit  IA32_SPEC_CTRL.DDPD_U
298         7,         2,  edx,       4,    bhi_ctrl               , MSR bit  IA32_SPEC_CTRL.BHI_DIS_S
299         7,         2,  edx,       5,    mcdt_no                , MCDT mitigation not needed
300         7,         2,  edx,       6,    uclock_disable         , UC-lock disable is supported
301
302# Leaf 9H
303# Intel DCA (Direct Cache Access) enumeration
304
305         9,         0,  eax,       0,    dca_enabled_in_bios    , DCA is enabled in BIOS
306
307# Leaf AH
308# Intel PMU (Performance Monitoring Unit) enumeration
309
310       0xa,         0,  eax,     7:0,    pmu_version            , Performance monitoring unit version ID
311       0xa,         0,  eax,    15:8,    pmu_n_gcounters        , Number of general PMU counters per logical CPU
312       0xa,         0,  eax,   23:16,    pmu_gcounters_nbits    , Bitwidth of PMU general counters
313       0xa,         0,  eax,   31:24,    pmu_cpuid_ebx_bits     , Length of cpuid leaf 0xa EBX bit vector
314       0xa,         0,  ebx,       0,    no_core_cycle_evt      , Core cycle event not available
315       0xa,         0,  ebx,       1,    no_insn_retired_evt    , Instruction retired event not available
316       0xa,         0,  ebx,       2,    no_refcycle_evt        , Reference cycles event not available
317       0xa,         0,  ebx,       3,    no_llc_ref_evt         , LLC-reference event not available
318       0xa,         0,  ebx,       4,    no_llc_miss_evt        , LLC-misses event not available
319       0xa,         0,  ebx,       5,    no_br_insn_ret_evt     , Branch instruction retired event not available
320       0xa,         0,  ebx,       6,    no_br_mispredict_evt   , Branch mispredict retired event not available
321       0xa,         0,  ebx,       7,    no_td_slots_evt        , Topdown slots event not available
322       0xa,         0,  ecx,    31:0,    pmu_fcounters_bitmap   , Fixed-function PMU counters support bitmap
323       0xa,         0,  edx,     4:0,    pmu_n_fcounters        , Number of fixed PMU counters
324       0xa,         0,  edx,    12:5,    pmu_fcounters_nbits    , Bitwidth of PMU fixed counters
325       0xa,         0,  edx,      15,    anythread_depr         , AnyThread deprecation
326
327# Leaf BH
328# CPUs v1 extended topology enumeration
329
330       0xb,       1:0,  eax,     4:0,    x2apic_id_shift        , Bit width of this level (previous levels inclusive)
331       0xb,       1:0,  ebx,    15:0,    domain_lcpus_count     , Logical CPUs count across all instances of this domain
332       0xb,       1:0,  ecx,     7:0,    domain_nr              , This domain level (subleaf ID)
333       0xb,       1:0,  ecx,    15:8,    domain_type            , This domain type
334       0xb,       1:0,  edx,    31:0,    x2apic_id              , x2APIC ID of current logical CPU
335
336# Leaf DH
337# Processor extended state enumeration
338
339       0xd,         0,  eax,       0,    xcr0_x87               , XCR0.X87 (bit 0) supported
340       0xd,         0,  eax,       1,    xcr0_sse               , XCR0.SEE (bit 1) supported
341       0xd,         0,  eax,       2,    xcr0_avx               , XCR0.AVX (bit 2) supported
342       0xd,         0,  eax,       3,    xcr0_mpx_bndregs       , XCR0.BNDREGS (bit 3) supported (MPX BND0-BND3 regs)
343       0xd,         0,  eax,       4,    xcr0_mpx_bndcsr        , XCR0.BNDCSR (bit 4) supported (MPX BNDCFGU/BNDSTATUS regs)
344       0xd,         0,  eax,       5,    xcr0_avx512_opmask     , XCR0.OPMASK (bit 5) supported (AVX-512 k0-k7 regs)
345       0xd,         0,  eax,       6,    xcr0_avx512_zmm_hi256  , XCR0.ZMM_Hi256 (bit 6) supported (AVX-512 ZMM0->ZMM7/15 regs)
346       0xd,         0,  eax,       7,    xcr0_avx512_hi16_zmm   , XCR0.HI16_ZMM (bit 7) supported (AVX-512 ZMM16->ZMM31 regs)
347       0xd,         0,  eax,       9,    xcr0_pkru              , XCR0.PKRU (bit 9) supported (XSAVE PKRU reg)
348       0xd,         0,  eax,      11,    xcr0_cet_u             , AMD XCR0.CET_U (bit 11) supported (CET supervisor state)
349       0xd,         0,  eax,      12,    xcr0_cet_s             , AMD XCR0.CET_S (bit 12) support (CET user state)
350       0xd,         0,  eax,      17,    xcr0_tileconfig        , XCR0.TILECONFIG (bit 17) supported (AMX can manage TILECONFIG)
351       0xd,         0,  eax,      18,    xcr0_tiledata          , XCR0.TILEDATA (bit 18) supported (AMX can manage TILEDATA)
352       0xd,         0,  ebx,    31:0,    xsave_sz_xcr0_enabled  , XSAVE/XRSTR area byte size, for XCR0 enabled features
353       0xd,         0,  ecx,    31:0,    xsave_sz_max           , XSAVE/XRSTR area max byte size, all CPU features
354       0xd,         0,  edx,      30,    xcr0_lwp               , AMD XCR0.LWP (bit 62) supported (Light-weight Profiling)
355       0xd,         1,  eax,       0,    xsaveopt               , XSAVEOPT instruction
356       0xd,         1,  eax,       1,    xsavec                 , XSAVEC instruction
357       0xd,         1,  eax,       2,    xgetbv1                , XGETBV instruction with ECX = 1
358       0xd,         1,  eax,       3,    xsaves                 , XSAVES/XRSTORS instructions (and XSS MSR)
359       0xd,         1,  eax,       4,    xfd                    , Extended feature disable support
360       0xd,         1,  ebx,    31:0,    xsave_sz_xcr0_xmms_enabled, XSAVE area size, all XCR0 and XMMS features enabled
361       0xd,         1,  ecx,       8,    xss_pt                 , PT state, supported
362       0xd,         1,  ecx,      10,    xss_pasid              , PASID state, supported
363       0xd,         1,  ecx,      11,    xss_cet_u              , CET user state, supported
364       0xd,         1,  ecx,      12,    xss_cet_p              , CET supervisor state, supported
365       0xd,         1,  ecx,      13,    xss_hdc                , HDC state, supported
366       0xd,         1,  ecx,      14,    xss_uintr              , UINTR state, supported
367       0xd,         1,  ecx,      15,    xss_lbr                , LBR state, supported
368       0xd,         1,  ecx,      16,    xss_hwp                , HWP state, supported
369       0xd,      63:2,  eax,    31:0,    xsave_sz               , Size of save area for subleaf-N feature, in bytes
370       0xd,      63:2,  ebx,    31:0,    xsave_offset           , Offset of save area for subleaf-N feature, in bytes
371       0xd,      63:2,  ecx,       0,    is_xss_bit             , Subleaf N describes an XSS bit, otherwise XCR0 bit
372       0xd,      63:2,  ecx,       1,    compacted_xsave_64byte_aligned, When compacted, subleaf-N feature xsave area is 64-byte aligned
373
374# Leaf FH
375# Intel RDT / AMD PQoS resource monitoring
376
377       0xf,         0,  ebx,    31:0,    core_rmid_max          , RMID max, within this core, all types (0-based)
378       0xf,         0,  edx,       1,    cqm_llc                , LLC QoS-monitoring supported
379       0xf,         1,  eax,     7:0,    l3c_qm_bitwidth        , L3 QoS-monitoring counter bitwidth (24-based)
380       0xf,         1,  eax,       8,    l3c_qm_overflow_bit    , QM_CTR MSR bit 61 is an overflow bit
381       0xf,         1,  ebx,    31:0,    l3c_qm_conver_factor   , QM_CTR MSR conversion factor to bytes
382       0xf,         1,  ecx,    31:0,    l3c_qm_rmid_max        , L3 QoS-monitoring max RMID
383       0xf,         1,  edx,       0,    cqm_occup_llc          , L3 QoS occupancy monitoring supported
384       0xf,         1,  edx,       1,    cqm_mbm_total          , L3 QoS total bandwidth monitoring supported
385       0xf,         1,  edx,       2,    cqm_mbm_local          , L3 QoS local bandwidth monitoring supported
386
387# Leaf 10H
388# Intel RDT / AMD PQoS allocation enumeration
389
390      0x10,         0,  ebx,       1,    cat_l3                 , L3 Cache Allocation Technology supported
391      0x10,         0,  ebx,       2,    cat_l2                 , L2 Cache Allocation Technology supported
392      0x10,         0,  ebx,       3,    mba                    , Memory Bandwidth Allocation supported
393      0x10,       2:1,  eax,     4:0,    cat_cbm_len            , L3/L2_CAT capacity bitmask length, minus-one notation
394      0x10,       2:1,  ebx,    31:0,    cat_units_bitmap       , L3/L2_CAT bitmap of allocation units
395      0x10,       2:1,  ecx,       1,    l3_cat_cos_infreq_updates, L3_CAT COS updates should be infrequent
396      0x10,       2:1,  ecx,       2,    cdp_l3                 , L3/L2_CAT CDP (Code and Data Prioritization)
397      0x10,       2:1,  ecx,       3,    cat_sparse_1s          , L3/L2_CAT non-contiguous 1s value supported
398      0x10,       2:1,  edx,    15:0,    cat_cos_max            , L3/L2_CAT max COS (Class of Service) supported
399      0x10,         3,  eax,    11:0,    mba_max_delay          , Max MBA throttling value; minus-one notation
400      0x10,         3,  ecx,       0,    per_thread_mba         , Per-thread MBA controls are supported
401      0x10,         3,  ecx,       2,    mba_delay_linear       , Delay values are linear
402      0x10,         3,  edx,    15:0,    mba_cos_max            , MBA max Class of Service supported
403
404# Leaf 12H
405# Intel Software Guard Extensions (SGX) enumeration
406
407      0x12,         0,  eax,       0,    sgx1                   , SGX1 leaf functions supported
408      0x12,         0,  eax,       1,    sgx2                   , SGX2 leaf functions supported
409      0x12,         0,  eax,       5,    enclv_leaves           , ENCLV leaves (E{INC,DEC}VIRTCHILD, ESETCONTEXT) supported
410      0x12,         0,  eax,       6,    encls_leaves           , ENCLS leaves (ENCLS ETRACKC, ERDINFO, ELDBC, ELDUC) supported
411      0x12,         0,  eax,       7,    enclu_everifyreport2   , ENCLU leaf EVERIFYREPORT2 supported
412      0x12,         0,  eax,      10,    encls_eupdatesvn       , ENCLS leaf EUPDATESVN supported
413      0x12,         0,  eax,      11,    sgx_edeccssa           , ENCLU leaf EDECCSSA supported
414      0x12,         0,  ebx,       0,    miscselect_exinfo      , SSA.MISC frame: reporting #PF and #GP exceptions inside enclave supported
415      0x12,         0,  ebx,       1,    miscselect_cpinfo      , SSA.MISC frame: reporting #CP exceptions inside enclave supported
416      0x12,         0,  edx,     7:0,    max_enclave_sz_not64   , Maximum enclave size in non-64-bit mode (log2)
417      0x12,         0,  edx,    15:8,    max_enclave_sz_64      , Maximum enclave size in 64-bit mode (log2)
418      0x12,         1,  eax,       0,    secs_attr_init         , ATTRIBUTES.INIT supported (enclave initialized by EINIT)
419      0x12,         1,  eax,       1,    secs_attr_debug        , ATTRIBUTES.DEBUG supported (enclave permits debugger read/write)
420      0x12,         1,  eax,       2,    secs_attr_mode64bit    , ATTRIBUTES.MODE64BIT supported (enclave runs in 64-bit mode)
421      0x12,         1,  eax,       4,    secs_attr_provisionkey , ATTRIBUTES.PROVISIONKEY supported (provisioning key available)
422      0x12,         1,  eax,       5,    secs_attr_einittoken_key, ATTRIBUTES.EINITTOKEN_KEY supported (EINIT token key available)
423      0x12,         1,  eax,       6,    secs_attr_cet          , ATTRIBUTES.CET supported (enable CET attributes)
424      0x12,         1,  eax,       7,    secs_attr_kss          , ATTRIBUTES.KSS supported (Key Separation and Sharing enabled)
425      0x12,         1,  eax,      10,    secs_attr_aexnotify    , ATTRIBUTES.AEXNOTIFY supported (enclave threads may get AEX notifications
426      0x12,         1,  ecx,       0,    xfrm_x87               , Enclave XFRM.X87 (bit 0) supported
427      0x12,         1,  ecx,       1,    xfrm_sse               , Enclave XFRM.SEE (bit 1) supported
428      0x12,         1,  ecx,       2,    xfrm_avx               , Enclave XFRM.AVX (bit 2) supported
429      0x12,         1,  ecx,       3,    xfrm_mpx_bndregs       , Enclave XFRM.BNDREGS (bit 3) supported (MPX BND0-BND3 regs)
430      0x12,         1,  ecx,       4,    xfrm_mpx_bndcsr        , Enclave XFRM.BNDCSR (bit 4) supported (MPX BNDCFGU/BNDSTATUS regs)
431      0x12,         1,  ecx,       5,    xfrm_avx512_opmask     , Enclave XFRM.OPMASK (bit 5) supported (AVX-512 k0-k7 regs)
432      0x12,         1,  ecx,       6,    xfrm_avx512_zmm_hi256  , Enclave XFRM.ZMM_Hi256 (bit 6) supported (AVX-512 ZMM0->ZMM7/15 regs)
433      0x12,         1,  ecx,       7,    xfrm_avx512_hi16_zmm   , Enclave XFRM.HI16_ZMM (bit 7) supported (AVX-512 ZMM16->ZMM31 regs)
434      0x12,         1,  ecx,       9,    xfrm_pkru              , Enclave XFRM.PKRU (bit 9) supported (XSAVE PKRU reg)
435      0x12,         1,  ecx,      17,    xfrm_tileconfig        , Enclave XFRM.TILECONFIG (bit 17) supported (AMX can manage TILECONFIG)
436      0x12,         1,  ecx,      18,    xfrm_tiledata          , Enclave XFRM.TILEDATA (bit 18) supported (AMX can manage TILEDATA)
437      0x12,      31:2,  eax,     3:0,    subleaf_type           , Subleaf type (dictates output layout)
438      0x12,      31:2,  eax,   31:12,    epc_sec_base_addr_0    , EPC section base addr, bits[12:31]
439      0x12,      31:2,  ebx,    19:0,    epc_sec_base_addr_1    , EPC section base addr, bits[32:51]
440      0x12,      31:2,  ecx,     3:0,    epc_sec_type           , EPC section type / property encoding
441      0x12,      31:2,  ecx,   31:12,    epc_sec_size_0         , EPC section size, bits[12:31]
442      0x12,      31:2,  edx,    19:0,    epc_sec_size_1         , EPC section size, bits[32:51]
443
444# Leaf 14H
445# Intel Processor Trace enumeration
446
447      0x14,         0,  eax,    31:0,    pt_max_subleaf         , Max cpuid 0x14 subleaf
448      0x14,         0,  ebx,       0,    cr3_filtering          , IA32_RTIT_CR3_MATCH is accessible
449      0x14,         0,  ebx,       1,    psb_cyc                , Configurable PSB and cycle-accurate mode
450      0x14,         0,  ebx,       2,    ip_filtering           , IP/TraceStop filtering; Warm-reset PT MSRs preservation
451      0x14,         0,  ebx,       3,    mtc_timing             , MTC timing packet; COFI-based packets suppression
452      0x14,         0,  ebx,       4,    ptwrite                , PTWRITE support
453      0x14,         0,  ebx,       5,    power_event_trace      , Power Event Trace support
454      0x14,         0,  ebx,       6,    psb_pmi_preserve       , PSB and PMI preservation support
455      0x14,         0,  ebx,       7,    event_trace            , Event Trace packet generation through IA32_RTIT_CTL.EventEn
456      0x14,         0,  ebx,       8,    tnt_disable            , TNT packet generation disable through IA32_RTIT_CTL.DisTNT
457      0x14,         0,  ecx,       0,    topa_output            , ToPA output scheme support
458      0x14,         0,  ecx,       1,    topa_multiple_entries  , ToPA tables can hold multiple entries
459      0x14,         0,  ecx,       2,    single_range_output    , Single-range output scheme supported
460      0x14,         0,  ecx,       3,    trance_transport_output, Trace Transport subsystem output support
461      0x14,         0,  ecx,      31,    ip_payloads_lip        , IP payloads have LIP values (CS base included)
462      0x14,         1,  eax,     2:0,    num_address_ranges     , Filtering number of configurable Address Ranges
463      0x14,         1,  eax,   31:16,    mtc_periods_bmp        , Bitmap of supported MTC period encodings
464      0x14,         1,  ebx,    15:0,    cycle_thresholds_bmp   , Bitmap of supported Cycle Threshold encodings
465      0x14,         1,  ebx,   31:16,    psb_periods_bmp        , Bitmap of supported Configurable PSB frequency encodings
466
467# Leaf 15H
468# Intel TSC (Time Stamp Counter) enumeration
469
470      0x15,         0,  eax,    31:0,    tsc_denominator        , Denominator of the TSC/'core crystal clock' ratio
471      0x15,         0,  ebx,    31:0,    tsc_numerator          , Numerator of the TSC/'core crystal clock' ratio
472      0x15,         0,  ecx,    31:0,    cpu_crystal_hz         , Core crystal clock nominal frequency, in Hz
473
474# Leaf 16H
475# Intel processor fequency enumeration
476
477      0x16,         0,  eax,    15:0,    cpu_base_mhz           , Processor base frequency, in MHz
478      0x16,         0,  ebx,    15:0,    cpu_max_mhz            , Processor max frequency, in MHz
479      0x16,         0,  ecx,    15:0,    bus_mhz                , Bus reference frequency, in MHz
480
481# Leaf 17H
482# Intel SoC vendor attributes enumeration
483
484      0x17,         0,  eax,    31:0,    soc_max_subleaf        , Max cpuid leaf 0x17 subleaf
485      0x17,         0,  ebx,    15:0,    soc_vendor_id          , SoC vendor ID
486      0x17,         0,  ebx,      16,    is_vendor_scheme       , Assigned by industry enumaeratoion scheme (not Intel)
487      0x17,         0,  ecx,    31:0,    soc_proj_id            , SoC project ID, assigned by vendor
488      0x17,         0,  edx,    31:0,    soc_stepping_id        , Soc project stepping ID, assigned by vendor
489      0x17,       3:1,  eax,    31:0,    vendor_brand_a         , Vendor Brand ID string, bytes subleaf_nr * (0 -> 3)
490      0x17,       3:1,  ebx,    31:0,    vendor_brand_b         , Vendor Brand ID string, bytes subleaf_nr * (4 -> 7)
491      0x17,       3:1,  ecx,    31:0,    vendor_brand_c         , Vendor Brand ID string, bytes subleaf_nr * (8 -> 11)
492      0x17,       3:1,  edx,    31:0,    vendor_brand_d         , Vendor Brand ID string, bytes subleaf_nr * (12 -> 15)
493
494# Leaf 18H
495# Intel determenestic address translation (TLB) parameters
496
497      0x18,      31:0,  eax,    31:0,    tlb_max_subleaf        , Max cpuid 0x18 subleaf
498      0x18,      31:0,  ebx,       0,    tlb_4k_page            , TLB 4KB-page entries supported
499      0x18,      31:0,  ebx,       1,    tlb_2m_page            , TLB 2MB-page entries supported
500      0x18,      31:0,  ebx,       2,    tlb_4m_page            , TLB 4MB-page entries supported
501      0x18,      31:0,  ebx,       3,    tlb_1g_page            , TLB 1GB-page entries supported
502      0x18,      31:0,  ebx,    10:8,    hard_partitioning      , (Hard/Soft) partitioning between logical CPUs sharing this struct
503      0x18,      31:0,  ebx,   31:16,    n_way_associative      , Ways of associativity
504      0x18,      31:0,  ecx,    31:0,    n_sets                 , Number of sets
505      0x18,      31:0,  edx,     4:0,    tlb_type               , Translation cache type (TLB type)
506      0x18,      31:0,  edx,     7:5,    tlb_cache_level        , Translation cache level (1-based)
507      0x18,      31:0,  edx,       8,    is_fully_associative   , Fully-associative structure
508      0x18,      31:0,  edx,   25:14,    tlb_max_addressible_ids, Max num of addressible IDs for logical CPUs sharing this TLB - 1
509
510# Leaf 19H
511# Intel Key Locker enumeration
512
513      0x19,         0,  eax,       0,    kl_cpl0_only           , CPL0-only key Locker restriction supported
514      0x19,         0,  eax,       1,    kl_no_encrypt          , No-encrypt key locker restriction supported
515      0x19,         0,  eax,       2,    kl_no_decrypt          , No-decrypt key locker restriction supported
516      0x19,         0,  ebx,       0,    aes_keylocker          , AES key locker instructions supported
517      0x19,         0,  ebx,       2,    aes_keylocker_wide     , AES wide key locker instructions supported
518      0x19,         0,  ebx,       4,    kl_msr_iwkey           , Key locker MSRs and IWKEY backups supported
519      0x19,         0,  ecx,       0,    loadiwkey_no_backup    , LOADIWKEY NoBackup parameter supported
520      0x19,         0,  ecx,       1,    iwkey_rand             , IWKEY randomization (KeySource encoding 1) supported
521
522# Leaf 1AH
523# Intel hybrid CPUs identification (e.g. Atom, Core)
524
525      0x1a,         0,  eax,    23:0,    core_native_model      , This core's native model ID
526      0x1a,         0,  eax,   31:24,    core_type              , This core's type
527
528# Leaf 1BH
529# Intel PCONFIG (Platform configuration) enumeration
530
531      0x1b,      31:0,  eax,    11:0,    pconfig_subleaf_type   , CPUID 0x1b subleaf type
532      0x1b,      31:0,  ebx,    31:0,    pconfig_target_id_x    , A supported PCONFIG target ID
533      0x1b,      31:0,  ecx,    31:0,    pconfig_target_id_y    , A supported PCONFIG target ID
534      0x1b,      31:0,  edx,    31:0,    pconfig_target_id_z    , A supported PCONFIG target ID
535
536# Leaf 1CH
537# Intel LBR (Last Branch Record) enumeration
538
539      0x1c,         0,  eax,       0,    lbr_depth_8            , Max stack depth (number of LBR entries) = 8
540      0x1c,         0,  eax,       1,    lbr_depth_16           , Max stack depth (number of LBR entries) = 16
541      0x1c,         0,  eax,       2,    lbr_depth_24           , Max stack depth (number of LBR entries) = 24
542      0x1c,         0,  eax,       3,    lbr_depth_32           , Max stack depth (number of LBR entries) = 32
543      0x1c,         0,  eax,       4,    lbr_depth_40           , Max stack depth (number of LBR entries) = 40
544      0x1c,         0,  eax,       5,    lbr_depth_48           , Max stack depth (number of LBR entries) = 48
545      0x1c,         0,  eax,       6,    lbr_depth_56           , Max stack depth (number of LBR entries) = 56
546      0x1c,         0,  eax,       7,    lbr_depth_64           , Max stack depth (number of LBR entries) = 64
547      0x1c,         0,  eax,      30,    lbr_deep_c_reset       , LBRs maybe cleared on MWAIT C-state > C1
548      0x1c,         0,  eax,      31,    lbr_ip_is_lip          , LBR IP contain Last IP, otherwise effective IP
549      0x1c,         0,  ebx,       0,    lbr_cpl                , CPL filtering (non-zero IA32_LBR_CTL[2:1]) supported
550      0x1c,         0,  ebx,       1,    lbr_branch_filter      , Branch filtering (non-zero IA32_LBR_CTL[22:16]) supported
551      0x1c,         0,  ebx,       2,    lbr_call_stack         , Call-stack mode (IA32_LBR_CTL[3] = 1) supported
552      0x1c,         0,  ecx,       0,    lbr_mispredict         , Branch misprediction bit supported (IA32_LBR_x_INFO[63])
553      0x1c,         0,  ecx,       1,    lbr_timed_lbr          , Timed LBRs (CPU cycles since last LBR entry) supported
554      0x1c,         0,  ecx,       2,    lbr_branch_type        , Branch type field (IA32_LBR_INFO_x[59:56]) supported
555      0x1c,         0,  ecx,   19:16,    lbr_events_gpc_bmp     , LBR PMU-events logging support; bitmap for first 4 GP (general-purpose) Counters
556
557# Leaf 1DH
558# Intel AMX (Advanced Matrix Extensions) tile information
559
560      0x1d,         0,  eax,    31:0,    amx_max_palette        , Highest palette ID / subleaf ID
561      0x1d,         1,  eax,    15:0,    amx_palette_size       , AMX palette total tiles size, in bytes
562      0x1d,         1,  eax,   31:16,    amx_tile_size          , AMX single tile's size, in bytes
563      0x1d,         1,  ebx,    15:0,    amx_tile_row_size      , AMX tile single row's size, in bytes
564      0x1d,         1,  ebx,   31:16,    amx_palette_nr_tiles   , AMX palette number of tiles
565      0x1d,         1,  ecx,    15:0,    amx_tile_nr_rows       , AMX tile max number of rows
566
567# Leaf 1EH
568# Intel AMX, TMUL (Tile-matrix MULtiply) accelerator unit enumeration
569
570      0x1e,         0,  ebx,     7:0,    tmul_maxk              , TMUL unit maximum height, K (rows or columns)
571      0x1e,         0,  ebx,    23:8,    tmul_maxn              , TMUL unit maxiumum SIMD dimension, N (column bytes)
572
573# Leaf 1FH
574# Intel extended topology enumeration v2
575
576      0x1f,       5:0,  eax,     4:0,    x2apic_id_shift        , Bit width of this level (previous levels inclusive)
577      0x1f,       5:0,  ebx,    15:0,    domain_lcpus_count     , Logical CPUs count across all instances of this domain
578      0x1f,       5:0,  ecx,     7:0,    domain_level           , This domain level (subleaf ID)
579      0x1f,       5:0,  ecx,    15:8,    domain_type            , This domain type
580      0x1f,       5:0,  edx,    31:0,    x2apic_id              , x2APIC ID of current logical CPU
581
582# Leaf 20H
583# Intel HRESET (History Reset) enumeration
584
585      0x20,         0,  eax,    31:0,    hreset_nr_subleaves    , CPUID 0x20 max subleaf + 1
586      0x20,         0,  ebx,       0,    hreset_thread_director , HRESET of Intel thread director is supported
587
588# Leaf 21H
589# Intel TD (Trust Domain) guest execution environment enumeration
590
591      0x21,         0,  ebx,    31:0,    tdx_vendorid_0         , TDX vendor ID string bytes 0 - 3
592      0x21,         0,  ecx,    31:0,    tdx_vendorid_2         , CPU vendor ID string bytes 8 - 11
593      0x21,         0,  edx,    31:0,    tdx_vendorid_1         , CPU vendor ID string bytes 4 - 7
594
595# Leaf 23H
596# Intel Architectural Performance Monitoring Extended (ArchPerfmonExt)
597
598      0x23,         0,  eax,       1,    subleaf_1_counters     , Subleaf 1, PMU counters bitmaps, is valid
599      0x23,         0,  eax,       3,    subleaf_3_events       , Subleaf 3, PMU events bitmaps, is valid
600      0x23,         0,  ebx,       0,    unitmask2              , IA32_PERFEVTSELx MSRs UnitMask2 is supported
601      0x23,         0,  ebx,       1,    zbit                   , IA32_PERFEVTSELx MSRs Z-bit is supported
602      0x23,         1,  eax,    31:0,    pmu_gp_counters_bitmap , General-purpose PMU counters bitmap
603      0x23,         1,  ebx,    31:0,    pmu_f_counters_bitmap  , Fixed PMU counters bitmap
604      0x23,         3,  eax,       0,    core_cycles_evt        , Core cycles event supported
605      0x23,         3,  eax,       1,    insn_retired_evt       , Instructions retired event supported
606      0x23,         3,  eax,       2,    ref_cycles_evt         , Reference cycles event supported
607      0x23,         3,  eax,       3,    llc_refs_evt           , Last-level cache references event supported
608      0x23,         3,  eax,       4,    llc_misses_evt         , Last-level cache misses event supported
609      0x23,         3,  eax,       5,    br_insn_ret_evt        , Branch instruction retired event supported
610      0x23,         3,  eax,       6,    br_mispr_evt           , Branch mispredict retired event supported
611      0x23,         3,  eax,       7,    td_slots_evt           , Topdown slots event supported
612      0x23,         3,  eax,       8,    td_backend_bound_evt   , Topdown backend bound event supported
613      0x23,         3,  eax,       9,    td_bad_spec_evt        , Topdown bad speculation event supported
614      0x23,         3,  eax,      10,    td_frontend_bound_evt  , Topdown frontend bound event supported
615      0x23,         3,  eax,      11,    td_retiring_evt        , Topdown retiring event support
616
617# Leaf 40000000H
618# Maximum hypervisor standard leaf + hypervisor vendor string
619
6200x40000000,         0,  eax,    31:0,    max_hyp_leaf           , Maximum hypervisor standard leaf number
6210x40000000,         0,  ebx,    31:0,    hypervisor_id_0        , Hypervisor ID string bytes 0 - 3
6220x40000000,         0,  ecx,    31:0,    hypervisor_id_1        , Hypervisor ID string bytes 4 - 7
6230x40000000,         0,  edx,    31:0,    hypervisor_id_2        , Hypervisor ID string bytes 8 - 11
624
625# Leaf 80000000H
626# Maximum extended leaf number + CPU vendor string (AMD)
627
6280x80000000,         0,  eax,    31:0,    max_ext_leaf           , Maximum extended cpuid leaf supported
6290x80000000,         0,  ebx,    31:0,    cpu_vendorid_0         , Vendor ID string bytes 0 - 3
6300x80000000,         0,  ecx,    31:0,    cpu_vendorid_2         , Vendor ID string bytes 8 - 11
6310x80000000,         0,  edx,    31:0,    cpu_vendorid_1         , Vendor ID string bytes 4 - 7
632
633# Leaf 80000001H
634# Extended CPU feature identifiers
635
6360x80000001,         0,  eax,     3:0,    e_stepping_id          , Stepping ID
6370x80000001,         0,  eax,     7:4,    e_base_model           , Base processor model
6380x80000001,         0,  eax,    11:8,    e_base_family          , Base processor family
6390x80000001,         0,  eax,   19:16,    e_ext_model            , Extended processor model
6400x80000001,         0,  eax,   27:20,    e_ext_family           , Extended processor family
6410x80000001,         0,  ebx,    15:0,    brand_id               , Brand ID
6420x80000001,         0,  ebx,   31:28,    pkg_type               , Package type
6430x80000001,         0,  ecx,       0,    lahf_lm                , LAHF and SAHF in 64-bit mode
6440x80000001,         0,  ecx,       1,    cmp_legacy             , Multi-processing legacy mode (No HT)
6450x80000001,         0,  ecx,       2,    svm                    , Secure Virtual Machine
6460x80000001,         0,  ecx,       3,    extapic                , Extended APIC space
6470x80000001,         0,  ecx,       4,    cr8_legacy             , LOCK MOV CR0 means MOV CR8
6480x80000001,         0,  ecx,       5,    abm                    , LZCNT advanced bit manipulation
6490x80000001,         0,  ecx,       6,    sse4a                  , SSE4A support
6500x80000001,         0,  ecx,       7,    misalignsse            , Misaligned SSE mode
6510x80000001,         0,  ecx,       8,    3dnowprefetch          , 3DNow PREFETCH/PREFETCHW support
6520x80000001,         0,  ecx,       9,    osvw                   , OS visible workaround
6530x80000001,         0,  ecx,      10,    ibs                    , Instruction based sampling
6540x80000001,         0,  ecx,      11,    xop                    , XOP: extended operation (AVX instructions)
6550x80000001,         0,  ecx,      12,    skinit                 , SKINIT/STGI support
6560x80000001,         0,  ecx,      13,    wdt                    , Watchdog timer support
6570x80000001,         0,  ecx,      15,    lwp                    , Lightweight profiling
6580x80000001,         0,  ecx,      16,    fma4                   , 4-operand FMA instruction
6590x80000001,         0,  ecx,      17,    tce                    , Translation cache extension
6600x80000001,         0,  ecx,      19,    nodeid_msr             , NodeId MSR (0xc001100c)
6610x80000001,         0,  ecx,      21,    tbm                    , Trailing bit manipulations
6620x80000001,         0,  ecx,      22,    topoext                , Topology Extensions (cpuid leaf 0x8000001d)
6630x80000001,         0,  ecx,      23,    perfctr_core           , Core performance counter extensions
6640x80000001,         0,  ecx,      24,    perfctr_nb             , NB/DF performance counter extensions
6650x80000001,         0,  ecx,      26,    bpext                  , Data access breakpoint extension
6660x80000001,         0,  ecx,      27,    ptsc                   , Performance time-stamp counter
6670x80000001,         0,  ecx,      28,    perfctr_llc            , LLC (L3) performance counter extensions
6680x80000001,         0,  ecx,      29,    mwaitx                 , MWAITX/MONITORX support
6690x80000001,         0,  ecx,      30,    addr_mask_ext          , Breakpoint address mask extension (to bit 31)
6700x80000001,         0,  edx,       0,    e_fpu                  , Floating-Point Unit on-chip (x87)
6710x80000001,         0,  edx,       1,    e_vme                  , Virtual-8086 Mode Extensions
6720x80000001,         0,  edx,       2,    e_de                   , Debugging Extensions
6730x80000001,         0,  edx,       3,    e_pse                  , Page Size Extension
6740x80000001,         0,  edx,       4,    e_tsc                  , Time Stamp Counter
6750x80000001,         0,  edx,       5,    e_msr                  , Model-Specific Registers (RDMSR and WRMSR support)
6760x80000001,         0,  edx,       6,    pae                    , Physical Address Extensions
6770x80000001,         0,  edx,       7,    mce                    , Machine Check Exception
6780x80000001,         0,  edx,       8,    cx8                    , CMPXCHG8B instruction
6790x80000001,         0,  edx,       9,    apic                   , APIC on-chip
6800x80000001,         0,  edx,      11,    syscall                , SYSCALL and SYSRET instructions
6810x80000001,         0,  edx,      12,    mtrr                   , Memory Type Range Registers
6820x80000001,         0,  edx,      13,    pge                    , Page Global Extensions
6830x80000001,         0,  edx,      14,    mca                    , Machine Check Architecture
6840x80000001,         0,  edx,      15,    cmov                   , Conditional Move Instruction
6850x80000001,         0,  edx,      16,    pat                    , Page Attribute Table
6860x80000001,         0,  edx,      17,    pse36                  , Page Size Extension (36-bit)
6870x80000001,         0,  edx,      19,    mp                     , Out-of-spec AMD Multiprocessing bit
6880x80000001,         0,  edx,      20,    nx                     , No-execute page protection
6890x80000001,         0,  edx,      22,    mmxext                 , AMD MMX extensions
6900x80000001,         0,  edx,      24,    e_fxsr                 , FXSAVE and FXRSTOR instructions
6910x80000001,         0,  edx,      25,    fxsr_opt               , FXSAVE and FXRSTOR optimizations
6920x80000001,         0,  edx,      26,    pdpe1gb                , 1-GB large page support
6930x80000001,         0,  edx,      27,    rdtscp                 , RDTSCP instruction
6940x80000001,         0,  edx,      29,    lm                     , Long mode (x86-64, 64-bit support)
6950x80000001,         0,  edx,      30,    3dnowext               , AMD 3DNow extensions
6960x80000001,         0,  edx,      31,    3dnow                  , 3DNow instructions
697
698# Leaf 80000002H
699# CPU brand ID string, bytes 0 - 15
700
7010x80000002,         0,  eax,    31:0,    cpu_brandid_0          , CPU brand ID string, bytes 0 - 3
7020x80000002,         0,  ebx,    31:0,    cpu_brandid_1          , CPU brand ID string, bytes 4 - 7
7030x80000002,         0,  ecx,    31:0,    cpu_brandid_2          , CPU brand ID string, bytes 8 - 11
7040x80000002,         0,  edx,    31:0,    cpu_brandid_3          , CPU brand ID string, bytes 12 - 15
705
706# Leaf 80000003H
707# CPU brand ID string, bytes 16 - 31
708
7090x80000003,         0,  eax,    31:0,    cpu_brandid_4          , CPU brand ID string bytes, 16 - 19
7100x80000003,         0,  ebx,    31:0,    cpu_brandid_5          , CPU brand ID string bytes, 20 - 23
7110x80000003,         0,  ecx,    31:0,    cpu_brandid_6          , CPU brand ID string bytes, 24 - 27
7120x80000003,         0,  edx,    31:0,    cpu_brandid_7          , CPU brand ID string bytes, 28 - 31
713
714# Leaf 80000004H
715# CPU brand ID string, bytes 32 - 47
716
7170x80000004,         0,  eax,    31:0,    cpu_brandid_8          , CPU brand ID string, bytes 32 - 35
7180x80000004,         0,  ebx,    31:0,    cpu_brandid_9          , CPU brand ID string, bytes 36 - 39
7190x80000004,         0,  ecx,    31:0,    cpu_brandid_10         , CPU brand ID string, bytes 40 - 43
7200x80000004,         0,  edx,    31:0,    cpu_brandid_11         , CPU brand ID string, bytes 44 - 47
721
722# Leaf 80000005H
723# AMD L1 cache and L1 TLB enumeration
724
7250x80000005,         0,  eax,     7:0,    l1_itlb_2m_4m_nentries , L1 ITLB #entires, 2M and 4M pages
7260x80000005,         0,  eax,    15:8,    l1_itlb_2m_4m_assoc    , L1 ITLB associativity, 2M and 4M pages
7270x80000005,         0,  eax,   23:16,    l1_dtlb_2m_4m_nentries , L1 DTLB #entires, 2M and 4M pages
7280x80000005,         0,  eax,   31:24,    l1_dtlb_2m_4m_assoc    , L1 DTLB associativity, 2M and 4M pages
7290x80000005,         0,  ebx,     7:0,    l1_itlb_4k_nentries    , L1 ITLB #entries, 4K pages
7300x80000005,         0,  ebx,    15:8,    l1_itlb_4k_assoc       , L1 ITLB associativity, 4K pages
7310x80000005,         0,  ebx,   23:16,    l1_dtlb_4k_nentries    , L1 DTLB #entries, 4K pages
7320x80000005,         0,  ebx,   31:24,    l1_dtlb_4k_assoc       , L1 DTLB associativity, 4K pages
7330x80000005,         0,  ecx,     7:0,    l1_dcache_line_size    , L1 dcache line size, in bytes
7340x80000005,         0,  ecx,    15:8,    l1_dcache_nlines       , L1 dcache lines per tag
7350x80000005,         0,  ecx,   23:16,    l1_dcache_assoc        , L1 dcache associativity
7360x80000005,         0,  ecx,   31:24,    l1_dcache_size_kb      , L1 dcache size, in KB
7370x80000005,         0,  edx,     7:0,    l1_icache_line_size    , L1 icache line size, in bytes
7380x80000005,         0,  edx,    15:8,    l1_icache_nlines       , L1 icache lines per tag
7390x80000005,         0,  edx,   23:16,    l1_icache_assoc        , L1 icache associativity
7400x80000005,         0,  edx,   31:24,    l1_icache_size_kb      , L1 icache size, in KB
741
742# Leaf 80000006H
743# (Mostly AMD) L2 TLB, L2 cache, and L3 cache enumeration
744
7450x80000006,         0,  eax,    11:0,    l2_itlb_2m_4m_nentries , L2 iTLB #entries, 2M and 4M pages
7460x80000006,         0,  eax,   15:12,    l2_itlb_2m_4m_assoc    , L2 iTLB associativity, 2M and 4M pages
7470x80000006,         0,  eax,   27:16,    l2_dtlb_2m_4m_nentries , L2 dTLB #entries, 2M and 4M pages
7480x80000006,         0,  eax,   31:28,    l2_dtlb_2m_4m_assoc    , L2 dTLB associativity, 2M and 4M pages
7490x80000006,         0,  ebx,    11:0,    l2_itlb_4k_nentries    , L2 iTLB #entries, 4K pages
7500x80000006,         0,  ebx,   15:12,    l2_itlb_4k_assoc       , L2 iTLB associativity, 4K pages
7510x80000006,         0,  ebx,   27:16,    l2_dtlb_4k_nentries    , L2 dTLB #entries, 4K pages
7520x80000006,         0,  ebx,   31:28,    l2_dtlb_4k_assoc       , L2 dTLB associativity, 4K pages
7530x80000006,         0,  ecx,     7:0,    l2_line_size           , L2 cache line size, in bytes
7540x80000006,         0,  ecx,    11:8,    l2_nlines              , L2 cache number of lines per tag
7550x80000006,         0,  ecx,   15:12,    l2_assoc               , L2 cache associativity
7560x80000006,         0,  ecx,   31:16,    l2_size_kb             , L2 cache size, in KB
7570x80000006,         0,  edx,     7:0,    l3_line_size           , L3 cache line size, in bytes
7580x80000006,         0,  edx,    11:8,    l3_nlines              , L3 cache number of lines per tag
7590x80000006,         0,  edx,   15:12,    l3_assoc               , L3 cache associativity
7600x80000006,         0,  edx,   31:18,    l3_size_range          , L3 cache size range
761
762# Leaf 80000007H
763# CPU power management (mostly AMD) and AMD RAS enumeration
764
7650x80000007,         0,  ebx,       0,    overflow_recov         , MCA overflow conditions not fatal
7660x80000007,         0,  ebx,       1,    succor                 , Software containment of UnCORRectable errors
7670x80000007,         0,  ebx,       2,    hw_assert              , Hardware assert MSRs
7680x80000007,         0,  ebx,       3,    smca                   , Scalable MCA (MCAX MSRs)
7690x80000007,         0,  ecx,    31:0,    cpu_pwr_sample_ratio   , CPU power sample time ratio
7700x80000007,         0,  edx,       0,    digital_temp           , Digital temprature sensor
7710x80000007,         0,  edx,       1,    powernow_freq_id       , PowerNOW! frequency scaling
7720x80000007,         0,  edx,       2,    powernow_volt_id       , PowerNOW! voltage scaling
7730x80000007,         0,  edx,       3,    thermal_trip           , THERMTRIP (Thermal Trip)
7740x80000007,         0,  edx,       4,    hw_thermal_control     , Hardware thermal control
7750x80000007,         0,  edx,       5,    sw_thermal_control     , Software thermal control
7760x80000007,         0,  edx,       6,    100mhz_steps           , 100 MHz multiplier control
7770x80000007,         0,  edx,       7,    hw_pstate              , Hardware P-state control
7780x80000007,         0,  edx,       8,    constant_tsc           , TSC ticks at constant rate across all P and C states
7790x80000007,         0,  edx,       9,    cpb                    , Core performance boost
7800x80000007,         0,  edx,      10,    eff_freq_ro            , Read-only effective frequency interface
7810x80000007,         0,  edx,      11,    proc_feedback          , Processor feedback interface (deprecated)
7820x80000007,         0,  edx,      12,    acc_power              , Processor power reporting interface
7830x80000007,         0,  edx,      13,    connected_standby      , CPU Connected Standby support
7840x80000007,         0,  edx,      14,    rapl                   , Runtime Average Power Limit interface
785
786# Leaf 80000008H
787# CPU capacity parameters and extended feature flags (mostly AMD)
788
7890x80000008,         0,  eax,     7:0,    phys_addr_bits         , Max physical address bits
7900x80000008,         0,  eax,    15:8,    virt_addr_bits         , Max virtual address bits
7910x80000008,         0,  eax,   23:16,    guest_phys_addr_bits   , Max nested-paging guest physical address bits
7920x80000008,         0,  ebx,       0,    clzero                 , CLZERO supported
7930x80000008,         0,  ebx,       1,    irperf                 , Instruction retired counter MSR
7940x80000008,         0,  ebx,       2,    xsaveerptr             , XSAVE/XRSTOR always saves/restores FPU error pointers
7950x80000008,         0,  ebx,       3,    invlpgb                , INVLPGB broadcasts a TLB invalidate to all threads
7960x80000008,         0,  ebx,       4,    rdpru                  , RDPRU (Read Processor Register at User level) supported
7970x80000008,         0,  ebx,       6,    mba                    , Memory Bandwidth Allocation (AMD bit)
7980x80000008,         0,  ebx,       8,    mcommit                , MCOMMIT (Memory commit) supported
7990x80000008,         0,  ebx,       9,    wbnoinvd               , WBNOINVD supported
8000x80000008,         0,  ebx,      12,    amd_ibpb               , Indirect Branch Prediction Barrier
8010x80000008,         0,  ebx,      13,    wbinvd_int             , Interruptible WBINVD/WBNOINVD
8020x80000008,         0,  ebx,      14,    amd_ibrs               , Indirect Branch Restricted Speculation
8030x80000008,         0,  ebx,      15,    amd_stibp              , Single Thread Indirect Branch Prediction mode
8040x80000008,         0,  ebx,      16,    ibrs_always_on         , IBRS always-on preferred
8050x80000008,         0,  ebx,      17,    amd_stibp_always_on    , STIBP always-on preferred
8060x80000008,         0,  ebx,      18,    ibrs_fast              , IBRS is preferred over software solution
8070x80000008,         0,  ebx,      19,    ibrs_same_mode         , IBRS provides same mode protection
8080x80000008,         0,  ebx,      20,    no_efer_lmsle          , EFER[LMSLE] bit (Long-Mode Segment Limit Enable) unsupported
8090x80000008,         0,  ebx,      21,    tlb_flush_nested       , INVLPGB RAX[5] bit can be set (nested translations)
8100x80000008,         0,  ebx,      23,    amd_ppin               , Protected Processor Inventory Number
8110x80000008,         0,  ebx,      24,    amd_ssbd               , Speculative Store Bypass Disable
8120x80000008,         0,  ebx,      25,    virt_ssbd              , virtualized SSBD (Speculative Store Bypass Disable)
8130x80000008,         0,  ebx,      26,    amd_ssb_no             , SSBD not needed (fixed in HW)
8140x80000008,         0,  ebx,      27,    cppc                   , Collaborative Processor Performance Control
8150x80000008,         0,  ebx,      28,    amd_psfd               , Predictive Store Forward Disable
8160x80000008,         0,  ebx,      29,    btc_no                 , CPU not affected by Branch Type Confusion
8170x80000008,         0,  ebx,      30,    ibpb_ret               , IBPB clears RSB/RAS too
8180x80000008,         0,  ebx,      31,    brs                    , Branch Sampling supported
8190x80000008,         0,  ecx,     7:0,    cpu_nthreads           , Number of physical threads - 1
8200x80000008,         0,  ecx,   15:12,    apicid_coreid_len      , Number of thread core ID bits (shift) in APIC ID
8210x80000008,         0,  ecx,   17:16,    perf_tsc_len           , Performance time-stamp counter size
8220x80000008,         0,  edx,    15:0,    invlpgb_max_pages      , INVLPGB maximum page count
8230x80000008,         0,  edx,   31:16,    rdpru_max_reg_id       , RDPRU max register ID (ECX input)
824
825# Leaf 8000000AH
826# AMD SVM (Secure Virtual Machine) enumeration
827
8280x8000000a,         0,  eax,     7:0,    svm_version            , SVM revision number
8290x8000000a,         0,  ebx,    31:0,    svm_nasid              , Number of address space identifiers (ASID)
8300x8000000a,         0,  edx,       0,    npt                    , Nested paging
8310x8000000a,         0,  edx,       1,    lbrv                   , LBR virtualization
8320x8000000a,         0,  edx,       2,    svm_lock               , SVM lock
8330x8000000a,         0,  edx,       3,    nrip_save              , NRIP save support on #VMEXIT
8340x8000000a,         0,  edx,       4,    tsc_scale              , MSR based TSC rate control
8350x8000000a,         0,  edx,       5,    vmcb_clean             , VMCB clean bits support
8360x8000000a,         0,  edx,       6,    flushbyasid            , Flush by ASID + Extended VMCB TLB_Control
8370x8000000a,         0,  edx,       7,    decodeassists          , Decode Assists support
8380x8000000a,         0,  edx,      10,    pausefilter            , Pause intercept filter
8390x8000000a,         0,  edx,      12,    pfthreshold            , Pause filter threshold
8400x8000000a,         0,  edx,      13,    avic                   , Advanced virtual interrupt controller
8410x8000000a,         0,  edx,      15,    v_vmsave_vmload        , Virtual VMSAVE/VMLOAD (nested virt)
8420x8000000a,         0,  edx,      16,    vgif                   , Virtualize the Global Interrupt Flag
8430x8000000a,         0,  edx,      17,    gmet                   , Guest mode execution trap
8440x8000000a,         0,  edx,      18,    x2avic                 , Virtual x2APIC
8450x8000000a,         0,  edx,      19,    sss_check              , Supervisor Shadow Stack restrictions
8460x8000000a,         0,  edx,      20,    v_spec_ctrl            , Virtual SPEC_CTRL
8470x8000000a,         0,  edx,      21,    ro_gpt                 , Read-Only guest page table support
8480x8000000a,         0,  edx,      23,    h_mce_override         , Host MCE override
8490x8000000a,         0,  edx,      24,    tlbsync_int            , TLBSYNC intercept + INVLPGB/TLBSYNC in VMCB
8500x8000000a,         0,  edx,      25,    vnmi                   , NMI virtualization
8510x8000000a,         0,  edx,      26,    ibs_virt               , IBS Virtualization
8520x8000000a,         0,  edx,      27,    ext_lvt_off_chg        , Extended LVT offset fault change
8530x8000000a,         0,  edx,      28,    svme_addr_chk          , Guest SVME addr check
854
855# Leaf 80000019H
856# AMD TLB 1G-pages enumeration
857
8580x80000019,         0,  eax,    11:0,    l1_itlb_1g_nentries    , L1 iTLB #entries, 1G pages
8590x80000019,         0,  eax,   15:12,    l1_itlb_1g_assoc       , L1 iTLB associativity, 1G pages
8600x80000019,         0,  eax,   27:16,    l1_dtlb_1g_nentries    , L1 dTLB #entries, 1G pages
8610x80000019,         0,  eax,   31:28,    l1_dtlb_1g_assoc       , L1 dTLB associativity, 1G pages
8620x80000019,         0,  ebx,    11:0,    l2_itlb_1g_nentries    , L2 iTLB #entries, 1G pages
8630x80000019,         0,  ebx,   15:12,    l2_itlb_1g_assoc       , L2 iTLB associativity, 1G pages
8640x80000019,         0,  ebx,   27:16,    l2_dtlb_1g_nentries    , L2 dTLB #entries, 1G pages
8650x80000019,         0,  ebx,   31:28,    l2_dtlb_1g_assoc       , L2 dTLB associativity, 1G pages
866
867# Leaf 8000001AH
868# AMD instruction optimizations enumeration
869
8700x8000001a,         0,  eax,       0,    fp_128                 , Internal FP/SIMD exec data path is 128-bits wide
8710x8000001a,         0,  eax,       1,    movu_preferred         , SSE: MOVU* better than MOVL*/MOVH*
8720x8000001a,         0,  eax,       2,    fp_256                 , internal FP/SSE exec data path is 256-bits wide
873
874# Leaf 8000001BH
875# AMD IBS (Instruction-Based Sampling) enumeration
876
8770x8000001b,         0,  eax,       0,    ibs_flags_valid        , IBS feature flags valid
8780x8000001b,         0,  eax,       1,    ibs_fetch_sampling     , IBS fetch sampling supported
8790x8000001b,         0,  eax,       2,    ibs_op_sampling        , IBS execution sampling supported
8800x8000001b,         0,  eax,       3,    ibs_rdwr_op_counter    , IBS read/write of op counter supported
8810x8000001b,         0,  eax,       4,    ibs_op_count           , IBS OP counting mode supported
8820x8000001b,         0,  eax,       5,    ibs_branch_target      , IBS branch target address reporting supported
8830x8000001b,         0,  eax,       6,    ibs_op_counters_ext    , IBS IbsOpCurCnt/IbsOpMaxCnt extend by 7 bits
8840x8000001b,         0,  eax,       7,    ibs_rip_invalid_chk    , IBS invalid RIP indication supported
8850x8000001b,         0,  eax,       8,    ibs_op_branch_fuse     , IBS fused branch micro-op indication supported
8860x8000001b,         0,  eax,       9,    ibs_fetch_ctl_ext      , IBS Fetch Control Extended MSR (0xc001103c) supported
8870x8000001b,         0,  eax,      10,    ibs_op_data_4          , IBS op data 4 MSR supported
8880x8000001b,         0,  eax,      11,    ibs_l3_miss_filter     , IBS L3-miss filtering supported (Zen4+)
889
890# Leaf 8000001CH
891# AMD LWP (Lightweight Profiling)
892
8930x8000001c,         0,  eax,       0,    os_lwp_avail           , LWP is available to application programs (supported by OS)
8940x8000001c,         0,  eax,       1,    os_lpwval              , LWPVAL instruction (EventId=1) is supported by OS
8950x8000001c,         0,  eax,       2,    os_lwp_ire             , Instructions Retired Event (EventId=2) is supported by OS
8960x8000001c,         0,  eax,       3,    os_lwp_bre             , Branch Retired Event (EventId=3) is supported by OS
8970x8000001c,         0,  eax,       4,    os_lwp_dme             , DCache Miss Event (EventId=4) is supported by OS
8980x8000001c,         0,  eax,       5,    os_lwp_cnh             , CPU Clocks Not Halted event (EventId=5) is supported by OS
8990x8000001c,         0,  eax,       6,    os_lwp_rnh             , CPU Reference clocks Not Halted event (EventId=6) is supported by OS
9000x8000001c,         0,  eax,      29,    os_lwp_cont            , LWP sampling in continuous mode is supported by OS
9010x8000001c,         0,  eax,      30,    os_lwp_ptsc            , Performance Time Stamp Counter in event records is supported by OS
9020x8000001c,         0,  eax,      31,    os_lwp_int             , Interrupt on threshold overflow is supported by OS
9030x8000001c,         0,  ebx,     7:0,    lwp_lwpcb_sz           , LWP Control Block size, in quadwords
9040x8000001c,         0,  ebx,    15:8,    lwp_event_sz           , LWP event record size, in bytes
9050x8000001c,         0,  ebx,   23:16,    lwp_max_events         , LWP max supported EventId value (EventID 255 not included)
9060x8000001c,         0,  ebx,   31:24,    lwp_event_offset       , LWP events area offset in the LWP Control Block
9070x8000001c,         0,  ecx,     4:0,    lwp_latency_max        , Num of bits in cache latency counters (10 to 31)
9080x8000001c,         0,  ecx,       5,    lwp_data_adddr         , Cache miss events report the data address of the reference
9090x8000001c,         0,  ecx,     8:6,    lwp_latency_rnd        , Amount by which cache latency is rounded
9100x8000001c,         0,  ecx,    15:9,    lwp_version            , LWP implementation version
9110x8000001c,         0,  ecx,   23:16,    lwp_buf_min_sz         , LWP event ring buffer min size, in units of 32 event records
9120x8000001c,         0,  ecx,      28,    lwp_branch_predict     , Branches Retired events can be filtered
9130x8000001c,         0,  ecx,      29,    lwp_ip_filtering       , IP filtering (IPI, IPF, BaseIP, and LimitIP @ LWPCP) supported
9140x8000001c,         0,  ecx,      30,    lwp_cache_levels       , Cache-related events can be filtered by cache level
9150x8000001c,         0,  ecx,      31,    lwp_cache_latency      , Cache-related events can be filtered by latency
9160x8000001c,         0,  edx,       0,    hw_lwp_avail           , LWP is available in Hardware
9170x8000001c,         0,  edx,       1,    hw_lpwval              , LWPVAL instruction (EventId=1) is available in HW
9180x8000001c,         0,  edx,       2,    hw_lwp_ire             , Instructions Retired Event (EventId=2) is available in HW
9190x8000001c,         0,  edx,       3,    hw_lwp_bre             , Branch Retired Event (EventId=3) is available in HW
9200x8000001c,         0,  edx,       4,    hw_lwp_dme             , DCache Miss Event (EventId=4) is available in HW
9210x8000001c,         0,  edx,       5,    hw_lwp_cnh             , CPU Clocks Not Halted event (EventId=5) is available in HW
9220x8000001c,         0,  edx,       6,    hw_lwp_rnh             , CPU Reference clocks Not Halted event (EventId=6) is available in HW
9230x8000001c,         0,  edx,      29,    hw_lwp_cont            , LWP sampling in continuous mode is available in HW
9240x8000001c,         0,  edx,      30,    hw_lwp_ptsc            , Performance Time Stamp Counter in event records is available in HW
9250x8000001c,         0,  edx,      31,    hw_lwp_int             , Interrupt on threshold overflow is available in HW
926
927# Leaf 8000001DH
928# AMD deterministic cache parameters
929
9300x8000001d,      31:0,  eax,     4:0,    cache_type             , Cache type field
9310x8000001d,      31:0,  eax,     7:5,    cache_level            , Cache level (1-based)
9320x8000001d,      31:0,  eax,       8,    cache_self_init        , Self-initializing cache level
9330x8000001d,      31:0,  eax,       9,    fully_associative      , Fully-associative cache
9340x8000001d,      31:0,  eax,   25:14,    num_threads_sharing    , Number of logical CPUs sharing cache
9350x8000001d,      31:0,  ebx,    11:0,    cache_linesize         , System coherency line size (0-based)
9360x8000001d,      31:0,  ebx,   21:12,    cache_npartitions      , Physical line partitions (0-based)
9370x8000001d,      31:0,  ebx,   31:22,    cache_nways            , Ways of associativity (0-based)
9380x8000001d,      31:0,  ecx,    30:0,    cache_nsets            , Cache number of sets (0-based)
9390x8000001d,      31:0,  edx,       0,    wbinvd_rll_no_guarantee, WBINVD/INVD not guaranteed for Remote Lower-Level caches
9400x8000001d,      31:0,  edx,       1,    ll_inclusive           , Cache is inclusive of Lower-Level caches
941
942# Leaf 8000001EH
943# AMD CPU topology enumeration
944
9450x8000001e,         0,  eax,    31:0,    ext_apic_id            , Extended APIC ID
9460x8000001e,         0,  ebx,     7:0,    core_id                , Unique per-socket logical core unit ID
9470x8000001e,         0,  ebx,    15:8,    core_nthreas           , #Threads per core (zero-based)
9480x8000001e,         0,  ecx,     7:0,    node_id                , Node (die) ID of invoking logical CPU
9490x8000001e,         0,  ecx,    10:8,    nnodes_per_socket      , #nodes in invoking logical CPU's package/socket
950
951# Leaf 8000001FH
952# AMD encrypted memory capabilities enumeration (SME/SEV)
953
9540x8000001f,         0,  eax,       0,    sme                    , Secure Memory Encryption supported
9550x8000001f,         0,  eax,       1,    sev                    , Secure Encrypted Virtualization supported
9560x8000001f,         0,  eax,       2,    vm_page_flush          , VM Page Flush MSR (0xc001011e) available
9570x8000001f,         0,  eax,       3,    sev_es                 , SEV Encrypted State supported
9580x8000001f,         0,  eax,       4,    sev_nested_paging      , SEV secure nested paging supported
9590x8000001f,         0,  eax,       5,    vm_permission_levels   , VMPL supported
9600x8000001f,         0,  eax,       6,    rpmquery               , RPMQUERY instruction supported
9610x8000001f,         0,  eax,       7,    vmpl_sss               , VMPL supervisor shadwo stack supported
9620x8000001f,         0,  eax,       8,    secure_tsc             , Secure TSC supported
9630x8000001f,         0,  eax,       9,    v_tsc_aux              , Hardware virtualizes TSC_AUX
9640x8000001f,         0,  eax,      10,    sme_coherent           , HW enforces cache coherency across encryption domains
9650x8000001f,         0,  eax,      11,    req_64bit_hypervisor   , SEV guest mandates 64-bit hypervisor
9660x8000001f,         0,  eax,      12,    restricted_injection   , Restricted Injection supported
9670x8000001f,         0,  eax,      13,    alternate_injection    , Alternate Injection supported
9680x8000001f,         0,  eax,      14,    debug_swap             , SEV-ES: full debug state swap is supported
9690x8000001f,         0,  eax,      15,    disallow_host_ibs      , SEV-ES: Disallowing IBS use by the host is supported
9700x8000001f,         0,  eax,      16,    virt_transparent_enc   , Virtual Transparent Encryption
9710x8000001f,         0,  eax,      17,    vmgexit_paremeter      , VmgexitParameter is supported in SEV_FEATURES
9720x8000001f,         0,  eax,      18,    virt_tom_msr           , Virtual TOM MSR is supported
9730x8000001f,         0,  eax,      19,    virt_ibs               , IBS state virtualization is supported for SEV-ES guests
9740x8000001f,         0,  eax,      24,    vmsa_reg_protection    , VMSA register protection is supported
9750x8000001f,         0,  eax,      25,    smt_protection         , SMT protection is supported
9760x8000001f,         0,  eax,      28,    svsm_page_msr          , SVSM communication page MSR (0xc001f000h) is supported
9770x8000001f,         0,  eax,      29,    nested_virt_snp_msr    , VIRT_RMPUPDATE/VIRT_PSMASH MSRs are supported
9780x8000001f,         0,  ebx,     5:0,    pte_cbit_pos           , PTE bit number used to enable memory encryption
9790x8000001f,         0,  ebx,    11:6,    phys_addr_reduction_nbits, Reduction of phys address space when encryption is enabled, in bits
9800x8000001f,         0,  ebx,   15:12,    vmpl_count             , Number of VM permission levels (VMPL) supported
9810x8000001f,         0,  ecx,    31:0,    enc_guests_max         , Max supported number of simultaneous encrypted guests
9820x8000001f,         0,  edx,    31:0,    min_sev_asid_no_sev_es , Mininum ASID for SEV-enabled SEV-ES-disabled guest
983
984# Leaf 80000020H
985# AMD Platform QoS extended feature IDs
986
9870x80000020,         0,  ebx,       1,    mba                    , Memory Bandwidth Allocation support
9880x80000020,         0,  ebx,       2,    smba                   , Slow Memory Bandwidth Allocation support
9890x80000020,         0,  ebx,       3,    bmec                   , Bandwidth Monitoring Event Configuration support
9900x80000020,         0,  ebx,       4,    l3rr                   , L3 Range Reservation support
9910x80000020,         1,  eax,    31:0,    mba_limit_len          , MBA enforcement limit size
9920x80000020,         1,  edx,    31:0,    mba_cos_max            , MBA max Class of Service number (zero-based)
9930x80000020,         2,  eax,    31:0,    smba_limit_len         , SMBA enforcement limit size
9940x80000020,         2,  edx,    31:0,    smba_cos_max           , SMBA max Class of Service number (zero-based)
9950x80000020,         3,  ebx,     7:0,    bmec_num_events        , BMEC number of bandwidth events available
9960x80000020,         3,  ecx,       0,    bmec_local_reads       , Local NUMA reads can be tracked
9970x80000020,         3,  ecx,       1,    bmec_remote_reads      , Remote NUMA reads can be tracked
9980x80000020,         3,  ecx,       2,    bmec_local_nontemp_wr  , Local NUMA non-temporal writes can be tracked
9990x80000020,         3,  ecx,       3,    bmec_remote_nontemp_wr , Remote NUMA non-temporal writes can be tracked
10000x80000020,         3,  ecx,       4,    bmec_local_slow_mem_rd , Local NUMA slow-memory reads can be tracked
10010x80000020,         3,  ecx,       5,    bmec_remote_slow_mem_rd, Remote NUMA slow-memory reads can be tracked
10020x80000020,         3,  ecx,       6,    bmec_all_dirty_victims , Dirty QoS victims to all types of memory can be tracked
1003
1004# Leaf 80000021H
1005# AMD extended features enumeration 2
1006
10070x80000021,         0,  eax,       0,    no_nested_data_bp      , No nested data breakpoints
10080x80000021,         0,  eax,       1,    fsgs_non_serializing   , WRMSR to {FS,GS,KERNEL_GS}_BASE is non-serializing
10090x80000021,         0,  eax,       2,    lfence_rdtsc           , LFENCE always serializing / synchronizes RDTSC
10100x80000021,         0,  eax,       3,    smm_page_cfg_lock      , SMM paging configuration lock is supported
10110x80000021,         0,  eax,       6,    null_sel_clr_base      , Null selector clears base
10120x80000021,         0,  eax,       7,    upper_addr_ignore      , EFER MSR Upper Address Ignore Enable bit supported
10130x80000021,         0,  eax,       8,    autoibrs               , EFER MSR Automatic IBRS enable bit supported
10140x80000021,         0,  eax,       9,    no_smm_ctl_msr         , SMM_CTL MSR (0xc0010116) is not present
10150x80000021,         0,  eax,      10,    fsrs_supported         , Fast Short Rep Stosb (FSRS) is supported
10160x80000021,         0,  eax,      11,    fsrc_supported         , Fast Short Repe Cmpsb (FSRC) is supported
10170x80000021,         0,  eax,      13,    prefetch_ctl_msr       , Prefetch control MSR is supported
10180x80000021,         0,  eax,      17,    user_cpuid_disable     , #GP when executing CPUID at CPL > 0 is supported
10190x80000021,         0,  eax,      18,    epsf_supported         , Enhanced Predictive Store Forwarding (EPSF) is supported
10200x80000021,         0,  ebx,    11:0,    microcode_patch_size   , Size of microcode patch, in 16-byte units
1021
1022# Leaf 80000022H
1023# AMD Performance Monitoring v2 enumeration
1024
10250x80000022,         0,  eax,       0,    perfmon_v2             , Performance monitoring v2 supported
10260x80000022,         0,  eax,       1,    lbr_v2                 , Last Branch Record v2 extensions (LBR Stack)
10270x80000022,         0,  eax,       2,    lbr_pmc_freeze         , Freezing core performance counters / LBR Stack supported
10280x80000022,         0,  ebx,     3:0,    n_pmc_core             , Number of core perfomance counters
10290x80000022,         0,  ebx,     9:4,    lbr_v2_stack_size      , Number of available LBR stack entries
10300x80000022,         0,  ebx,   15:10,    n_pmc_northbridge      , Number of available northbridge (data fabric) performance counters
10310x80000022,         0,  ebx,   21:16,    n_pmc_umc              , Number of available UMC performance counters
10320x80000022,         0,  ecx,    31:0,    active_umc_bitmask     , Active UMCs bitmask
1033
1034# Leaf 80000023H
1035# AMD Secure Multi-key Encryption enumeration
1036
10370x80000023,         0,  eax,       0,    mem_hmk_mode           , MEM-HMK encryption mode is supported
10380x80000023,         0,  ebx,    15:0,    mem_hmk_avail_keys     , MEM-HMK mode: total num of available encryption keys
1039
1040# Leaf 80000026H
1041# AMD extended topology enumeration v2
1042
10430x80000026,       3:0,  eax,     4:0,    x2apic_id_shift        , Bit width of this level (previous levels inclusive)
10440x80000026,       3:0,  eax,      29,    core_has_pwreff_ranking, This core has a power efficiency ranking
10450x80000026,       3:0,  eax,      30,    domain_has_hybrid_cores, This domain level has hybrid (E, P) cores
10460x80000026,       3:0,  eax,      31,    domain_core_count_asymm, The 'Core' domain has asymmetric cores count
10470x80000026,       3:0,  ebx,    15:0,    domain_lcpus_count     , Number of logical CPUs at this domain instance
10480x80000026,       3:0,  ebx,   23:16,    core_pwreff_ranking    , This core's static power efficiency ranking
10490x80000026,       3:0,  ebx,   27:24,    core_native_model_id   , This core's native model ID
10500x80000026,       3:0,  ebx,   31:28,    core_type              , This core's type
10510x80000026,       3:0,  ecx,     7:0,    domain_level           , This domain level (subleaf ID)
10520x80000026,       3:0,  ecx,    15:8,    domain_type            , This domain type
10530x80000026,       3:0,  edx,    31:0,    x2apic_id              , x2APIC ID of current logical CPU
1054