qemu-riscv
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH V2 2/2] Adding custom Andes CSR table.


From: Ruinland Chuan-Tzu Tsai
Subject: [PATCH V2 2/2] Adding custom Andes CSR table.
Date: Tue, 11 May 2021 18:07:22 +0800

---
 target/riscv/csr_andes.inc.c | 125 +++++++++++++++++++++++++++++++++++
 1 file changed, 125 insertions(+)
 create mode 100644 target/riscv/csr_andes.inc.c

diff --git a/target/riscv/csr_andes.inc.c b/target/riscv/csr_andes.inc.c
new file mode 100644
index 0000000..c470ef8
--- /dev/null
+++ b/target/riscv/csr_andes.inc.c
@@ -0,0 +1,125 @@
+riscv_custom_csr_operations andes_custom_csr_table[MAX_CUSTOM_CSR_NUM] = {
+#if !defined(CONFIG_USER_ONLY)
+    /* ==================== AndeStar V5 machine mode CSRs ==================== 
*/
+    /* Configuration Registers */
+    {CSR_MICM_CFG,         { "micm_cfg",          any, read_zero, write_stub} 
},
+    {CSR_MDCM_CFG,         { "mdcm_cfg",          any, read_zero, write_stub} 
},
+    {CSR_MMSC_CFG,         { "mmsc_cfg",          any, read_mmsc_cfg, 
write_stub} },
+    {CSR_MMSC_CFG2,        { "mmsc_cfg2",         any, read_zero, write_stub} 
},
+    {CSR_MVEC_CFG,         { "mvec_cfg",          any, read_zero, write_stub} 
},
+
+    /* Crash Debug CSRs */
+    {CSR_MCRASH_STATESAVE,  { "mcrash_statesave",  any, read_zero, write_stub} 
},
+    {CSR_MSTATUS_CRASHSAVE, { "mstatus_crashsave", any, read_zero, write_stub} 
},
+
+    /* Memory CSRs */
+    {CSR_MILMB,            { "milmb",             any, read_zero, write_stub} 
},
+    {CSR_MDLMB,            { "mdlmb",             any, read_zero, write_stub} 
},
+    {CSR_MECC_CODE,        { "mecc_code",         any, read_zero, write_stub} 
},
+    {CSR_MNVEC,            { "mnvec",             any, read_zero, write_stub} 
},
+    {CSR_MCACHE_CTL,       { "mcache_ctl",        any, read_zero, write_stub} 
},
+    {CSR_MCCTLBEGINADDR,   { "mcctlbeginaddr",    any, read_zero, write_stub} 
},
+    {CSR_MCCTLCOMMAND,     { "mcctlcommand",      any, read_zero, write_stub} 
},
+    {CSR_MCCTLDATA,        { "mcctldata",         any, read_zero, write_stub} 
},
+    {CSR_MPPIB,            { "mppib",             any, read_zero, write_stub} 
},
+    {CSR_MFIOB,            { "mfiob",             any, read_zero, write_stub} 
},
+
+    /* Hardware Stack Protection & Recording */
+    {CSR_MHSP_CTL,         { "mhsp_ctl",          any, read_zero, write_stub} 
},
+    {CSR_MSP_BOUND,        { "msp_bound",         any, read_zero, write_stub} 
},
+    {CSR_MSP_BASE,         { "msp_base",          any, read_zero, write_stub} 
},
+    {CSR_MXSTATUS,         { "mxstatus",          any, read_zero, write_stub} 
},
+    {CSR_MDCAUSE,          { "mdcause",           any, read_zero, write_stub} 
},
+    {CSR_MSLIDELEG,        { "mslideleg",         any, read_zero, write_stub} 
},
+    {CSR_MSAVESTATUS,      { "msavestatus",       any, read_zero, write_stub} 
},
+    {CSR_MSAVEEPC1,        { "msaveepc1",         any, read_zero, write_stub} 
},
+    {CSR_MSAVECAUSE1,      { "msavecause1",       any, read_zero, write_stub} 
},
+    {CSR_MSAVEEPC2,        { "msaveepc2",         any, read_zero, write_stub} 
},
+    {CSR_MSAVECAUSE2,      { "msavecause2",       any, read_zero, write_stub} 
},
+    {CSR_MSAVEDCAUSE1,     { "msavedcause1",      any, read_zero, write_stub} 
},
+    {CSR_MSAVEDCAUSE2,     { "msavedcause2",      any, read_zero, write_stub} 
},
+
+    /* Control CSRs */
+    {CSR_MPFT_CTL,         { "mpft_ctl",          any, read_zero, write_stub} 
},
+    {CSR_MMISC_CTL,        { "mmisc_ctl",         any, read_zero, write_stub} 
},
+    {CSR_MCLK_CTL,         { "mclk_ctl",          any, read_zero, write_stub} 
},
+
+    /* Counter related CSRs */
+    {CSR_MCOUNTERWEN,      { "mcounterwen",       any, read_zero, write_stub} 
},
+    {CSR_MCOUNTERINTEN,    { "mcounterinten",     any, read_zero, write_stub} 
},
+    {CSR_MCOUNTERMASK_M,   { "mcountermask_m",    any, read_zero, write_stub} 
},
+    {CSR_MCOUNTERMASK_S,   { "mcountermask_s",    any, read_zero, write_stub} 
},
+    {CSR_MCOUNTERMASK_U,   { "mcountermask_u",    any, read_zero, write_stub} 
},
+    {CSR_MCOUNTEROVF,      { "mcounterovf",       any, read_zero, write_stub} 
},
+
+    /* Enhanced CLIC CSRs */
+    {CSR_MIRQ_ENTRY,       { "mirq_entry",        any, read_zero, write_stub} 
},
+    {CSR_MINTSEL_JAL,      { "mintsel_jal",       any, read_zero, write_stub} 
},
+    {CSR_PUSHMCAUSE,       { "pushmcause",        any, read_zero, write_stub} 
},
+    {CSR_PUSHMEPC,         { "pushmepc",          any, read_zero, write_stub} 
},
+    {CSR_PUSHMXSTATUS,     { "pushmxstatus",      any, read_zero, write_stub} 
},
+
+    /* Andes Physical Memory Attribute(PMA) CSRs */
+    {CSR_PMACFG0,          { "pmacfg0",           any, read_zero, write_stub} 
},
+    {CSR_PMACFG1,          { "pmacfg1",           any, read_zero, write_stub} 
},
+    {CSR_PMACFG2,          { "pmacfg2",           any, read_zero, write_stub} 
},
+    {CSR_PMACFG3,          { "pmacfg3",           any, read_zero, write_stub} 
},
+    {CSR_PMAADDR0,         { "pmaaddr0",          any, read_zero, write_stub} 
},
+    {CSR_PMAADDR1,         { "pmaaddr1",          any, read_zero, write_stub} 
},
+    {CSR_PMAADDR2,         { "pmaaddr2",          any, read_zero, write_stub} 
},
+    {CSR_PMAADDR3,         { "pmaaddr3",          any, read_zero, write_stub} 
},
+    {CSR_PMAADDR4,         { "pmaaddr4",          any, read_zero, write_stub} 
},
+    {CSR_PMAADDR5,         { "pmaaddr5",          any, read_zero, write_stub} 
},
+    {CSR_PMAADDR6,         { "pmaaddr6",          any, read_zero, write_stub} 
},
+    {CSR_PMAADDR7,         { "pmaaddr7",          any, read_zero, write_stub} 
},
+    {CSR_PMAADDR8,         { "pmaaddr8",          any, read_zero, write_stub} 
},
+    {CSR_PMAADDR9,         { "pmaaddr9",          any, read_zero, write_stub} 
},
+    {CSR_PMAADDR10,        { "pmaaddr10",         any, read_zero, write_stub} 
},
+    {CSR_PMAADDR11,        { "pmaaddr11",         any, read_zero, write_stub} 
},
+    {CSR_PMAADDR12,        { "pmaaddr12",         any, read_zero, write_stub} 
},
+    {CSR_PMAADDR13,        { "pmaaddr13",         any, read_zero, write_stub} 
},
+    {CSR_PMAADDR14,        { "pmaaddr14",         any, read_zero, write_stub} 
},
+    {CSR_PMAADDR15,        { "pmaaddr15",         any, read_zero, write_stub} 
},
+
+    /* Debug/Trace Registers (shared with Debug Mode) */
+    {CSR_TSELECT,          { "tselect",           any, read_zero, write_stub} 
},
+    {CSR_TDATA1,           { "tdata1",            any, read_zero, write_stub} 
},
+    {CSR_TDATA2,           { "tdata2",            any, read_zero, write_stub} 
},
+    {CSR_TDATA3,           { "tdata3",            any, read_zero, write_stub} 
},
+    {CSR_TINFO,            { "tinfo",             any, read_zero, write_stub} 
},
+
+    /* ================== AndeStar V5 supervisor mode CSRs ================== 
*/
+    /* Supervisor trap registers */
+    {CSR_SLIE,             { "slie",              any, read_zero, write_stub} 
},
+    {CSR_SLIP,             { "slip",              any, read_zero, write_stub} 
},
+    {CSR_SDCAUSE,          { "sdcause",           any, read_zero, write_stub} 
},
+
+    /* Supervisor counter registers */
+    {CSR_SCOUNTERINTEN,    { "scounterinten",     any, read_zero, write_stub} 
},
+    {CSR_SCOUNTERMASK_M,   { "scountermask_m",    any, read_zero, write_stub} 
},
+    {CSR_SCOUNTERMASK_S,   { "scountermask_s",    any, read_zero, write_stub} 
},
+    {CSR_SCOUNTERMASK_U,   { "scountermask_u",    any, read_zero, write_stub} 
},
+    {CSR_SCOUNTEROVF,      { "scounterovf",       any, read_zero, write_stub} 
},
+    {CSR_SCOUNTINHIBIT,    { "scountinhibit",     any, read_zero, write_stub} 
},
+    {CSR_SHPMEVENT3,       { "shpmevent3",        any, read_zero, write_stub} 
},
+    {CSR_SHPMEVENT4,       { "shpmevent4",        any, read_zero, write_stub} 
},
+    {CSR_SHPMEVENT5,       { "shpmevent5",        any, read_zero, write_stub} 
},
+    {CSR_SHPMEVENT6,       { "shpmevent6",        any, read_zero, write_stub} 
},
+
+    /* Supervisor control registers */
+    {CSR_SCCTLDATA,        { "scctldata",         any, read_zero, write_stub} 
},
+    {CSR_SMISC_CTL,        { "smisc_ctl",         any, read_zero, write_stub} 
},
+
+    /* ===================== AndeStar V5 user mode CSRs ===================== 
*/
+    /* User mode control registers */
+    {CSR_UITB,             { "uitb",              any, read_zero, write_stub} 
},
+    {CSR_UCODE,            { "ucode",             any, read_zero, write_stub} 
},
+    {CSR_UDCAUSE,          { "udcause",           any, read_zero, write_stub} 
},
+    {CSR_UCCTLBEGINADDR,   { "ucctlbeginaddr",    any, read_zero, write_stub} 
},
+    {CSR_UCCTLCOMMAND,     { "ucctlcommand",      any, read_zero, write_stub} 
},
+    {CSR_WFE,              { "wfe",               any, read_zero, write_stub} 
},
+    {CSR_SLEEPVALUE,       { "sleepvalue",        any, read_zero, write_stub} 
},
+    {CSR_TXEVT,            { "csr_txevt",         any, read_zero, write_stub} 
},
+    {0, { "", NULL, NULL, NULL } },
+#endif
+    };
-- 
2.17.1




reply via email to

[Prev in Thread] Current Thread [Next in Thread]