mirror of
https://github.com/openhwgroup/cva6.git
synced 2025-04-19 03:44:46 -04:00
1863 lines
40 KiB
YAML
1863 lines
40 KiB
YAML
# Copyright 2024 Thales DIS France SAS
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
# you may not use this file except in compliance with the License.
|
|
# You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
# See the License for the specific language governing permissions and
|
|
# limitations under the License.
|
|
#
|
|
# Original Author: Zbigniew CHAMSKI - Thales
|
|
# Updated from CV6A60AX 64 CEA - Tanuj Khandelwal - Thales
|
|
|
|
hart_ids: [0]
|
|
hart0: &hart0
|
|
ISA: RV64IMAFDCNSUZicsr_Zicbom_Zicbop_Zicboz_Zifencei_Zcb_Zba_Zbb_Zbc_Zbs
|
|
User_Spec_Version: '2.3'
|
|
supported_xlen: [64]
|
|
physical_addr_sz: 39
|
|
pmp_granularity: 10 # FIXME: To verify
|
|
misa:
|
|
reset-val: 0x800000000014312D # B: bit 1, C: bit 2, I = bit 8, M = bit 12, Z = bit 25
|
|
rv64:
|
|
accessible: true
|
|
mxl:
|
|
implemented: true
|
|
type:
|
|
warl:
|
|
dependency_fields: []
|
|
legal:
|
|
- mxl[1:0] in [0x2]
|
|
wr_illegal:
|
|
- unchanged
|
|
extensions:
|
|
implemented: true
|
|
type:
|
|
# ro_constant: 0x214312F
|
|
mvendorid:
|
|
reset-val: 0x00000602
|
|
rv64:
|
|
accessible: true
|
|
type:
|
|
ro_constant: 0x00000602
|
|
rv32:
|
|
accessible: false
|
|
fcsr:
|
|
rv32:
|
|
accessible: false
|
|
rv64:
|
|
accessible: true
|
|
fflags:
|
|
implemented: true
|
|
type:
|
|
warl:
|
|
dependency_fields: []
|
|
legal:
|
|
- fflags[4:0] in [0x00:0x1F]
|
|
wr_illegal:
|
|
- Unchanged
|
|
mtvec:
|
|
reset-val: 0x80010000
|
|
rv64:
|
|
accessible: true
|
|
base:
|
|
implemented: true
|
|
type:
|
|
warl:
|
|
dependency_fields: []
|
|
legal:
|
|
# The 62 bits of 'base' are suffixed with 2'b00
|
|
# ==> all values are legal, alignment 4 bytes is implied
|
|
- base[61:0] in [0x00000000:0x3FFFFFFFFFFFFFFF]
|
|
wr_illegal:
|
|
- Unchanged
|
|
mode:
|
|
implemented: true
|
|
type:
|
|
warl:
|
|
dependency_fields: []
|
|
legal:
|
|
# Only Direct mode.
|
|
- mode[1:0] in [0x0]
|
|
wr_illegal:
|
|
- Unchanged
|
|
vsstatus:
|
|
reset-val: 0x0
|
|
rv64:
|
|
accessible: false
|
|
rv32:
|
|
accessible: false
|
|
mstatus: # FIXME verify details
|
|
reset-val: 0xA00001800 # .mpp = 0x3
|
|
rv64:
|
|
accessible: true
|
|
uie:
|
|
implemented: true
|
|
sie:
|
|
implemented: true
|
|
mie:
|
|
implemented: true
|
|
upie:
|
|
implemented: true
|
|
spie:
|
|
implemented: true
|
|
sxl:
|
|
implemented: true
|
|
type:
|
|
warl:
|
|
dependency_fields: []
|
|
legal:
|
|
- sxl[1:0] in [0x2]
|
|
wr_illegal:
|
|
- unchanged
|
|
uxl:
|
|
implemented: true
|
|
type:
|
|
warl:
|
|
dependency_fields: []
|
|
legal:
|
|
- uxl[1:0] in [0x2]
|
|
wr_illegal:
|
|
- unchanged
|
|
mpie:
|
|
implemented: true
|
|
mpp:
|
|
implemented: true
|
|
type:
|
|
warl:
|
|
dependency_fields: []
|
|
legal:
|
|
- mpp[1:0] in [0x3]
|
|
wr_illegal:
|
|
- Unchanged
|
|
fs:
|
|
implemented: true
|
|
xs:
|
|
implemented: true
|
|
mprv:
|
|
implemented: false
|
|
sum:
|
|
implemented: true
|
|
mxr:
|
|
implemented: true
|
|
tvm:
|
|
implemented: false
|
|
tw:
|
|
implemented: false
|
|
tsr:
|
|
implemented: false
|
|
rv32:
|
|
accessible: false
|
|
mip: # Check if readonly or not
|
|
reset-val: 0
|
|
rv64:
|
|
accessible: true
|
|
usip:
|
|
implemented: true
|
|
ssip:
|
|
implemented: true
|
|
msip:
|
|
implemented: true
|
|
utip:
|
|
implemented: true
|
|
stip:
|
|
implemented: true
|
|
mtip:
|
|
implemented: true
|
|
type:
|
|
ro_variable: true
|
|
ueip:
|
|
implemented: true
|
|
seip:
|
|
implemented: true
|
|
meip:
|
|
implemented: true
|
|
type:
|
|
ro_variable: true
|
|
rv32:
|
|
accessible: false
|
|
hip:
|
|
reset-val: 0
|
|
rv64:
|
|
accessible: false
|
|
vssip:
|
|
implemented: false
|
|
vstip:
|
|
implemented: false
|
|
vseip:
|
|
implemented: false
|
|
sgeip:
|
|
implemented: false
|
|
rv32:
|
|
accessible: false
|
|
mie:
|
|
reset-val: 0
|
|
rv64:
|
|
accessible: true
|
|
usie:
|
|
implemented: true
|
|
ssie:
|
|
implemented: true
|
|
msie:
|
|
implemented: true
|
|
utie:
|
|
implemented: true
|
|
stie:
|
|
implemented: true
|
|
mtie:
|
|
implemented: true
|
|
ueie:
|
|
implemented: true
|
|
seie:
|
|
implemented: true
|
|
meie:
|
|
implemented: true
|
|
rv32:
|
|
accessible: false
|
|
hie:
|
|
reset-val: 0
|
|
rv64:
|
|
accessible: false
|
|
vssie:
|
|
implemented: false
|
|
vstie:
|
|
implemented: false
|
|
vseie:
|
|
implemented: false
|
|
sgeie:
|
|
implemented: false
|
|
rv32:
|
|
accessible: false
|
|
mepc:
|
|
reset-val: 0x0
|
|
rv64:
|
|
accessible: true
|
|
rv32:
|
|
accessible: false
|
|
mtval:
|
|
reset-val: 0x0
|
|
rv64:
|
|
accessible: true
|
|
rv32:
|
|
accessible: false
|
|
mcause:
|
|
reset-val: 0
|
|
rv64:
|
|
accessible: true
|
|
interrupt:
|
|
implemented: true
|
|
exception_code:
|
|
implemented: true
|
|
rv32:
|
|
accessible: false
|
|
medeleg:
|
|
reset-val: 0
|
|
rv64:
|
|
accessible: true
|
|
rv32:
|
|
accessible: false
|
|
mideleg:
|
|
reset-val: 0
|
|
rv64:
|
|
accessible: true
|
|
rv32:
|
|
accessible: false
|
|
menvcfg: #FIXME: not convinced if it is needed
|
|
reset-val: 0
|
|
rv64:
|
|
accessible: true
|
|
rv32:
|
|
accessible: false
|
|
marchid:
|
|
rv64:
|
|
accessible: true
|
|
type:
|
|
ro_constant: 0x00000003
|
|
rv32:
|
|
accessible: false
|
|
reset-val: 0x00000003
|
|
# FIXME not supported yet
|
|
# mconfigptr:
|
|
# rv64:
|
|
# accessible: true
|
|
# type:
|
|
# ro_constant: 0x0
|
|
# rv32:
|
|
# accessible: false
|
|
# reset-val: 0x0
|
|
mhartid:
|
|
rv64:
|
|
accessible: true
|
|
type:
|
|
ro_constant: 0x0
|
|
rv32:
|
|
accessible: false
|
|
reset-val: 0x00
|
|
mhpmcounter3:
|
|
rv64:
|
|
accessible: true
|
|
type:
|
|
ro_constant: 0x0
|
|
rv32:
|
|
accessible: false
|
|
reset-val: 0x0
|
|
mhpmcounter4:
|
|
rv64:
|
|
accessible: true
|
|
type:
|
|
ro_constant: 0x0
|
|
rv32:
|
|
accessible: false
|
|
reset-val: 0x0
|
|
mhpmcounter5:
|
|
rv64:
|
|
accessible: true
|
|
type:
|
|
ro_constant: 0x0
|
|
rv32:
|
|
accessible: false
|
|
reset-val: 0x0
|
|
mhpmcounter6:
|
|
rv64:
|
|
accessible: true
|
|
type:
|
|
ro_constant: 0x0
|
|
rv32:
|
|
accessible: false
|
|
reset-val: 0x0
|
|
mhpmcounter7:
|
|
rv64:
|
|
accessible: true
|
|
type:
|
|
ro_constant: 0x0
|
|
rv32:
|
|
accessible: false
|
|
reset-val: 0x0
|
|
mhpmcounter8:
|
|
rv64:
|
|
accessible: true
|
|
type:
|
|
ro_constant: 0x0
|
|
rv32:
|
|
accessible: false
|
|
reset-val: 0x0
|
|
mhpmcounter9:
|
|
rv64:
|
|
accessible: true
|
|
type:
|
|
ro_constant: 0x0
|
|
rv32:
|
|
accessible: false
|
|
reset-val: 0x0
|
|
mhpmcounter10:
|
|
rv64:
|
|
accessible: true
|
|
type:
|
|
ro_constant: 0x0
|
|
rv32:
|
|
accessible: false
|
|
reset-val: 0x0
|
|
mhpmcounter11:
|
|
rv64:
|
|
accessible: true
|
|
type:
|
|
ro_constant: 0x0
|
|
rv32:
|
|
accessible: false
|
|
reset-val: 0x0
|
|
mhpmcounter12:
|
|
rv64:
|
|
accessible: true
|
|
type:
|
|
ro_constant: 0x0
|
|
rv32:
|
|
accessible: false
|
|
reset-val: 0x0
|
|
mhpmcounter13:
|
|
rv64:
|
|
accessible: true
|
|
type:
|
|
ro_constant: 0x0
|
|
rv32:
|
|
accessible: false
|
|
reset-val: 0x0
|
|
mhpmcounter14:
|
|
rv64:
|
|
accessible: true
|
|
type:
|
|
ro_constant: 0x0
|
|
rv32:
|
|
accessible: false
|
|
reset-val: 0x0
|
|
mhpmcounter15:
|
|
rv64:
|
|
accessible: true
|
|
type:
|
|
ro_constant: 0x0
|
|
rv32:
|
|
accessible: false
|
|
reset-val: 0x0
|
|
mhpmcounter16:
|
|
rv64:
|
|
accessible: true
|
|
type:
|
|
ro_constant: 0x0
|
|
rv32:
|
|
accessible: false
|
|
reset-val: 0x0
|
|
mhpmcounter17:
|
|
rv64:
|
|
accessible: true
|
|
type:
|
|
ro_constant: 0x0
|
|
rv32:
|
|
accessible: false
|
|
reset-val: 0x0
|
|
mhpmcounter18:
|
|
rv64:
|
|
accessible: true
|
|
type:
|
|
ro_constant: 0x0
|
|
rv32:
|
|
accessible: false
|
|
reset-val: 0x0
|
|
mhpmcounter19:
|
|
rv64:
|
|
accessible: true
|
|
type:
|
|
ro_constant: 0x0
|
|
rv32:
|
|
accessible: false
|
|
reset-val: 0x0
|
|
mhpmcounter20:
|
|
rv64:
|
|
accessible: true
|
|
type:
|
|
ro_constant: 0x0
|
|
rv32:
|
|
accessible: false
|
|
reset-val: 0x0
|
|
mhpmcounter21:
|
|
rv64:
|
|
accessible: true
|
|
type:
|
|
ro_constant: 0x0
|
|
rv32:
|
|
accessible: false
|
|
reset-val: 0x0
|
|
mhpmcounter22:
|
|
rv64:
|
|
accessible: true
|
|
type:
|
|
ro_constant: 0x0
|
|
rv32:
|
|
accessible: false
|
|
reset-val: 0x0
|
|
mhpmcounter23:
|
|
rv64:
|
|
accessible: true
|
|
type:
|
|
ro_constant: 0x0
|
|
rv32:
|
|
accessible: false
|
|
reset-val: 0x0
|
|
mhpmcounter24:
|
|
rv64:
|
|
accessible: true
|
|
type:
|
|
ro_constant: 0x0
|
|
rv32:
|
|
accessible: false
|
|
reset-val: 0x0
|
|
mhpmcounter25:
|
|
rv64:
|
|
accessible: true
|
|
type:
|
|
ro_constant: 0x0
|
|
rv32:
|
|
accessible: false
|
|
reset-val: 0x0
|
|
mhpmcounter26:
|
|
rv64:
|
|
accessible: true
|
|
type:
|
|
ro_constant: 0x0
|
|
rv32:
|
|
accessible: false
|
|
reset-val: 0x0
|
|
mhpmcounter27:
|
|
rv64:
|
|
accessible: true
|
|
type:
|
|
ro_constant: 0x0
|
|
rv32:
|
|
accessible: false
|
|
reset-val: 0x0
|
|
mhpmcounter28:
|
|
rv64:
|
|
accessible: true
|
|
type:
|
|
ro_constant: 0x0
|
|
rv32:
|
|
accessible: false
|
|
reset-val: 0x0
|
|
mhpmcounter29:
|
|
rv64:
|
|
accessible: true
|
|
type:
|
|
ro_constant: 0x0
|
|
rv32:
|
|
accessible: false
|
|
reset-val: 0x0
|
|
mhpmcounter30:
|
|
rv64:
|
|
accessible: true
|
|
type:
|
|
ro_constant: 0x0
|
|
rv32:
|
|
accessible: false
|
|
reset-val: 0x0
|
|
mhpmcounter31:
|
|
rv64:
|
|
accessible: true
|
|
type:
|
|
ro_constant: 0x0
|
|
rv32:
|
|
accessible: false
|
|
reset-val: 0x0
|
|
# FIXME NOT SUPPORTED
|
|
# instret:
|
|
# rv64:
|
|
# accessible: true
|
|
# type:
|
|
# warl:
|
|
# dependency_fields: []
|
|
# legal:
|
|
# - instret[31:0] in [0x00000000:0xFFFFFFFF]
|
|
# wr_illegal:
|
|
# - unchanged
|
|
# rv32:
|
|
# accessible: false
|
|
# reset-val: 0
|
|
mcountinhibit: #FIXME Details
|
|
rv64:
|
|
accessible: true
|
|
rv32:
|
|
accessible: false
|
|
reset-val: 0x0
|
|
mhpmevent3:
|
|
rv64:
|
|
accessible: true
|
|
type:
|
|
ro_constant: 0x0
|
|
rv32:
|
|
accessible: false
|
|
reset-val: 0x0
|
|
mhpmevent4:
|
|
rv64:
|
|
accessible: true
|
|
type:
|
|
ro_constant: 0x0
|
|
rv32:
|
|
accessible: false
|
|
reset-val: 0x0
|
|
mhpmevent5:
|
|
rv64:
|
|
accessible: true
|
|
type:
|
|
ro_constant: 0x0
|
|
rv32:
|
|
accessible: false
|
|
reset-val: 0x0
|
|
mhpmevent6:
|
|
rv64:
|
|
accessible: true
|
|
type:
|
|
ro_constant: 0x0
|
|
rv32:
|
|
accessible: false
|
|
reset-val: 0x0
|
|
mhpmevent7:
|
|
rv64:
|
|
accessible: true
|
|
type:
|
|
ro_constant: 0x0
|
|
rv32:
|
|
accessible: false
|
|
reset-val: 0x0
|
|
mhpmevent8:
|
|
rv64:
|
|
accessible: true
|
|
type:
|
|
ro_constant: 0x0
|
|
rv32:
|
|
accessible: false
|
|
reset-val: 0x0
|
|
mhpmevent9:
|
|
rv64:
|
|
accessible: true
|
|
type:
|
|
ro_constant: 0x0
|
|
rv32:
|
|
accessible: false
|
|
reset-val: 0x0
|
|
mhpmevent10:
|
|
rv64:
|
|
accessible: true
|
|
type:
|
|
ro_constant: 0x0
|
|
rv32:
|
|
accessible: false
|
|
reset-val: 0x0
|
|
mhpmevent11:
|
|
rv64:
|
|
accessible: true
|
|
type:
|
|
ro_constant: 0x0
|
|
rv32:
|
|
accessible: false
|
|
reset-val: 0x0
|
|
mhpmevent12:
|
|
rv64:
|
|
accessible: true
|
|
type:
|
|
ro_constant: 0x0
|
|
rv32:
|
|
accessible: false
|
|
reset-val: 0x0
|
|
mhpmevent13:
|
|
rv64:
|
|
accessible: true
|
|
type:
|
|
ro_constant: 0x0
|
|
rv32:
|
|
accessible: false
|
|
reset-val: 0x0
|
|
mhpmevent14:
|
|
rv64:
|
|
accessible: true
|
|
type:
|
|
ro_constant: 0x0
|
|
rv32:
|
|
accessible: false
|
|
reset-val: 0x0
|
|
mhpmevent15:
|
|
rv64:
|
|
accessible: true
|
|
type:
|
|
ro_constant: 0x0
|
|
rv32:
|
|
accessible: false
|
|
reset-val: 0x0
|
|
mhpmevent16:
|
|
rv64:
|
|
accessible: true
|
|
type:
|
|
ro_constant: 0x0
|
|
rv32:
|
|
accessible: false
|
|
reset-val: 0x0
|
|
mhpmevent17:
|
|
rv64:
|
|
accessible: true
|
|
type:
|
|
ro_constant: 0x0
|
|
rv32:
|
|
accessible: false
|
|
reset-val: 0x0
|
|
mhpmevent18:
|
|
rv64:
|
|
accessible: true
|
|
type:
|
|
ro_constant: 0x0
|
|
rv32:
|
|
accessible: false
|
|
reset-val: 0x0
|
|
mhpmevent19:
|
|
rv64:
|
|
accessible: true
|
|
type:
|
|
ro_constant: 0x0
|
|
rv32:
|
|
accessible: false
|
|
reset-val: 0x0
|
|
mhpmevent20:
|
|
rv64:
|
|
accessible: true
|
|
type:
|
|
ro_constant: 0x0
|
|
rv32:
|
|
accessible: false
|
|
reset-val: 0x0
|
|
mhpmevent21:
|
|
rv64:
|
|
accessible: true
|
|
type:
|
|
ro_constant: 0x0
|
|
rv32:
|
|
accessible: false
|
|
reset-val: 0x0
|
|
mhpmevent22:
|
|
rv64:
|
|
accessible: true
|
|
type:
|
|
ro_constant: 0x0
|
|
rv32:
|
|
accessible: false
|
|
reset-val: 0x0
|
|
mhpmevent23:
|
|
rv64:
|
|
accessible: true
|
|
type:
|
|
ro_constant: 0x0
|
|
rv32:
|
|
accessible: false
|
|
reset-val: 0x0
|
|
mhpmevent24:
|
|
rv64:
|
|
accessible: true
|
|
type:
|
|
ro_constant: 0x0
|
|
rv32:
|
|
accessible: false
|
|
reset-val: 0x0
|
|
mhpmevent25:
|
|
rv64:
|
|
accessible: true
|
|
type:
|
|
ro_constant: 0x0
|
|
rv32:
|
|
accessible: false
|
|
reset-val: 0x0
|
|
mhpmevent26:
|
|
rv64:
|
|
accessible: true
|
|
type:
|
|
ro_constant: 0x0
|
|
rv32:
|
|
accessible: false
|
|
reset-val: 0x0
|
|
mhpmevent27:
|
|
rv64:
|
|
accessible: true
|
|
type:
|
|
ro_constant: 0x0
|
|
rv32:
|
|
accessible: false
|
|
reset-val: 0x0
|
|
mhpmevent28:
|
|
rv64:
|
|
accessible: true
|
|
type:
|
|
ro_constant: 0x0
|
|
rv32:
|
|
accessible: false
|
|
reset-val: 0x0
|
|
mhpmevent29:
|
|
rv64:
|
|
accessible: true
|
|
type:
|
|
ro_constant: 0x0
|
|
rv32:
|
|
accessible: false
|
|
reset-val: 0x0
|
|
mhpmevent30:
|
|
rv64:
|
|
accessible: true
|
|
type:
|
|
ro_constant: 0x0
|
|
rv32:
|
|
accessible: false
|
|
reset-val: 0x0
|
|
mhpmevent31:
|
|
rv64:
|
|
accessible: true
|
|
type:
|
|
ro_constant: 0x0
|
|
rv32:
|
|
accessible: false
|
|
reset-val: 0x0
|
|
mimpid:
|
|
rv64:
|
|
accessible: true
|
|
type:
|
|
ro_constant: 0x0
|
|
rv32:
|
|
accessible: false
|
|
reset-val: 0
|
|
mcounteren: #FIXME Check details
|
|
rv64:
|
|
accessible: true
|
|
rv32:
|
|
accessible: false
|
|
reset-val: 0
|
|
pmpcfg0:
|
|
reset-val: 0
|
|
rv32:
|
|
accessible: false
|
|
rv64:
|
|
accessible: true
|
|
pmp0cfg:
|
|
implemented: true
|
|
type:
|
|
warl:
|
|
dependency_fields: [pmpcfg0::pmp0cfg]
|
|
legal:
|
|
- "pmp0cfg[7] in [0] -> pmp0cfg[7] in [0x0:0x1] pmp0cfg[6:5] in [0] pmp0cfg[4:3] not in [2] pmp0cfg[2:0] not in [2,6]"
|
|
wr_illegal:
|
|
- Unchanged
|
|
pmp1cfg:
|
|
implemented: true
|
|
type:
|
|
warl:
|
|
dependency_fields: [pmpcfg0::pmp1cfg]
|
|
legal:
|
|
- "pmp1cfg[7] in [0] -> pmp1cfg[7] in [0x0,0x1] pmp1cfg[6:5] in [0] pmp1cfg[4:3] not in [2] pmp1cfg[2:0] not in [2,6]"
|
|
wr_illegal:
|
|
- Unchanged
|
|
pmp2cfg:
|
|
implemented: true
|
|
type:
|
|
warl:
|
|
dependency_fields: [pmpcfg0::pmp2cfg]
|
|
legal:
|
|
- "pmp2cfg[7] in [0] -> pmp2cfg[7] in [0x0,0x1] pmp2cfg[6:5] in [0] pmp2cfg[4:3] not in [2] pmp2cfg[2:0] not in [2,6]"
|
|
wr_illegal:
|
|
- Unchanged
|
|
pmp3cfg:
|
|
implemented: true
|
|
type:
|
|
warl:
|
|
dependency_fields: [pmpcfg0::pmp3cfg]
|
|
legal:
|
|
- "pmp3cfg[7] in [0] -> pmp3cfg[7] in [0x0,0x1] pmp3cfg[6:5] in [0] pmp3cfg[4:3] not in [2] pmp3cfg[2:0] not in [2,6]"
|
|
wr_illegal:
|
|
- Unchanged
|
|
pmp4cfg:
|
|
implemented: true
|
|
type:
|
|
ro_constant: 0
|
|
pmp5cfg:
|
|
implemented: true
|
|
type:
|
|
ro_constant: 0
|
|
pmp6cfg:
|
|
implemented: true
|
|
type:
|
|
ro_constant: 0
|
|
pmp7cfg:
|
|
implemented: true
|
|
type:
|
|
ro_constant: 0
|
|
pmpcfg2:
|
|
reset-val: 0
|
|
rv32:
|
|
accessible: false
|
|
rv64:
|
|
accessible: true
|
|
pmp8cfg:
|
|
implemented: true
|
|
type:
|
|
ro_constant: 0
|
|
pmp9cfg:
|
|
implemented: true
|
|
type:
|
|
ro_constant: 0
|
|
pmp10cfg:
|
|
implemented: true
|
|
type:
|
|
ro_constant: 0
|
|
pmp11cfg:
|
|
implemented: true
|
|
type:
|
|
ro_constant: 0
|
|
pmp12cfg:
|
|
implemented: true
|
|
type:
|
|
ro_constant: 0
|
|
pmp13cfg:
|
|
implemented: true
|
|
type:
|
|
ro_constant: 0
|
|
pmp14cfg:
|
|
implemented: true
|
|
type:
|
|
ro_constant: 0
|
|
pmp15cfg:
|
|
implemented: true
|
|
type:
|
|
ro_constant: 0
|
|
pmpcfg4:
|
|
reset-val: 0
|
|
rv32:
|
|
accessible: false
|
|
rv64:
|
|
accessible: true
|
|
pmp16cfg:
|
|
implemented: true
|
|
type:
|
|
ro_constant: 0
|
|
pmp17cfg:
|
|
implemented: true
|
|
type:
|
|
ro_constant: 0
|
|
pmp18cfg:
|
|
implemented: true
|
|
type:
|
|
ro_constant: 0
|
|
pmp19cfg:
|
|
implemented: true
|
|
type:
|
|
ro_constant: 0
|
|
pmp20cfg:
|
|
implemented: true
|
|
type:
|
|
ro_constant: 0
|
|
pmp21cfg:
|
|
implemented: true
|
|
type:
|
|
ro_constant: 0
|
|
pmp22cfg:
|
|
implemented: true
|
|
type:
|
|
ro_constant: 0
|
|
pmp23cfg:
|
|
implemented: true
|
|
type:
|
|
ro_constant: 0
|
|
pmpcfg6:
|
|
reset-val: 0
|
|
rv32:
|
|
accessible: false
|
|
rv64:
|
|
accessible: true
|
|
pmp24cfg:
|
|
implemented: true
|
|
type:
|
|
ro_constant: 0
|
|
pmp25cfg:
|
|
implemented: true
|
|
type:
|
|
ro_constant: 0
|
|
pmp26cfg:
|
|
implemented: true
|
|
type:
|
|
ro_constant: 0
|
|
pmp27cfg:
|
|
implemented: true
|
|
type:
|
|
ro_constant: 0
|
|
pmp28cfg:
|
|
implemented: true
|
|
type:
|
|
ro_constant: 0
|
|
pmp29cfg:
|
|
implemented: true
|
|
type:
|
|
ro_constant: 0
|
|
pmp30cfg:
|
|
implemented: true
|
|
type:
|
|
ro_constant: 0
|
|
pmp31cfg:
|
|
implemented: true
|
|
type:
|
|
ro_constant: 0
|
|
pmpcfg8:
|
|
reset-val: 0
|
|
rv32:
|
|
accessible: false
|
|
rv64:
|
|
accessible: true
|
|
pmp32cfg:
|
|
implemented: true
|
|
type:
|
|
ro_constant: 0
|
|
pmp33cfg:
|
|
implemented: true
|
|
type:
|
|
ro_constant: 0
|
|
pmp34cfg:
|
|
implemented: true
|
|
type:
|
|
ro_constant: 0
|
|
pmp35cfg:
|
|
implemented: true
|
|
type:
|
|
ro_constant: 0
|
|
pmp36cfg:
|
|
implemented: true
|
|
type:
|
|
ro_constant: 0
|
|
pmp37cfg:
|
|
implemented: true
|
|
type:
|
|
ro_constant: 0
|
|
pmp38cfg:
|
|
implemented: true
|
|
type:
|
|
ro_constant: 0
|
|
pmp39cfg:
|
|
implemented: true
|
|
type:
|
|
ro_constant: 0
|
|
pmpcfg10:
|
|
reset-val: 0
|
|
rv32:
|
|
accessible: false
|
|
rv64:
|
|
accessible: true
|
|
pmp40cfg:
|
|
implemented: true
|
|
type:
|
|
ro_constant: 0
|
|
pmp41cfg:
|
|
implemented: true
|
|
type:
|
|
ro_constant: 0
|
|
pmp42cfg:
|
|
implemented: true
|
|
type:
|
|
ro_constant: 0
|
|
pmp43cfg:
|
|
implemented: true
|
|
type:
|
|
ro_constant: 0
|
|
pmp44cfg:
|
|
implemented: true
|
|
type:
|
|
ro_constant: 0
|
|
pmp45cfg:
|
|
implemented: true
|
|
type:
|
|
ro_constant: 0
|
|
pmp46cfg:
|
|
implemented: true
|
|
type:
|
|
ro_constant: 0
|
|
pmp47cfg:
|
|
implemented: true
|
|
type:
|
|
ro_constant: 0
|
|
pmpcfg12:
|
|
reset-val: 0
|
|
rv32:
|
|
accessible: false
|
|
rv64:
|
|
accessible: true
|
|
pmp48cfg:
|
|
implemented: true
|
|
type:
|
|
ro_constant: 0
|
|
pmp49cfg:
|
|
implemented: true
|
|
type:
|
|
ro_constant: 0
|
|
pmp50cfg:
|
|
implemented: true
|
|
type:
|
|
ro_constant: 0
|
|
pmp51cfg:
|
|
implemented: true
|
|
type:
|
|
ro_constant: 0
|
|
pmp52cfg:
|
|
implemented: true
|
|
type:
|
|
ro_constant: 0
|
|
pmp53cfg:
|
|
implemented: true
|
|
type:
|
|
ro_constant: 0
|
|
pmp54cfg:
|
|
implemented: true
|
|
type:
|
|
ro_constant: 0
|
|
pmp55cfg:
|
|
implemented: true
|
|
type:
|
|
ro_constant: 0
|
|
pmpcfg14:
|
|
reset-val: 0
|
|
rv32:
|
|
accessible: false
|
|
rv64:
|
|
accessible: true
|
|
pmp56cfg:
|
|
implemented: true
|
|
type:
|
|
ro_constant: 0
|
|
pmp57cfg:
|
|
implemented: true
|
|
type:
|
|
ro_constant: 0
|
|
pmp58cfg:
|
|
implemented: true
|
|
type:
|
|
ro_constant: 0
|
|
pmp59cfg:
|
|
implemented: true
|
|
type:
|
|
ro_constant: 0
|
|
pmp60cfg:
|
|
implemented: true
|
|
type:
|
|
ro_constant: 0
|
|
pmp61cfg:
|
|
implemented: true
|
|
type:
|
|
ro_constant: 0
|
|
pmp62cfg:
|
|
implemented: true
|
|
type:
|
|
ro_constant: 0
|
|
pmp63cfg:
|
|
implemented: true
|
|
type:
|
|
ro_constant: 0
|
|
mcycle:
|
|
rv64:
|
|
accessible: true
|
|
type:
|
|
warl:
|
|
dependency_fields: []
|
|
legal:
|
|
- mcycle[63:0] in [0x0000000000000000:0xFFFFFFFFFFFFFFFF]
|
|
wr_illegal:
|
|
- unchanged
|
|
rv32:
|
|
accessible: false
|
|
reset-val: 0
|
|
minstret:
|
|
rv64:
|
|
accessible: true
|
|
type:
|
|
warl:
|
|
dependency_fields: []
|
|
legal:
|
|
- minstret[63:0] in [0x0000000000000000:0xFFFFFFFFFFFFFFFF]
|
|
wr_illegal:
|
|
- unchanged
|
|
rv32:
|
|
accessible: false
|
|
reset-val: 0
|
|
pmpaddr0:
|
|
rv64:
|
|
accessible: true
|
|
type:
|
|
warl:
|
|
dependency_fields: []
|
|
legal:
|
|
- pmpaddr0[63:0] bitmask [0xFFFFFFFFFFFFFFFE, 0x0000000000000000]
|
|
wr_illegal:
|
|
- unchanged
|
|
rv32:
|
|
accessible: false
|
|
reset-val: 0
|
|
pmpaddr1:
|
|
rv64:
|
|
accessible: true
|
|
type:
|
|
warl:
|
|
dependency_fields: []
|
|
legal:
|
|
- pmpaddr1[63:0] bitmask [0xFFFFFFFFFFFFFFFE, 0x0000000000000000]
|
|
wr_illegal:
|
|
- unchanged
|
|
rv32:
|
|
accessible: false
|
|
reset-val: 0
|
|
pmpaddr2:
|
|
rv64:
|
|
accessible: true
|
|
type:
|
|
warl:
|
|
dependency_fields: []
|
|
legal:
|
|
- pmpaddr2[63:0] bitmask [0xFFFFFFFFFFFFFFFE, 0x0000000000000000]
|
|
wr_illegal:
|
|
- unchanged
|
|
rv32:
|
|
accessible: false
|
|
reset-val: 0
|
|
pmpaddr3:
|
|
rv64:
|
|
accessible: true
|
|
type:
|
|
warl:
|
|
dependency_fields: []
|
|
legal:
|
|
- pmpaddr3[63:0] bitmask [0xFFFFFFFFFFFFFFFE, 0x0000000000000000]
|
|
wr_illegal:
|
|
- unchanged
|
|
rv32:
|
|
accessible: false
|
|
reset-val: 0
|
|
pmpaddr4:
|
|
rv64:
|
|
accessible: true
|
|
type:
|
|
warl:
|
|
dependency_fields: []
|
|
legal:
|
|
- pmpaddr4[63:0] bitmask [0xFFFFFFFFFFFFFFFE, 0x0000000000000000]
|
|
wr_illegal:
|
|
- unchanged
|
|
rv32:
|
|
accessible: false
|
|
reset-val: 0
|
|
pmpaddr5:
|
|
rv64:
|
|
accessible: true
|
|
type:
|
|
warl:
|
|
dependency_fields: []
|
|
legal:
|
|
- pmpaddr5[63:0] bitmask [0xFFFFFFFFFFFFFFFE, 0x0000000000000000]
|
|
wr_illegal:
|
|
- unchanged
|
|
rv32:
|
|
accessible: false
|
|
reset-val: 0
|
|
pmpaddr6:
|
|
rv64:
|
|
accessible: true
|
|
type:
|
|
warl:
|
|
dependency_fields: []
|
|
legal:
|
|
- pmpaddr6[63:0] bitmask [0xFFFFFFFFFFFFFFFE, 0x0000000000000000]
|
|
wr_illegal:
|
|
- unchanged
|
|
rv32:
|
|
accessible: false
|
|
reset-val: 0
|
|
pmpaddr7:
|
|
rv64:
|
|
accessible: true
|
|
type:
|
|
warl:
|
|
dependency_fields: []
|
|
legal:
|
|
- pmpaddr7[63:0] bitmask [0xFFFFFFFFFFFFFFFE, 0x0000000000000000]
|
|
wr_illegal:
|
|
- unchanged
|
|
rv32:
|
|
accessible: false
|
|
reset-val: 0
|
|
pmpaddr8:
|
|
rv64:
|
|
accessible: true
|
|
type:
|
|
ro_constant: 0x0
|
|
rv32:
|
|
accessible: false
|
|
reset-val: 0
|
|
pmpaddr9:
|
|
rv64:
|
|
accessible: true
|
|
type:
|
|
ro_constant: 0x0
|
|
rv32:
|
|
accessible: false
|
|
reset-val: 0
|
|
pmpaddr10:
|
|
rv64:
|
|
accessible: true
|
|
type:
|
|
ro_constant: 0x0
|
|
rv32:
|
|
accessible: false
|
|
reset-val: 0
|
|
pmpaddr11:
|
|
rv64:
|
|
accessible: true
|
|
type:
|
|
ro_constant: 0x0
|
|
rv32:
|
|
accessible: false
|
|
reset-val: 0
|
|
pmpaddr12:
|
|
rv64:
|
|
accessible: true
|
|
type:
|
|
ro_constant: 0x0
|
|
rv32:
|
|
accessible: false
|
|
reset-val: 0
|
|
pmpaddr13:
|
|
rv64:
|
|
accessible: true
|
|
type:
|
|
ro_constant: 0x0
|
|
rv32:
|
|
accessible: false
|
|
reset-val: 0
|
|
pmpaddr14:
|
|
rv64:
|
|
accessible: true
|
|
type:
|
|
ro_constant: 0x0
|
|
rv32:
|
|
accessible: false
|
|
reset-val: 0
|
|
pmpaddr15:
|
|
rv64:
|
|
accessible: true
|
|
type:
|
|
ro_constant: 0x0
|
|
rv32:
|
|
accessible: false
|
|
reset-val: 0
|
|
pmpaddr16:
|
|
rv64:
|
|
accessible: true
|
|
type:
|
|
ro_constant: 0x0
|
|
rv32:
|
|
accessible: false
|
|
reset-val: 0
|
|
pmpaddr17:
|
|
rv64:
|
|
accessible: true
|
|
type:
|
|
ro_constant: 0x0
|
|
rv32:
|
|
accessible: false
|
|
reset-val: 0
|
|
pmpaddr18:
|
|
rv64:
|
|
accessible: true
|
|
type:
|
|
ro_constant: 0x0
|
|
rv32:
|
|
accessible: false
|
|
reset-val: 0
|
|
pmpaddr19:
|
|
rv64:
|
|
accessible: true
|
|
type:
|
|
ro_constant: 0x0
|
|
rv32:
|
|
accessible: false
|
|
reset-val: 0
|
|
pmpaddr20:
|
|
rv64:
|
|
accessible: true
|
|
type:
|
|
ro_constant: 0x0
|
|
rv32:
|
|
accessible: false
|
|
reset-val: 0
|
|
pmpaddr21:
|
|
rv64:
|
|
accessible: true
|
|
type:
|
|
ro_constant: 0x0
|
|
rv32:
|
|
accessible: false
|
|
reset-val: 0
|
|
pmpaddr22:
|
|
rv64:
|
|
accessible: true
|
|
type:
|
|
ro_constant: 0x0
|
|
rv32:
|
|
accessible: false
|
|
reset-val: 0
|
|
pmpaddr23:
|
|
rv64:
|
|
accessible: true
|
|
type:
|
|
ro_constant: 0x0
|
|
rv32:
|
|
accessible: false
|
|
reset-val: 0
|
|
pmpaddr24:
|
|
rv64:
|
|
accessible: true
|
|
type:
|
|
ro_constant: 0x0
|
|
rv32:
|
|
accessible: false
|
|
reset-val: 0
|
|
pmpaddr25:
|
|
rv64:
|
|
accessible: true
|
|
type:
|
|
ro_constant: 0x0
|
|
rv32:
|
|
accessible: false
|
|
reset-val: 0
|
|
pmpaddr26:
|
|
rv64:
|
|
accessible: true
|
|
type:
|
|
ro_constant: 0x0
|
|
rv32:
|
|
accessible: false
|
|
reset-val: 0
|
|
pmpaddr27:
|
|
rv64:
|
|
accessible: true
|
|
type:
|
|
ro_constant: 0x0
|
|
rv32:
|
|
accessible: false
|
|
reset-val: 0
|
|
pmpaddr28:
|
|
rv64:
|
|
accessible: true
|
|
type:
|
|
ro_constant: 0x0
|
|
rv32:
|
|
accessible: false
|
|
reset-val: 0
|
|
pmpaddr29:
|
|
rv64:
|
|
accessible: true
|
|
type:
|
|
ro_constant: 0x0
|
|
rv32:
|
|
accessible: false
|
|
reset-val: 0
|
|
pmpaddr30:
|
|
rv64:
|
|
accessible: true
|
|
type:
|
|
ro_constant: 0x0
|
|
rv32:
|
|
accessible: false
|
|
reset-val: 0
|
|
pmpaddr31:
|
|
rv64:
|
|
accessible: true
|
|
type:
|
|
ro_constant: 0x0
|
|
rv32:
|
|
accessible: false
|
|
reset-val: 0
|
|
pmpaddr32:
|
|
rv64:
|
|
accessible: true
|
|
type:
|
|
ro_constant: 0x0
|
|
rv32:
|
|
accessible: false
|
|
reset-val: 0
|
|
pmpaddr33:
|
|
rv64:
|
|
accessible: true
|
|
type:
|
|
ro_constant: 0x0
|
|
rv32:
|
|
accessible: false
|
|
reset-val: 0
|
|
pmpaddr34:
|
|
rv64:
|
|
accessible: true
|
|
type:
|
|
ro_constant: 0x0
|
|
rv32:
|
|
accessible: false
|
|
reset-val: 0
|
|
pmpaddr35:
|
|
rv64:
|
|
accessible: true
|
|
type:
|
|
ro_constant: 0x0
|
|
rv32:
|
|
accessible: false
|
|
reset-val: 0
|
|
pmpaddr36:
|
|
rv64:
|
|
accessible: true
|
|
type:
|
|
ro_constant: 0x0
|
|
rv32:
|
|
accessible: false
|
|
reset-val: 0
|
|
pmpaddr37:
|
|
rv64:
|
|
accessible: true
|
|
type:
|
|
ro_constant: 0x0
|
|
rv32:
|
|
accessible: false
|
|
reset-val: 0
|
|
pmpaddr38:
|
|
rv64:
|
|
accessible: true
|
|
type:
|
|
ro_constant: 0x0
|
|
rv32:
|
|
accessible: false
|
|
reset-val: 0
|
|
pmpaddr39:
|
|
rv64:
|
|
accessible: true
|
|
type:
|
|
ro_constant: 0x0
|
|
rv32:
|
|
accessible: false
|
|
reset-val: 0
|
|
pmpaddr40:
|
|
rv64:
|
|
accessible: true
|
|
type:
|
|
ro_constant: 0x0
|
|
rv32:
|
|
accessible: false
|
|
reset-val: 0
|
|
pmpaddr41:
|
|
rv64:
|
|
accessible: true
|
|
type:
|
|
ro_constant: 0x0
|
|
rv32:
|
|
accessible: false
|
|
reset-val: 0
|
|
pmpaddr42:
|
|
rv64:
|
|
accessible: true
|
|
type:
|
|
ro_constant: 0x0
|
|
rv32:
|
|
accessible: false
|
|
reset-val: 0
|
|
pmpaddr43:
|
|
rv64:
|
|
accessible: true
|
|
type:
|
|
ro_constant: 0x0
|
|
rv32:
|
|
accessible: false
|
|
reset-val: 0
|
|
pmpaddr44:
|
|
rv64:
|
|
accessible: true
|
|
type:
|
|
ro_constant: 0x0
|
|
rv32:
|
|
accessible: false
|
|
reset-val: 0
|
|
pmpaddr45:
|
|
rv64:
|
|
accessible: true
|
|
type:
|
|
ro_constant: 0x0
|
|
rv32:
|
|
accessible: false
|
|
reset-val: 0
|
|
pmpaddr46:
|
|
rv64:
|
|
accessible: true
|
|
type:
|
|
ro_constant: 0x0
|
|
rv32:
|
|
accessible: false
|
|
reset-val: 0
|
|
pmpaddr47:
|
|
rv64:
|
|
accessible: true
|
|
type:
|
|
ro_constant: 0x0
|
|
rv32:
|
|
accessible: false
|
|
reset-val: 0
|
|
pmpaddr48:
|
|
rv64:
|
|
accessible: true
|
|
type:
|
|
ro_constant: 0x0
|
|
rv32:
|
|
accessible: false
|
|
reset-val: 0
|
|
pmpaddr49:
|
|
rv64:
|
|
accessible: true
|
|
type:
|
|
ro_constant: 0x0
|
|
rv32:
|
|
accessible: false
|
|
reset-val: 0
|
|
pmpaddr50:
|
|
rv64:
|
|
accessible: true
|
|
type:
|
|
ro_constant: 0x0
|
|
rv32:
|
|
accessible: false
|
|
reset-val: 0
|
|
pmpaddr51:
|
|
rv64:
|
|
accessible: true
|
|
type:
|
|
ro_constant: 0x0
|
|
rv32:
|
|
accessible: false
|
|
reset-val: 0
|
|
pmpaddr52:
|
|
rv64:
|
|
accessible: true
|
|
type:
|
|
ro_constant: 0x0
|
|
rv32:
|
|
accessible: false
|
|
reset-val: 0
|
|
pmpaddr53:
|
|
rv64:
|
|
accessible: true
|
|
type:
|
|
ro_constant: 0x0
|
|
rv32:
|
|
accessible: false
|
|
reset-val: 0
|
|
pmpaddr54:
|
|
rv64:
|
|
accessible: true
|
|
type:
|
|
ro_constant: 0x0
|
|
rv32:
|
|
accessible: false
|
|
reset-val: 0
|
|
pmpaddr55:
|
|
rv64:
|
|
accessible: true
|
|
type:
|
|
ro_constant: 0x0
|
|
rv32:
|
|
accessible: false
|
|
reset-val: 0
|
|
pmpaddr56:
|
|
rv64:
|
|
accessible: true
|
|
type:
|
|
ro_constant: 0x0
|
|
rv32:
|
|
accessible: false
|
|
reset-val: 0
|
|
pmpaddr57:
|
|
rv64:
|
|
accessible: true
|
|
type:
|
|
ro_constant: 0x0
|
|
rv32:
|
|
accessible: false
|
|
reset-val: 0
|
|
pmpaddr58:
|
|
rv64:
|
|
accessible: true
|
|
type:
|
|
ro_constant: 0x0
|
|
rv32:
|
|
accessible: false
|
|
reset-val: 0
|
|
pmpaddr59:
|
|
rv64:
|
|
accessible: true
|
|
type:
|
|
ro_constant: 0x0
|
|
rv32:
|
|
accessible: false
|
|
reset-val: 0
|
|
pmpaddr60:
|
|
rv64:
|
|
accessible: true
|
|
type:
|
|
ro_constant: 0x0
|
|
rv32:
|
|
accessible: false
|
|
reset-val: 0
|
|
pmpaddr61:
|
|
rv64:
|
|
accessible: true
|
|
type:
|
|
ro_constant: 0x0
|
|
rv32:
|
|
accessible: false
|
|
reset-val: 0
|
|
pmpaddr62:
|
|
rv64:
|
|
accessible: true
|
|
type:
|
|
ro_constant: 0x0
|
|
rv32:
|
|
accessible: false
|
|
reset-val: 0
|
|
pmpaddr63:
|
|
rv64:
|
|
accessible: true
|
|
type:
|
|
ro_constant: 0x0
|
|
rv32:
|
|
accessible: false
|
|
reset-val: 0
|
|
satp:
|
|
rv32:
|
|
accessible: false
|
|
rv64:
|
|
accessible: true
|
|
ppn:
|
|
type:
|
|
warl:
|
|
dependency_fields: []
|
|
legal:
|
|
- "ppn[43:0] in [0x00000000000:0xFFFFFFFFFFF]"
|
|
wr_illegal:
|
|
- Unchanged
|
|
asid:
|
|
type:
|
|
warl:
|
|
dependency_fields: []
|
|
legal:
|
|
- "asid[15:0] in [0x0000:0x00FF]"
|
|
wr_illegal:
|
|
- Unchanged
|
|
mode:
|
|
type:
|
|
warl:
|
|
dependency_fields: []
|
|
legal:
|
|
- "mode[3:0] in [0,8]"
|
|
wr_illegal:
|
|
- Unchanged
|
|
reset-val: 0x0000000000000000
|
|
scause:
|
|
rv32:
|
|
accessible: false
|
|
rv64:
|
|
accessible: true
|
|
exception_code:
|
|
implemented: True
|
|
interrupt:
|
|
implemented: True
|
|
reset-val: 0
|
|
senvcfg:
|
|
rv32:
|
|
accessible: false
|
|
rv64:
|
|
accessible: true
|
|
reset-val: 0
|
|
sepc:
|
|
rv32:
|
|
accessible: false
|
|
rv64:
|
|
accessible: true
|
|
reset-val: 0
|
|
sie: #FIXME Check if readonly or not
|
|
reset-val: 0
|
|
rv64:
|
|
accessible: true
|
|
ssie:
|
|
implemented: true
|
|
stie:
|
|
implemented: true
|
|
seie:
|
|
implemented: true
|
|
rv32:
|
|
accessible: false
|
|
sip: #FIXME Check if readonly or not
|
|
reset-val: 0
|
|
rv64:
|
|
accessible: true
|
|
ssip:
|
|
implemented: true
|
|
stip:
|
|
implemented: true
|
|
seip:
|
|
implemented: true
|
|
rv32:
|
|
accessible: false
|
|
sscratch:
|
|
rv64:
|
|
accessible: true
|
|
rv32:
|
|
accessible: false
|
|
sstatus:
|
|
reset-val: 0x0
|
|
rv64:
|
|
accessible: true
|
|
uie:
|
|
implemented: false
|
|
sie:
|
|
implemented: true
|
|
upie:
|
|
implemented: false
|
|
spie:
|
|
implemented: true
|
|
spp:
|
|
implemented: true
|
|
fs:
|
|
implemented: false
|
|
xs:
|
|
implemented: true
|
|
sum:
|
|
implemented: true
|
|
mxr:
|
|
implemented: true
|
|
# FIXME not supported yet
|
|
#uxl:
|
|
# implemented: true
|
|
# type:
|
|
# warl:
|
|
# dependency_fields: []
|
|
# legal:
|
|
# - uxl[1:0] in [0x2]
|
|
# wr_illegal:
|
|
# - unchanged
|
|
sd:
|
|
implemented: true
|
|
rv32:
|
|
accessible: false
|
|
stval:
|
|
rv32:
|
|
accessible: false
|
|
rv64:
|
|
accessible: true
|
|
type:
|
|
warl:
|
|
dependency_fields: []
|
|
legal:
|
|
- stval[63:0] in [0x0000000000000000:0xFFFFFFFFFFFFFFFF]
|
|
wr_illegal:
|
|
- Unchanged
|
|
reset-val: 0
|
|
stvec:
|
|
reset-val: 0x80010000
|
|
rv64:
|
|
accessible: true
|
|
base:
|
|
implemented: true
|
|
type:
|
|
warl:
|
|
dependency_fields: []
|
|
legal:
|
|
# The 62 bits of 'base' are suffixed with 2'b00
|
|
# ==> all values are legal, alignment 4 bytes is implied
|
|
- base[61:0] in [0x00000000:0x3FFFFFFFFFFFFFFF]
|
|
wr_illegal:
|
|
- Unchanged
|
|
mode:
|
|
implemented: true
|
|
type:
|
|
warl:
|
|
dependency_fields: []
|
|
legal:
|
|
# Only Direct mode.
|
|
- mode[1:0] in [0x0]
|
|
wr_illegal:
|
|
- Unchanged
|
|
time:
|
|
rv64:
|
|
accessible: true
|
|
type:
|
|
ro_variable: true
|
|
rv32:
|
|
accessible: false
|
|
reset-val: 0
|