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