aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTim Newsome <tim@sifive.com>2023-10-11 12:33:23 -0700
committerGitHub <noreply@github.com>2023-10-11 12:33:23 -0700
commit34fb0404989287ed8a0a746b533be1762c711e5a (patch)
tree8a184f602cf4ab74dc13a7afe50ad52371dea0f5
parent9905a434c9da6588763b31dd01d263144e0db0ed (diff)
parentecf4fde3b3ddf0fc3e8a8069d96e4d5c64cf54bf (diff)
downloadriscv-tests-34fb0404989287ed8a0a746b533be1762c711e5a.zip
riscv-tests-34fb0404989287ed8a0a746b533be1762c711e5a.tar.gz
riscv-tests-34fb0404989287ed8a0a746b533be1762c711e5a.tar.bz2
Merge pull request #503 from lz-bro/dis_timer
Disable timer interrupt to fix some bugs
-rwxr-xr-xdebug/gdbserver.py6
-rw-r--r--debug/testlib.py7
2 files changed, 13 insertions, 0 deletions
diff --git a/debug/gdbserver.py b/debug/gdbserver.py
index 23515a3..3a6f932 100755
--- a/debug/gdbserver.py
+++ b/debug/gdbserver.py
@@ -1039,8 +1039,10 @@ class InterruptTest(GdbSingleHartTest):
local = self.gdb.p("local")
if interrupt_count > 1000 and \
local > 1000:
+ self.disable_timer()
return
+ self.disable_timer()
assertGreater(interrupt_count, 1000)
assertGreater(local, 1000)
@@ -1191,6 +1193,8 @@ class MulticoreRunAllHaltOne(GdbTest):
time.sleep(1)
self.gdb.p("buf", fmt="")
+ self.disable_timer(interrupt=True)
+
class MulticoreRtosSwitchActiveHartTest(GdbTest):
compile_args = ("programs/multicore.c", "-DMULTICORE")
@@ -1220,6 +1224,8 @@ class MulticoreRtosSwitchActiveHartTest(GdbTest):
assertIn("set_trap_handler", output)
assertNotIn("received signal SIGTRAP", output)
+ self.disable_timer()
+
class SmpSimultaneousRunHalt(GdbTest):
compile_args = ("programs/run_halt_timing.S", "-DMULTICORE")
diff --git a/debug/testlib.py b/debug/testlib.py
index 5303f84..f36965f 100644
--- a/debug/testlib.py
+++ b/debug/testlib.py
@@ -1448,6 +1448,13 @@ class GdbTest(BaseTest):
# PMP registers are optional
pass
+ def disable_timer(self, interrupt=False):
+ for hart in self.target.harts:
+ self.gdb.select_hart(hart)
+ if interrupt:
+ self.gdb.interrupt()
+ self.gdb.p("$mie=$mie & ~0x80")
+
def exit(self, expected_result=10):
self.gdb.command("delete")
self.gdb.b("_exit")