aboutsummaryrefslogtreecommitdiff
path: root/sys/arm64
diff options
context:
space:
mode:
authorAndrew Turner <andrew@FreeBSD.org>2024-09-27 13:41:08 +0000
committerAndrew Turner <andrew@FreeBSD.org>2024-09-30 12:04:23 +0000
commitfe5ed2496e44aec018a6215175bba225b20d81fd (patch)
tree5b3fc9ef32500a3a7e28fd7b6ab65c4c4cafe272 /sys/arm64
parentaab60068943d733b0b4573e5481c543ab3d45a00 (diff)
downloadsrc-fe5ed2496e44aec018a6215175bba225b20d81fd.tar.gz
src-fe5ed2496e44aec018a6215175bba225b20d81fd.zip
arm64: Don't trap SVE to EL2
As with floating point instructions don't trap SVE instructions to the hypervisor. This lets us handle then in the kernel. Reviewed by: imp (earlier version) Sponsored by: Arm Ltd Differential Revision: https://reviews.freebsd.org/D43303
Diffstat (limited to 'sys/arm64')
-rw-r--r--sys/arm64/include/hypervisor.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/arm64/include/hypervisor.h b/sys/arm64/include/hypervisor.h
index 0a138006b108..1ba1756ecdf2 100644
--- a/sys/arm64/include/hypervisor.h
+++ b/sys/arm64/include/hypervisor.h
@@ -55,11 +55,12 @@
/* Valid if HCR_EL2.E2H == 0 */
#define CPTR_TRAP_ALL 0xc01037ff /* Enable all traps */
#define CPTR_RES0 0x7fefc800
-#define CPTR_RES1 0x000033ff
+#define CPTR_RES1 0x000032ff
#define CPTR_TFP 0x00000400
#define CPTR_TTA 0x00100000
/* Valid if HCR_EL2.E2H == 1 */
#define CPTR_E2H_TRAP_ALL 0xd0000000
+#define CPTR_E2H_ZPEN 0x00030000
#define CPTR_E2H_FPEN 0x00300000
#define CPTR_E2H_TTA 0x10000000
/* Unconditionally valid */