aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTim Newsome <tim@sifive.com>2018-03-01 15:05:45 -0800
committerTim Newsome <tim@sifive.com>2018-03-01 15:05:45 -0800
commit208298c733a0e5ba9e4f7f892123745bdc7156c1 (patch)
tree6cb350b713f7e5c50d8836a0e61feb442b797bbe
parent8f9f628b84826b7fbd1d91b24c56f634cef91cf4 (diff)
downloadriscv-tests-208298c733a0e5ba9e4f7f892123745bdc7156c1.zip
riscv-tests-208298c733a0e5ba9e4f7f892123745bdc7156c1.tar.gz
riscv-tests-208298c733a0e5ba9e4f7f892123745bdc7156c1.tar.bz2
Ensure an error when reading a non-existent CSR.
-rwxr-xr-xdebug/gdbserver.py13
-rw-r--r--debug/targets/RISC-V/spike-1.cfg4
-rw-r--r--debug/targets/RISC-V/spike-2.cfg4
-rw-r--r--debug/targets/RISC-V/spike-rtos.cfg4
-rw-r--r--debug/targets/SiFive/HiFive1.cfg4
5 files changed, 29 insertions, 0 deletions
diff --git a/debug/gdbserver.py b/debug/gdbserver.py
index f0385d5..c7bfbf0 100755
--- a/debug/gdbserver.py
+++ b/debug/gdbserver.py
@@ -136,6 +136,19 @@ class SimpleF18Test(SimpleRegisterTest):
def test(self):
self.check_reg("f18", "fs2")
+class SimpleNoExistTest(GdbTest):
+ def test(self):
+ try:
+ self.gdb.p("$csr2288")
+ assert False, "Reading csr2288 should have failed"
+ except testlib.CouldNotFetch:
+ pass
+ try:
+ self.gdb.p("$csr2288=5")
+ assert False, "Writing csr2288 should have failed"
+ except testlib.CouldNotFetch:
+ pass
+
class SimpleMemoryTest(GdbTest):
def access_test(self, size, data_type):
assertEqual(self.gdb.p("sizeof(%s)" % data_type), size)
diff --git a/debug/targets/RISC-V/spike-1.cfg b/debug/targets/RISC-V/spike-1.cfg
index fc20b53..7607b46 100644
--- a/debug/targets/RISC-V/spike-1.cfg
+++ b/debug/targets/RISC-V/spike-1.cfg
@@ -12,5 +12,9 @@ target create $_TARGETNAME riscv -chain-position $_TARGETNAME
gdb_report_data_abort enable
+# Expose an unimplemented CSR so we can test non-existent register access
+# behavior.
+riscv expose_csrs 2288
+
init
reset halt
diff --git a/debug/targets/RISC-V/spike-2.cfg b/debug/targets/RISC-V/spike-2.cfg
index 17526ec..c78cf8f 100644
--- a/debug/targets/RISC-V/spike-2.cfg
+++ b/debug/targets/RISC-V/spike-2.cfg
@@ -15,5 +15,9 @@ target create $_TARGETNAME_1 riscv -chain-position $_CHIPNAME.cpu -coreid 1
gdb_report_data_abort enable
+# Expose an unimplemented CSR so we can test non-existent register access
+# behavior.
+riscv expose_csrs 2288
+
init
reset halt
diff --git a/debug/targets/RISC-V/spike-rtos.cfg b/debug/targets/RISC-V/spike-rtos.cfg
index 799e3cb..5a70f52 100644
--- a/debug/targets/RISC-V/spike-rtos.cfg
+++ b/debug/targets/RISC-V/spike-rtos.cfg
@@ -13,5 +13,9 @@ target create $_TARGETNAME riscv -chain-position $_TARGETNAME -rtos riscv
gdb_report_data_abort enable
+# Expose an unimplemented CSR so we can test non-existent register access
+# behavior.
+riscv expose_csrs 2288
+
init
reset halt
diff --git a/debug/targets/SiFive/HiFive1.cfg b/debug/targets/SiFive/HiFive1.cfg
index 5bde59b..8f21b47 100644
--- a/debug/targets/SiFive/HiFive1.cfg
+++ b/debug/targets/SiFive/HiFive1.cfg
@@ -17,6 +17,10 @@ target create $_TARGETNAME riscv -chain-position $_TARGETNAME
$_TARGETNAME configure -work-area-phys 0x80000000 -work-area-size 8096 -work-area-backup 1
#-rtos riscv
+# Expose an unimplemented CSR so we can test non-existent register access
+# behavior.
+riscv expose_csrs 2288
+
flash bank my_first_flash fespi 0x20000000 0 0 0 $_TARGETNAME
init
#reset