vmm/riscv: execute `sfence` after loading `satp`
diff --git a/common/lib/spinup.asm_riscv64 b/common/lib/spinup.asm_riscv64
index 7c27ba82..702e1938 100644
--- a/common/lib/spinup.asm_riscv64
+++ b/common/lib/spinup.asm_riscv64
@@ -11,6 +11,7 @@ riscv_spinup:
add t0, t0, a3
csrw stvec, t0
csrw satp, a2
+ sfence.vma
unimp
.align 4
0:
diff --git a/common/sys/smp_trampoline.asm_riscv64 b/common/sys/smp_trampoline.asm_riscv64
index 6bdb1f92..9430e893 100644
--- a/common/sys/smp_trampoline.asm_riscv64
+++ b/common/sys/smp_trampoline.asm_riscv64
@@ -30,6 +30,8 @@ smp_trampoline_start:
csrw stvec, t0
ld t0, smp_tpl_satp(a1)
csrw satp, t0
+ sfence.vma
+ unimp
0:
// Relocate the info struct to the higher half.
add a0, t1, a0
