xref: /openbmc/qemu/target/riscv/cpu_cfg_fields.h.inc (revision e240f6cc25917f3138d9e95e0343ae23b63a3f8c)
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_svrsw60t59b)
61BOOL_FIELD(ext_svvptc)
62BOOL_FIELD(ext_svukte)
63BOOL_FIELD(ext_zdinx)
64BOOL_FIELD(ext_zaamo)
65BOOL_FIELD(ext_zacas)
66BOOL_FIELD(ext_zama16b)
67BOOL_FIELD(ext_zabha)
68BOOL_FIELD(ext_zalrsc)
69BOOL_FIELD(ext_zawrs)
70BOOL_FIELD(ext_zfa)
71BOOL_FIELD(ext_zfbfmin)
72BOOL_FIELD(ext_zfh)
73BOOL_FIELD(ext_zfhmin)
74BOOL_FIELD(ext_zfinx)
75BOOL_FIELD(ext_zhinx)
76BOOL_FIELD(ext_zhinxmin)
77BOOL_FIELD(ext_zve32f)
78BOOL_FIELD(ext_zve32x)
79BOOL_FIELD(ext_zve64f)
80BOOL_FIELD(ext_zve64d)
81BOOL_FIELD(ext_zve64x)
82BOOL_FIELD(ext_zvbb)
83BOOL_FIELD(ext_zvbc)
84BOOL_FIELD(ext_zvkb)
85BOOL_FIELD(ext_zvkg)
86BOOL_FIELD(ext_zvkned)
87BOOL_FIELD(ext_zvknha)
88BOOL_FIELD(ext_zvknhb)
89BOOL_FIELD(ext_zvksed)
90BOOL_FIELD(ext_zvksh)
91BOOL_FIELD(ext_zvkt)
92BOOL_FIELD(ext_zvkn)
93BOOL_FIELD(ext_zvknc)
94BOOL_FIELD(ext_zvkng)
95BOOL_FIELD(ext_zvks)
96BOOL_FIELD(ext_zvksc)
97BOOL_FIELD(ext_zvksg)
98BOOL_FIELD(ext_zmmul)
99BOOL_FIELD(ext_zvfbfmin)
100BOOL_FIELD(ext_zvfbfwma)
101BOOL_FIELD(ext_zvfh)
102BOOL_FIELD(ext_zvfhmin)
103BOOL_FIELD(ext_smaia)
104BOOL_FIELD(ext_ssaia)
105BOOL_FIELD(ext_smctr)
106BOOL_FIELD(ext_ssctr)
107BOOL_FIELD(ext_sscofpmf)
108BOOL_FIELD(ext_smepmp)
109BOOL_FIELD(ext_smrnmi)
110BOOL_FIELD(ext_ssnpm)
111BOOL_FIELD(ext_smnpm)
112BOOL_FIELD(ext_smmpm)
113BOOL_FIELD(ext_sspm)
114BOOL_FIELD(ext_supm)
115BOOL_FIELD(rvv_ta_all_1s)
116BOOL_FIELD(rvv_ma_all_1s)
117BOOL_FIELD(rvv_vl_half_avl)
118BOOL_FIELD(rvv_vsetvl_x0_vill)
119/* Named features  */
120BOOL_FIELD(ext_svade)
121BOOL_FIELD(ext_zic64b)
122BOOL_FIELD(ext_ssstateen)
123BOOL_FIELD(ext_sha)
124
125/*
126 * Always 'true' booleans for named features
127 * TCG always implement/can't be user disabled,
128 * based on spec version.
129 */
130BOOL_FIELD(has_priv_1_13)
131BOOL_FIELD(has_priv_1_12)
132BOOL_FIELD(has_priv_1_11)
133
134/* Always enabled for TCG if has_priv_1_11 */
135BOOL_FIELD(ext_ziccrse)
136
137/* Vendor-specific custom extensions */
138BOOL_FIELD(ext_xtheadba)
139BOOL_FIELD(ext_xtheadbb)
140BOOL_FIELD(ext_xtheadbs)
141BOOL_FIELD(ext_xtheadcmo)
142BOOL_FIELD(ext_xtheadcondmov)
143BOOL_FIELD(ext_xtheadfmemidx)
144BOOL_FIELD(ext_xtheadfmv)
145BOOL_FIELD(ext_xtheadmac)
146BOOL_FIELD(ext_xtheadmemidx)
147BOOL_FIELD(ext_xtheadmempair)
148BOOL_FIELD(ext_xtheadsync)
149BOOL_FIELD(ext_XVentanaCondOps)
150
151BOOL_FIELD(mmu)
152BOOL_FIELD(pmp)
153BOOL_FIELD(debug)
154BOOL_FIELD(misa_w)
155
156BOOL_FIELD(short_isa_string)
157
158TYPED_FIELD(uint32_t, mvendorid, 0)
159TYPED_FIELD(uint64_t, marchid, 0)
160TYPED_FIELD(uint64_t, mimpid, 0)
161
162TYPED_FIELD(uint32_t, pmu_mask, 0)
163TYPED_FIELD(uint16_t, vlenb, 0)
164TYPED_FIELD(uint16_t, elen, 0)
165TYPED_FIELD(uint16_t, cbom_blocksize, 0)
166TYPED_FIELD(uint16_t, cbop_blocksize, 0)
167TYPED_FIELD(uint16_t, cboz_blocksize, 0)
168TYPED_FIELD(uint8_t,  pmp_regions, 0)
169
170TYPED_FIELD(int8_t, max_satp_mode, -1)
171
172#undef BOOL_FIELD
173#undef TYPED_FIELD
174