File tree Expand file tree Collapse file tree 1 file changed +9
-4
lines changed Expand file tree Collapse file tree 1 file changed +9
-4
lines changed Original file line number Diff line number Diff line change @@ -1575,14 +1575,16 @@ def setup(self):
1575
1575
# pylint: disable=attribute-defined-outside-init
1576
1576
self .gdb .load ()
1577
1577
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} " )
1579
1580
self .supported = set ()
1580
1581
if misa & (1 << 20 ):
1581
1582
self .supported .add (0 )
1582
1583
if misa & (1 << 18 ):
1583
1584
self .supported .add (1 )
1584
1585
if misa & (1 << 7 ):
1585
- self .supported .add (2 )
1586
+ self .supported .add (4 )
1587
+ self .supported .add (5 )
1586
1588
self .supported .add (3 )
1587
1589
1588
1590
self .disable_pmp ()
@@ -1598,14 +1600,17 @@ def setup(self):
1598
1600
class PrivRw (PrivTest ):
1599
1601
"""Test reading/writing priv."""
1600
1602
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 ):
1603
1606
self .gdb .p (f"$priv={ privilege } " )
1604
1607
self .gdb .stepi ()
1605
1608
actual = self .gdb .p ("$priv" )
1606
1609
assertIn (actual , self .supported )
1607
1610
if privilege in self .supported :
1608
1611
assertEqual (actual , privilege )
1612
+ # Restore to machine mode
1613
+ self .gdb .p (f"$priv=3" )
1609
1614
1610
1615
class PrivChange (PrivTest ):
1611
1616
"""Test that the core's privilege level actually changes when the debugger
You can’t perform that action at this time.
0 commit comments