1 from soc
.minerva
.csr
import CSRAccess
5 "Opcode", "Funct3", "Funct7", "Funct12", "CSRIndex", "Cause",
6 "flat_layout", "misa_layout", "mstatus_layout", "mtvec_layout", "mepc_layout",
7 "mip_layout", "mie_layout", "mcause_layout", "dcsr_layout", "tdata1_layout"
25 BEQ
= B
= ADD
= FENCE
= PRIV
= MUL
= 0b000
26 BNE
= H
= SLL
= FENCEI
= CSRRW
= MULH
= 0b001
27 _
= W
= SLT
= _
= CSRRS
= MULHSU
= 0b010
28 _
= _
= SLTU
= _
= CSRRC
= MULHU
= 0b011
29 BLT
= BU
= XOR
= _
= _
= DIV
= 0b100
30 BGE
= HU
= SR
= _
= CSRRWI
= DIVU
= 0b101
31 BLTU
= _
= OR
= _
= CSRRSI
= REM
= 0b110
32 BGEU
= _
= AND
= _
= CSRRCI
= REMU
= 0b111
42 ECALL
= 0b000000000000
43 EBREAK
= 0b000000000001
82 FETCH_ACCESS_FAULT
= 1
83 ILLEGAL_INSTRUCTION
= 2
88 STORE_ACCESS_FAULT
= 7
96 U_SOFTWARE_INTERRUPT
= 0
97 S_SOFTWARE_INTERRUPT
= 1
98 M_SOFTWARE_INTERRUPT
= 3
100 S_TIMER_INTERRUPT
= 5
101 M_TIMER_INTERRUPT
= 7
102 U_EXTERNAL_INTERRUPT
= 8
103 S_EXTERNAL_INTERRUPT
= 9
104 M_EXTERNAL_INTERRUPT
= 11
110 ("value", 32, CSRAccess
.WARL
)
115 ("extensions", 26, CSRAccess
.WARL
),
116 ("wiri0", 4, CSRAccess
.WIRI
),
117 ("mxl", 2, CSRAccess
.WARL
)
122 ("uie", 1, CSRAccess
.WARL
), # User Interrupt Enable
123 ("sie", 1, CSRAccess
.WARL
), # Supervisor Interrupt Enable
124 ("wpri0", 1, CSRAccess
.WPRI
),
125 ("mie", 1, CSRAccess
.WARL
), # Machine Interrupt Enable
126 ("upie", 1, CSRAccess
.WARL
), # User Previous Interrupt Enable
127 ("spie", 1, CSRAccess
.WARL
), # Supervisor Previous Interrupt Enable
128 ("wpri1", 1, CSRAccess
.WPRI
),
129 ("mpie", 1, CSRAccess
.WARL
), # Machine Previous Interrupt Enable
130 ("spp", 1, CSRAccess
.WARL
), # Supervisor Previous Privilege
131 ("wpri2", 2, CSRAccess
.WPRI
),
132 ("mpp", 2, CSRAccess
.WARL
), # Machine Previous Privilege
133 ("fs", 2, CSRAccess
.WARL
), # FPU Status
134 ("xs", 2, CSRAccess
.WARL
), # user-mode eXtensions Status
135 ("mprv", 1, CSRAccess
.WARL
), # Modify PRiVilege
136 ("sum", 1, CSRAccess
.WARL
), # Supervisor User Memory access
137 ("mxr", 1, CSRAccess
.WARL
), # Make eXecutable Readable
138 ("tvm", 1, CSRAccess
.WARL
), # Trap Virtual Memory
139 ("tw", 1, CSRAccess
.WARL
), # Timeout Wait
140 ("tsr", 1, CSRAccess
.WARL
), # Trap SRET
141 ("wpri3", 8, CSRAccess
.WPRI
),
142 ("sd", 1, CSRAccess
.WARL
) # State Dirty (set if XS or FS are set to dirty)
147 ("mode", 2, CSRAccess
.WARL
),
148 ("base", 30, CSRAccess
.WARL
)
153 ("zero", 2, CSRAccess
.WIRI
), # 16-bit instructions are not supported
154 ("base", 30, CSRAccess
.WARL
)
159 ("usip", 1, CSRAccess
.WARL
),
160 ("ssip", 1, CSRAccess
.WARL
),
161 ("wiri0", 1, CSRAccess
.WIRI
),
162 ("msip", 1, CSRAccess
.WARL
),
163 ("utip", 1, CSRAccess
.WARL
),
164 ("stip", 1, CSRAccess
.WARL
),
165 ("wiri1", 1, CSRAccess
.WIRI
),
166 ("mtip", 1, CSRAccess
.WARL
),
167 ("ueip", 1, CSRAccess
.WARL
),
168 ("seip", 1, CSRAccess
.WARL
),
169 ("wiri2", 1, CSRAccess
.WIRI
),
170 ("meip", 1, CSRAccess
.WARL
),
171 ("wiri3", 20, CSRAccess
.WIRI
)
176 ("usie", 1, CSRAccess
.WARL
),
177 ("ssie", 1, CSRAccess
.WARL
),
178 ("wpri0", 1, CSRAccess
.WPRI
),
179 ("msie", 1, CSRAccess
.WARL
),
180 ("utie", 1, CSRAccess
.WARL
),
181 ("stie", 1, CSRAccess
.WARL
),
182 ("wpri1", 1, CSRAccess
.WPRI
),
183 ("mtie", 1, CSRAccess
.WARL
),
184 ("ueie", 1, CSRAccess
.WARL
),
185 ("seie", 1, CSRAccess
.WARL
),
186 ("wpri2", 1, CSRAccess
.WPRI
),
187 ("meie", 1, CSRAccess
.WARL
),
188 ("wpri3", 20, CSRAccess
.WPRI
)
193 ("ecode", 31, CSRAccess
.WARL
),
194 ("interrupt", 1, CSRAccess
.WARL
)
199 ("prv", 2, CSRAccess
.WARL
), # Privilege level before Debug Mode was entered
200 ("step", 1, CSRAccess
.WARL
), # Execute a single instruction and re-enter Debug Mode
201 ("nmip", 1, CSRAccess
.WLRL
), # A non-maskable interrupt is pending
202 ("mprven", 1, CSRAccess
.WARL
), # Use mstatus.mprv in Debug Mode
203 ("zero0", 1, CSRAccess
.WPRI
),
204 ("cause", 3, CSRAccess
.WLRL
), # Explains why Debug Mode was entered
205 ("stoptime", 1, CSRAccess
.WARL
), # Stop timer increment during Debug Mode
206 ("stopcount", 1, CSRAccess
.WARL
), # Stop counter increment during Debug Mode
207 ("stepie", 1, CSRAccess
.WARL
), # Enable interrupts during single stepping
208 ("ebreaku", 1, CSRAccess
.WARL
), # EBREAKs in U-mode enter Debug Mode
209 ("ebreaks", 1, CSRAccess
.WARL
), # EBREAKs in S-mode enter Debug Mode
210 ("zero1", 1, CSRAccess
.WPRI
),
211 ("ebreakm", 1, CSRAccess
.WARL
), # EBREAKs in M-mode enter Debug Mode
212 ("zero2", 12, CSRAccess
.WPRI
),
213 ("xdebugver", 4, CSRAccess
.WLRL
) # External Debug specification version
218 ("data", 27, CSRAccess
.WARL
),
219 ("dmode", 1, CSRAccess
.WARL
),
220 ("type", 4, CSRAccess
.WARL
)