xref: /openbmc/qemu/target/riscv/cpu_cfg_fields.h.inc (revision 12877e739b3afff2b6ff7b80d6a6b22e451671c2)
1*12877e73SPaolo Bonzini/*
2*12877e73SPaolo Bonzini * Required definitions before including this file:
3*12877e73SPaolo Bonzini *
4*12877e73SPaolo Bonzini * #define BOOL_FIELD(x)
5*12877e73SPaolo Bonzini * #define TYPED_FIELD(type, x)
6*12877e73SPaolo Bonzini */
7*12877e73SPaolo Bonzini
8*12877e73SPaolo BonziniBOOL_FIELD(ext_zba)
9*12877e73SPaolo BonziniBOOL_FIELD(ext_zbb)
10*12877e73SPaolo BonziniBOOL_FIELD(ext_zbc)
11*12877e73SPaolo BonziniBOOL_FIELD(ext_zbkb)
12*12877e73SPaolo BonziniBOOL_FIELD(ext_zbkc)
13*12877e73SPaolo BonziniBOOL_FIELD(ext_zbkx)
14*12877e73SPaolo BonziniBOOL_FIELD(ext_zbs)
15*12877e73SPaolo BonziniBOOL_FIELD(ext_zca)
16*12877e73SPaolo BonziniBOOL_FIELD(ext_zcb)
17*12877e73SPaolo BonziniBOOL_FIELD(ext_zcd)
18*12877e73SPaolo BonziniBOOL_FIELD(ext_zce)
19*12877e73SPaolo BonziniBOOL_FIELD(ext_zcf)
20*12877e73SPaolo BonziniBOOL_FIELD(ext_zcmp)
21*12877e73SPaolo BonziniBOOL_FIELD(ext_zcmt)
22*12877e73SPaolo BonziniBOOL_FIELD(ext_zk)
23*12877e73SPaolo BonziniBOOL_FIELD(ext_zkn)
24*12877e73SPaolo BonziniBOOL_FIELD(ext_zknd)
25*12877e73SPaolo BonziniBOOL_FIELD(ext_zkne)
26*12877e73SPaolo BonziniBOOL_FIELD(ext_zknh)
27*12877e73SPaolo BonziniBOOL_FIELD(ext_zkr)
28*12877e73SPaolo BonziniBOOL_FIELD(ext_zks)
29*12877e73SPaolo BonziniBOOL_FIELD(ext_zksed)
30*12877e73SPaolo BonziniBOOL_FIELD(ext_zksh)
31*12877e73SPaolo BonziniBOOL_FIELD(ext_zkt)
32*12877e73SPaolo BonziniBOOL_FIELD(ext_zifencei)
33*12877e73SPaolo BonziniBOOL_FIELD(ext_zicntr)
34*12877e73SPaolo BonziniBOOL_FIELD(ext_zicsr)
35*12877e73SPaolo BonziniBOOL_FIELD(ext_zicbom)
36*12877e73SPaolo BonziniBOOL_FIELD(ext_zicbop)
37*12877e73SPaolo BonziniBOOL_FIELD(ext_zicboz)
38*12877e73SPaolo BonziniBOOL_FIELD(ext_zicfilp)
39*12877e73SPaolo BonziniBOOL_FIELD(ext_zicfiss)
40*12877e73SPaolo BonziniBOOL_FIELD(ext_zicond)
41*12877e73SPaolo BonziniBOOL_FIELD(ext_zihintntl)
42*12877e73SPaolo BonziniBOOL_FIELD(ext_zihintpause)
43*12877e73SPaolo BonziniBOOL_FIELD(ext_zihpm)
44*12877e73SPaolo BonziniBOOL_FIELD(ext_zimop)
45*12877e73SPaolo BonziniBOOL_FIELD(ext_zcmop)
46*12877e73SPaolo BonziniBOOL_FIELD(ext_ztso)
47*12877e73SPaolo BonziniBOOL_FIELD(ext_smstateen)
48*12877e73SPaolo BonziniBOOL_FIELD(ext_sstc)
49*12877e73SPaolo BonziniBOOL_FIELD(ext_smcdeleg)
50*12877e73SPaolo BonziniBOOL_FIELD(ext_ssccfg)
51*12877e73SPaolo BonziniBOOL_FIELD(ext_smcntrpmf)
52*12877e73SPaolo BonziniBOOL_FIELD(ext_smcsrind)
53*12877e73SPaolo BonziniBOOL_FIELD(ext_sscsrind)
54*12877e73SPaolo BonziniBOOL_FIELD(ext_ssdbltrp)
55*12877e73SPaolo BonziniBOOL_FIELD(ext_smdbltrp)
56*12877e73SPaolo BonziniBOOL_FIELD(ext_svadu)
57*12877e73SPaolo BonziniBOOL_FIELD(ext_svinval)
58*12877e73SPaolo BonziniBOOL_FIELD(ext_svnapot)
59*12877e73SPaolo BonziniBOOL_FIELD(ext_svpbmt)
60*12877e73SPaolo BonziniBOOL_FIELD(ext_svvptc)
61*12877e73SPaolo BonziniBOOL_FIELD(ext_svukte)
62*12877e73SPaolo BonziniBOOL_FIELD(ext_zdinx)
63*12877e73SPaolo BonziniBOOL_FIELD(ext_zaamo)
64*12877e73SPaolo BonziniBOOL_FIELD(ext_zacas)
65*12877e73SPaolo BonziniBOOL_FIELD(ext_zama16b)
66*12877e73SPaolo BonziniBOOL_FIELD(ext_zabha)
67*12877e73SPaolo BonziniBOOL_FIELD(ext_zalrsc)
68*12877e73SPaolo BonziniBOOL_FIELD(ext_zawrs)
69*12877e73SPaolo BonziniBOOL_FIELD(ext_zfa)
70*12877e73SPaolo BonziniBOOL_FIELD(ext_zfbfmin)
71*12877e73SPaolo BonziniBOOL_FIELD(ext_zfh)
72*12877e73SPaolo BonziniBOOL_FIELD(ext_zfhmin)
73*12877e73SPaolo BonziniBOOL_FIELD(ext_zfinx)
74*12877e73SPaolo BonziniBOOL_FIELD(ext_zhinx)
75*12877e73SPaolo BonziniBOOL_FIELD(ext_zhinxmin)
76*12877e73SPaolo BonziniBOOL_FIELD(ext_zve32f)
77*12877e73SPaolo BonziniBOOL_FIELD(ext_zve32x)
78*12877e73SPaolo BonziniBOOL_FIELD(ext_zve64f)
79*12877e73SPaolo BonziniBOOL_FIELD(ext_zve64d)
80*12877e73SPaolo BonziniBOOL_FIELD(ext_zve64x)
81*12877e73SPaolo BonziniBOOL_FIELD(ext_zvbb)
82*12877e73SPaolo BonziniBOOL_FIELD(ext_zvbc)
83*12877e73SPaolo BonziniBOOL_FIELD(ext_zvkb)
84*12877e73SPaolo BonziniBOOL_FIELD(ext_zvkg)
85*12877e73SPaolo BonziniBOOL_FIELD(ext_zvkned)
86*12877e73SPaolo BonziniBOOL_FIELD(ext_zvknha)
87*12877e73SPaolo BonziniBOOL_FIELD(ext_zvknhb)
88*12877e73SPaolo BonziniBOOL_FIELD(ext_zvksed)
89*12877e73SPaolo BonziniBOOL_FIELD(ext_zvksh)
90*12877e73SPaolo BonziniBOOL_FIELD(ext_zvkt)
91*12877e73SPaolo BonziniBOOL_FIELD(ext_zvkn)
92*12877e73SPaolo BonziniBOOL_FIELD(ext_zvknc)
93*12877e73SPaolo BonziniBOOL_FIELD(ext_zvkng)
94*12877e73SPaolo BonziniBOOL_FIELD(ext_zvks)
95*12877e73SPaolo BonziniBOOL_FIELD(ext_zvksc)
96*12877e73SPaolo BonziniBOOL_FIELD(ext_zvksg)
97*12877e73SPaolo BonziniBOOL_FIELD(ext_zmmul)
98*12877e73SPaolo BonziniBOOL_FIELD(ext_zvfbfmin)
99*12877e73SPaolo BonziniBOOL_FIELD(ext_zvfbfwma)
100*12877e73SPaolo BonziniBOOL_FIELD(ext_zvfh)
101*12877e73SPaolo BonziniBOOL_FIELD(ext_zvfhmin)
102*12877e73SPaolo BonziniBOOL_FIELD(ext_smaia)
103*12877e73SPaolo BonziniBOOL_FIELD(ext_ssaia)
104*12877e73SPaolo BonziniBOOL_FIELD(ext_smctr)
105*12877e73SPaolo BonziniBOOL_FIELD(ext_ssctr)
106*12877e73SPaolo BonziniBOOL_FIELD(ext_sscofpmf)
107*12877e73SPaolo BonziniBOOL_FIELD(ext_smepmp)
108*12877e73SPaolo BonziniBOOL_FIELD(ext_smrnmi)
109*12877e73SPaolo BonziniBOOL_FIELD(ext_ssnpm)
110*12877e73SPaolo BonziniBOOL_FIELD(ext_smnpm)
111*12877e73SPaolo BonziniBOOL_FIELD(ext_smmpm)
112*12877e73SPaolo BonziniBOOL_FIELD(ext_sspm)
113*12877e73SPaolo BonziniBOOL_FIELD(ext_supm)
114*12877e73SPaolo BonziniBOOL_FIELD(rvv_ta_all_1s)
115*12877e73SPaolo BonziniBOOL_FIELD(rvv_ma_all_1s)
116*12877e73SPaolo BonziniBOOL_FIELD(rvv_vl_half_avl)
117*12877e73SPaolo Bonzini/* Named features  */
118*12877e73SPaolo BonziniBOOL_FIELD(ext_svade)
119*12877e73SPaolo BonziniBOOL_FIELD(ext_zic64b)
120*12877e73SPaolo BonziniBOOL_FIELD(ext_ssstateen)
121*12877e73SPaolo BonziniBOOL_FIELD(ext_sha)
122*12877e73SPaolo Bonzini
123*12877e73SPaolo Bonzini/*
124*12877e73SPaolo Bonzini * Always 'true' booleans for named features
125*12877e73SPaolo Bonzini * TCG always implement/can't be user disabled,
126*12877e73SPaolo Bonzini * based on spec version.
127*12877e73SPaolo Bonzini */
128*12877e73SPaolo BonziniBOOL_FIELD(has_priv_1_13)
129*12877e73SPaolo BonziniBOOL_FIELD(has_priv_1_12)
130*12877e73SPaolo BonziniBOOL_FIELD(has_priv_1_11)
131*12877e73SPaolo Bonzini
132*12877e73SPaolo Bonzini/* Always enabled for TCG if has_priv_1_11 */
133*12877e73SPaolo BonziniBOOL_FIELD(ext_ziccrse)
134*12877e73SPaolo Bonzini
135*12877e73SPaolo Bonzini/* Vendor-specific custom extensions */
136*12877e73SPaolo BonziniBOOL_FIELD(ext_xtheadba)
137*12877e73SPaolo BonziniBOOL_FIELD(ext_xtheadbb)
138*12877e73SPaolo BonziniBOOL_FIELD(ext_xtheadbs)
139*12877e73SPaolo BonziniBOOL_FIELD(ext_xtheadcmo)
140*12877e73SPaolo BonziniBOOL_FIELD(ext_xtheadcondmov)
141*12877e73SPaolo BonziniBOOL_FIELD(ext_xtheadfmemidx)
142*12877e73SPaolo BonziniBOOL_FIELD(ext_xtheadfmv)
143*12877e73SPaolo BonziniBOOL_FIELD(ext_xtheadmac)
144*12877e73SPaolo BonziniBOOL_FIELD(ext_xtheadmemidx)
145*12877e73SPaolo BonziniBOOL_FIELD(ext_xtheadmempair)
146*12877e73SPaolo BonziniBOOL_FIELD(ext_xtheadsync)
147*12877e73SPaolo BonziniBOOL_FIELD(ext_XVentanaCondOps)
148*12877e73SPaolo Bonzini
149*12877e73SPaolo BonziniBOOL_FIELD(mmu)
150*12877e73SPaolo BonziniBOOL_FIELD(pmp)
151*12877e73SPaolo BonziniBOOL_FIELD(debug)
152*12877e73SPaolo BonziniBOOL_FIELD(misa_w)
153*12877e73SPaolo Bonzini
154*12877e73SPaolo BonziniBOOL_FIELD(short_isa_string)
155*12877e73SPaolo Bonzini
156*12877e73SPaolo BonziniTYPED_FIELD(uint32_t, mvendorid)
157*12877e73SPaolo BonziniTYPED_FIELD(uint64_t, marchid)
158*12877e73SPaolo BonziniTYPED_FIELD(uint64_t, mimpid)
159*12877e73SPaolo Bonzini
160*12877e73SPaolo BonziniTYPED_FIELD(uint32_t, pmu_mask)
161*12877e73SPaolo BonziniTYPED_FIELD(uint16_t, vlenb)
162*12877e73SPaolo BonziniTYPED_FIELD(uint16_t, elen)
163*12877e73SPaolo BonziniTYPED_FIELD(uint16_t, cbom_blocksize)
164*12877e73SPaolo BonziniTYPED_FIELD(uint16_t, cbop_blocksize)
165*12877e73SPaolo BonziniTYPED_FIELD(uint16_t, cboz_blocksize)
166*12877e73SPaolo Bonzini
167*12877e73SPaolo BonziniTYPED_FIELD(int8_t, max_satp_mode)
168*12877e73SPaolo Bonzini
169*12877e73SPaolo Bonzini#undef BOOL_FIELD
170*12877e73SPaolo Bonzini#undef TYPED_FIELD
171