git: ef80df0a7191 - main - arm64/vmm: Ensure the tlbi has completed
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Wed, 24 Apr 2024 18:31:41 UTC
The branch main has been updated by andrew:
URL: https://cgit.FreeBSD.org/src/commit/?id=ef80df0a71912500ad84060334a24e903869f00b
commit ef80df0a71912500ad84060334a24e903869f00b
Author: Andrew Turner <andrew@FreeBSD.org>
AuthorDate: 2024-04-15 14:36:20 +0000
Commit: Andrew Turner <andrew@FreeBSD.org>
CommitDate: 2024-04-24 18:17:19 +0000
arm64/vmm: Ensure the tlbi has completed
Ensure the TLB is invalidated before enabling the EL2 MMU. Without
this the TLB may be in an inconsistant state leading to a possible
exception when enabling the MMU.
PR: 277559
Reviewed by: markj
Sponsored by: Arm Ltd
Differential Revision: https://reviews.freebsd.org/D44799
---
sys/arm64/vmm/vmm_hyp_exception.S | 3 +++
1 file changed, 3 insertions(+)
diff --git a/sys/arm64/vmm/vmm_hyp_exception.S b/sys/arm64/vmm/vmm_hyp_exception.S
index 77cb8cfd6cd7..0e8b31ae8b12 100644
--- a/sys/arm64/vmm/vmm_hyp_exception.S
+++ b/sys/arm64/vmm/vmm_hyp_exception.S
@@ -215,7 +215,10 @@ LENTRY(handle_hyp_init)
/* Load the base address for the translation tables */
msr ttbr0_el2, x0
/* Invalidate the TLB */
+ dsb ish
tlbi alle2
+ dsb ishst
+ isb
/* Use the same memory attributes as EL1 */
mrs x9, mair_el1
msr mair_el2, x9