Skip to content

Commit 9b36872

Browse files
committed
Add hypervisor support for PrivRw
Signed-off-by: 梁镇 <zhen.liang@spacemit.com> Change-Id: I635a8f86b407f104ea74f00f4aefa1ce8170cb2d
1 parent 67e7759 commit 9b36872

File tree

1 file changed

+9
-4
lines changed

1 file changed

+9
-4
lines changed

debug/gdbserver.py

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1575,14 +1575,16 @@ def setup(self):
15751575
# pylint: disable=attribute-defined-outside-init
15761576
self.gdb.load()
15771577

1578-
misa = self.hart.misa
1578+
# It may be affected by reset halt
1579+
misa = self.gdb.p(f"$misa=0x{self.hart.misa:x}")
15791580
self.supported = set()
15801581
if misa & (1<<20):
15811582
self.supported.add(0)
15821583
if misa & (1<<18):
15831584
self.supported.add(1)
15841585
if misa & (1<<7):
1585-
self.supported.add(2)
1586+
self.supported.add(4)
1587+
self.supported.add(5)
15861588
self.supported.add(3)
15871589

15881590
self.disable_pmp()
@@ -1598,14 +1600,17 @@ def setup(self):
15981600
class PrivRw(PrivTest):
15991601
"""Test reading/writing priv."""
16001602
def test(self):
1601-
self.write_nop_program(4)
1602-
for privilege in range(4):
1603+
privilege_limit=len(self.supported)+1
1604+
self.write_nop_program(privilege_limit)
1605+
for privilege in range(privilege_limit):
16031606
self.gdb.p(f"$priv={privilege}")
16041607
self.gdb.stepi()
16051608
actual = self.gdb.p("$priv")
16061609
assertIn(actual, self.supported)
16071610
if privilege in self.supported:
16081611
assertEqual(actual, privilege)
1612+
# Restore to machine mode
1613+
self.gdb.p(f"$priv=3")
16091614

16101615
class PrivChange(PrivTest):
16111616
"""Test that the core's privilege level actually changes when the debugger

0 commit comments

Comments
 (0)