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 @@ -1649,14 +1649,16 @@ def setup(self):
1649
1649
# pylint: disable=attribute-defined-outside-init
1650
1650
self .gdb .load ()
1651
1651
1652
- misa = self .hart .misa
1652
+ # It may be affected by reset halt
1653
+ misa = self .gdb .p (f"$misa=0x{ self .hart .misa :x} " )
1653
1654
self .supported = set ()
1654
1655
if misa & (1 << 20 ):
1655
1656
self .supported .add (0 )
1656
1657
if misa & (1 << 18 ):
1657
1658
self .supported .add (1 )
1658
1659
if misa & (1 << 7 ):
1659
- self .supported .add (2 )
1660
+ self .supported .add (4 )
1661
+ self .supported .add (5 )
1660
1662
self .supported .add (3 )
1661
1663
1662
1664
self .disable_pmp ()
@@ -1672,14 +1674,17 @@ def setup(self):
1672
1674
class PrivRw (PrivTest ):
1673
1675
"""Test reading/writing priv."""
1674
1676
def test (self ):
1675
- self .write_nop_program (4 )
1676
- for privilege in range (4 ):
1677
+ privilege_limit = len (self .supported )+ 1
1678
+ self .write_nop_program (privilege_limit )
1679
+ for privilege in range (privilege_limit ):
1677
1680
self .gdb .p (f"$priv={ privilege } " )
1678
1681
self .gdb .stepi ()
1679
1682
actual = self .gdb .p ("$priv" )
1680
1683
assertIn (actual , self .supported )
1681
1684
if privilege in self .supported :
1682
1685
assertEqual (actual , privilege )
1686
+ # Restore to machine mode
1687
+ self .gdb .p ("$priv=3" )
1683
1688
1684
1689
class PrivChange (PrivTest ):
1685
1690
"""Test that the core's privilege level actually changes when the debugger
You can’t perform that action at this time.
0 commit comments