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