aboutsummaryrefslogtreecommitdiff
path: root/model/riscv_pmp_regs.sail
diff options
context:
space:
mode:
Diffstat (limited to 'model/riscv_pmp_regs.sail')
-rw-r--r--model/riscv_pmp_regs.sail25
1 files changed, 25 insertions, 0 deletions
diff --git a/model/riscv_pmp_regs.sail b/model/riscv_pmp_regs.sail
new file mode 100644
index 0000000..2326cc7
--- /dev/null
+++ b/model/riscv_pmp_regs.sail
@@ -0,0 +1,25 @@
+enum PmpAddrmatchType = {OFF, TOR, NA4, NAPOT}
+
+bitfield Pmpcfg_ent : bits(8) = {
+ L : 7, /* locking */
+ A : 4 .. 3, /* address matching */
+ // permissions:
+ X : 2, /* execute */
+ W : 1, /* write */
+ R : 0 /* read */
+}
+
+type Pmpcfg_reg = vector(xlen_bytes, dec, Pmpcfg_ent)
+
+register Pmpcfg0 : Pmpcfg_reg
+register Pmpcfg1 : Pmpcfg_reg
+register Pmpcfg2 : Pmpcfg_reg
+register Pmpcfg3 : Pmpcfg_reg
+
+bitfield Pmp_addr_64 : bits(64) = {
+ addr : 53 .. 0
+}
+
+bitfield Pmp_addr_32 : bits(64) = {
+ addr : 31 .. 0
+}