diff options
author | Andrew Waterman <andrew@sifive.com> | 2024-02-29 03:11:44 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-02-29 03:11:44 -0800 |
commit | 634f172dfb2b85593468ec2aeb70c699680e5475 (patch) | |
tree | b9fbc3cc0565a893c178d85bd1da64c6760e8eb5 | |
parent | 9c3d66bc01e9c34f9bc186beced60e7cd4316eb6 (diff) | |
parent | 9e18388b744c7cea04483ef1ef21bcd81e5835fb (diff) | |
download | riscv-tests-634f172dfb2b85593468ec2aeb70c699680e5475.zip riscv-tests-634f172dfb2b85593468ec2aeb70c699680e5475.tar.gz riscv-tests-634f172dfb2b85593468ec2aeb70c699680e5475.tar.bz2 |
Merge pull request #532 from lz-bro/mb_translate
Add virtual memory synchronization after completing the page tables
-rw-r--r-- | debug/programs/translate.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/debug/programs/translate.c b/debug/programs/translate.c index 59dffd6..e246baf 100644 --- a/debug/programs/translate.c +++ b/debug/programs/translate.c @@ -163,6 +163,7 @@ int main() virtual = (uint32_t *) ( (reg_t) virtual | ~(((reg_t) 1 << vms->vaddr_bits) - 1)); add_entry(master_table, 0, (reg_t) virtual, (reg_t) physical); + __asm__ __volatile__ ("sfence.vma" ::: "memory"); // Virtual memory synchronization unsigned long satp = set_field(0, SATP_MODE, vms->mode); satp = set_field(satp, SATP_PPN, ((unsigned long) master_table) >> 12); |