From 6f1f3b719aff88c0cabeee88547eeaf694798c42 Mon Sep 17 00:00:00 2001 From: Matthew <106996253+Matthew-Otto@users.noreply.github.com> Date: Wed, 12 Jun 2024 10:28:42 -0500 Subject: [PATCH] Alls CSRS tested (Read only) --- bin/openocd_tcl_wrapper.py | 137 ++++++++++++++++++++++++++++++++++++- config/shared/debug.vh | 2 +- src/debug/rad.sv | 2 +- 3 files changed, 138 insertions(+), 3 deletions(-) diff --git a/bin/openocd_tcl_wrapper.py b/bin/openocd_tcl_wrapper.py index b4ba717af..d035a60b8 100644 --- a/bin/openocd_tcl_wrapper.py +++ b/bin/openocd_tcl_wrapper.py @@ -240,7 +240,142 @@ class OpenOCD: # Register alias to regno translation table register_translations = { - "MISA" : "0x0301", + "FFLAGS" : "0x0001", + "FRM" : "0x0002", + "FCSR" : "0x0003", + "MSTATUS" : "0x0300", + "MISA" : "0x0301", + "MEDELEG" : "0x0302", + "MIDELEG" : "0x0303", + "MIE" : "0x0304", + "MTVEC" : "0x0305", + "MCOUNTEREN" : "0x0306", + "MENVCFG" : "0x030A", + "MSTATUSH" : "0x0310", + "MENVCFGH" : "0x031A", + "MCOUNTINHIBIT" : "0x0320", + "MSCRATCH" : "0x0340", + "MEPC" : "0x0341", + "MCAUSE" : "0x0342", + "MTVAL" : "0x0343", + "MIP" : "0x0344", + "PMPCFG0" : "0x03A0", + "PMPCFG1" : "0x03A1", + "PMPCFG2" : "0x03A2", + "PMPCFG3" : "0x03A3", + "PMPCFG4" : "0x03A4", + "PMPCFG5" : "0x03A5", + "PMPCFG6" : "0x03A6", + "PMPCFG7" : "0x03A7", + "PMPCFG8" : "0x03A8", + "PMPCFG9" : "0x03A9", + "PMPCFGA" : "0x03AA", + "PMPCFGB" : "0x03AB", + "PMPCFGC" : "0x03AC", + "PMPCFGD" : "0x03AD", + "PMPCFGE" : "0x03AE", + "PMPCFGF" : "0x03AF", + "PMPADDR0" : "0x03B0", + "PMPADDR1" : "0x03B1", + "PMPADDR2" : "0x03B2", + "PMPADDR3" : "0x03B3", + "PMPADDR4" : "0x03B4", + "PMPADDR5" : "0x03B5", + "PMPADDR6" : "0x03B6", + "PMPADDR7" : "0x03B7", + "PMPADDR8" : "0x03B8", + "PMPADDR9" : "0x03B9", + "PMPADDRA" : "0x03BA", + "PMPADDRB" : "0x03BB", + "PMPADDRC" : "0x03BC", + "PMPADDRD" : "0x03BD", + "PMPADDRE" : "0x03BE", + "PMPADDRF" : "0x03BF", + "PMPADDR10" : "0x03C0", + "PMPADDR11" : "0x03C1", + "PMPADDR12" : "0x03C2", + "PMPADDR13" : "0x03C3", + "PMPADDR14" : "0x03C4", + "PMPADDR15" : "0x03C5", + "PMPADDR16" : "0x03C6", + "PMPADDR17" : "0x03C7", + "PMPADDR18" : "0x03C8", + "PMPADDR19" : "0x03C9", + "PMPADDR1A" : "0x03CA", + "PMPADDR1B" : "0x03CB", + "PMPADDR1C" : "0x03CC", + "PMPADDR1D" : "0x03CD", + "PMPADDR1E" : "0x03CE", + "PMPADDR1F" : "0x03CF", + "PMPADDR20" : "0x03D0", + "PMPADDR21" : "0x03D1", + "PMPADDR22" : "0x03D2", + "PMPADDR23" : "0x03D3", + "PMPADDR24" : "0x03D4", + "PMPADDR25" : "0x03D5", + "PMPADDR26" : "0x03D6", + "PMPADDR27" : "0x03D7", + "PMPADDR28" : "0x03D8", + "PMPADDR29" : "0x03D9", + "PMPADDR2A" : "0x03DA", + "PMPADDR2B" : "0x03DB", + "PMPADDR2C" : "0x03DC", + "PMPADDR2D" : "0x03DD", + "PMPADDR2E" : "0x03DE", + "PMPADDR2F" : "0x03DF", + "PMPADDR30" : "0x03E0", + "PMPADDR31" : "0x03E1", + "PMPADDR32" : "0x03E2", + "PMPADDR33" : "0x03E3", + "PMPADDR34" : "0x03E4", + "PMPADDR35" : "0x03E5", + "PMPADDR36" : "0x03E6", + "PMPADDR37" : "0x03E7", + "PMPADDR38" : "0x03E8", + "PMPADDR39" : "0x03E9", + "PMPADDR3A" : "0x03EA", + "PMPADDR3B" : "0x03EB", + "PMPADDR3C" : "0x03EC", + "PMPADDR3D" : "0x03ED", + "PMPADDR3E" : "0x03EE", + "PMPADDR3F" : "0x03EF", + "TSELECT" : "0x07A0", + "TDATA1" : "0x07A1", + "TDATA2" : "0x07A2", + "TDATA3" : "0x07A3", + "DCSR" : "0x07B0", + "DPC" : "0x07B1", + "MVENDORID" : "0x0F11", + "MARCHID" : "0x0F12", + "MIMPID" : "0x0F13", + "MHARTID" : "0x0F14", + "MCONFIGPTR" : "0x0F15", + "SIP" : "0x0144", + "MIP" : "0x0344", + "MHPMEVENTBASE" : "0x0320", + "MHPMCOUNTERBASE" : "0x0B00", + "MHPMCOUNTERHBASE" : "0x0B80", + "HPMCOUNTERBASE" : "0x0C00", + "TIME" : "0x0C01", + "HPMCOUNTERHBASE" : "0x0C80", + "TIMEH" : "0x0C81", + "SSTATUS" : "0x0100", + "SIE" : "0x0104", + "STVEC" : "0x0105", + "SCOUNTEREN" : "0x0106", + "SENVCFG" : "0x010A", + "SSCRATCH" : "0x0140", + "SEPC" : "0x0141", + "SCAUSE" : "0x0142", + "STVAL" : "0x0143", + "SIP" : "0x0144", + "STIMECMP" : "0x014D", + "STIMECMPH" : "0x015D", + "SATP" : "0x0180", + "SIE" : "0x0104", + "SIP" : "0x0144", + "MIE" : "0x0304", + "MIP" : "0x0344", "TRAPM" : "0xC000", "PCM" : "0xC001", "INSTRM" : "0xC002", diff --git a/config/shared/debug.vh b/config/shared/debug.vh index bb9d86bd1..35a5daca3 100755 --- a/config/shared/debug.vh +++ b/config/shared/debug.vh @@ -183,7 +183,7 @@ `define PMPCFGF_REGNO 16'h03AF `define PMPADDR0_REGNO 16'h03B0// P.PA_BITS //range -`define PMPADDRF_REGNO 16'h03EF +`define PMPADDR3F_REGNO 16'h03EF `define TSELECT_REGNO 16'h07A0 `define TDATA1_REGNO 16'h07A1 diff --git a/src/debug/rad.sv b/src/debug/rad.sv index 5363fdd7e..8463ae132 100644 --- a/src/debug/rad.sv +++ b/src/debug/rad.sv @@ -83,7 +83,7 @@ module rad import cvw::*; #(parameter cvw_t P) ( `MENVCFGH_REGNO, `MCOUNTINHIBIT_REGNO, [`MSCRATCH_REGNO:`MIP_REGNO], - [`PMPCFG0_REGNO:`PMPADDRF_REGNO], // TODO This is variable len (P.PA_BITS)? + [`PMPCFG0_REGNO:`PMPADDR3F_REGNO], // TODO This is variable len (P.PA_BITS)? [`TSELECT_REGNO:`TDATA3_REGNO], [`DCSR_REGNO:`DPC_REGNO], `SIP_REGNO,