From 6e2076268cad307c8f133e0b00e5acf87cd6ab99 Mon Sep 17 00:00:00 2001 From: Luke Wren Date: Mon, 22 Aug 2022 08:50:57 +0100 Subject: [PATCH] Update CSR readability/writability tests for new CSRs --- test/sim/sw_testcases/csr_readable_umode.c | 9 +++++++++ test/sim/sw_testcases/csr_writable.c | 9 +++------ 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/test/sim/sw_testcases/csr_readable_umode.c b/test/sim/sw_testcases/csr_readable_umode.c index 1072b07..dc7bbfb 100644 --- a/test/sim/sw_testcases/csr_readable_umode.c +++ b/test/sim/sw_testcases/csr_readable_umode.c @@ -176,6 +176,12 @@ CSR was 323 CSR was 7a0 -> exception, mcause = 2, mpp = 0 // tdata1 CSR was 7a1 +-> exception, mcause = 2, mpp = 0 // tdata2 +CSR was 7a2 +-> exception, mcause = 2, mpp = 0 // tinfo +CSR was 7a4 +-> exception, mcause = 2, mpp = 0 // tcontrol +CSR was 7a5 -> exception, mcause = 2, mpp = 0 // dcsr CSR was 7b0 -> exception, mcause = 2, mpp = 0 // dpc @@ -296,6 +302,9 @@ void read_all_csrs() { (void)read_csr(mhpmevent3); (void)read_csr(tselect); (void)read_csr(tdata1); + (void)read_csr(tdata2); + (void)read_csr(tinfo); + (void)read_csr(tcontrol); (void)read_csr(dcsr); (void)read_csr(dpc); (void)read_csr(dscratch0); diff --git a/test/sim/sw_testcases/csr_writable.c b/test/sim/sw_testcases/csr_writable.c index 57a38f2..19b459e 100644 --- a/test/sim/sw_testcases/csr_writable.c +++ b/test/sim/sw_testcases/csr_writable.c @@ -38,12 +38,6 @@ CSR was c80 CSR was c02 -> exception, mcause = 2 // write to instreth, read-only CSR was c82 --> exception, mcause = 2 // write to tselect, unimplemented but we permit reads as a workaround for an OpenOCD bug -CSR was 7a0 --> exception, mcause = 2 // read of tdata1, unimplemented -CSR was 7a1 --> exception, mcause = 2 // write to tdata1, unimplemented -CSR was 7a1 -> exception, mcause = 2 // read of dcsr, D-mode CSR was 7b0 -> exception, mcause = 2 // write to dcsr, D-mode @@ -161,6 +155,9 @@ int main() { write_csr(mhpmevent3, read_csr(mhpmevent3 )); write_csr(tselect, read_csr(tselect )); write_csr(tdata1, read_csr(tdata1 )); + write_csr(tdata2, read_csr(tdata2 )); + write_csr(tinfo, read_csr(tinfo )); + write_csr(tcontrol, read_csr(tcontrol )); write_csr(dcsr, read_csr(dcsr )); write_csr(dpc, read_csr(dpc )); write_csr(dscratch0, read_csr(dscratch0 ));