Page MenuHomeFreeBSD

D55946.diff
No OneTemporary

D55946.diff

diff --git a/sys/arm64/arm64/locore.S b/sys/arm64/arm64/locore.S
--- a/sys/arm64/arm64/locore.S
+++ b/sys/arm64/arm64/locore.S
@@ -398,7 +398,7 @@
*/
/* Configure the Hypervisor */
- ldr x2, =(HCR_RW | HCR_APK | HCR_API)
+ ldr x2, =(HCR_RW | HCR_APK | HCR_API | HCR_ATA)
msr hcr_el2, x2
/* Stash value of HCR_EL2 for later */
@@ -1063,6 +1063,21 @@
isb
ldr x2, mair
+
+ /**
+ * If MTE is supported, configure GCR_EL1 and clear the TFSR registers of
+ * any pending tag check faults
+ */
+ CHECK_CPU_FEAT(x3, ID_AA64PFR1, MTE, MTE, 1f)
+
+ /* Set GCR_EL1, non-zero tags excluded by default */
+ mov x3, #(GCR_Exclude_MASK | GCR_RRND)
+ msr GCR_EL1_REG, x3
+
+ /* Clear any pending tag check faults */
+ msr TFSR_EL1_REG, xzr
+ msr TFSRE0_EL1_REG, xzr
+1:
msr mair_el1, x2
/*

File Metadata

Mime Type
text/plain
Expires
Thu, Mar 26, 5:15 PM (15 h, 24 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
30026256
Default Alt Text
D55946.diff (803 B)

Event Timeline