debug: need to clear satp before changing priv
authorMegan Wachs <megan@sifive.com>
Fri, 27 Apr 2018 23:52:43 +0000 (16:52 -0700)
committerGitHub <noreply@github.com>
Fri, 27 Apr 2018 23:52:43 +0000 (16:52 -0700)
ISA Manual does not require this register to be reset, and attempting to execute code with VM on when VM hasn't been set up is going to just lead to sadness.

debug/gdbserver.py

index d085e2ef60df5a3a2bc2fc1efb547cb4a9fc69ae..af9a33456b5855c348f2fa28f209c2d276f6a9a4 100755 (executable)
@@ -881,6 +881,13 @@ class PrivRw(PrivTest):
             # PMP registers are optional
             pass
 
+        # Ensure Virtual Memory is disabled if applicable (SATP register is not reset)
+        try:
+           self.gdb.p("$satp=0")
+        except testlib.CouldNotFetch:
+           # SATP only exists if you have S mode.
+           pass
+        
         # Leave the PC at _start, where the first 4 instructions should be
         # legal in any mode.
         for privilege in range(4):