mirror of
https://git.hardenedbsd.org/hardenedbsd/HardenedBSD.git
synced 2024-11-23 08:11:04 +01:00
arm64: Add CPTR_TRAP_ALL and use it in vmm
Add a new macro that enables all CPTR_EL2 traps. This helps ensure we trap all extensions we don't support. Sponsored by: Arm Ltd Differential Revision: https://reviews.freebsd.org/D46516
This commit is contained in:
parent
9f3d15fda2
commit
d546313602
@ -53,11 +53,13 @@
|
||||
|
||||
/* CPTR_EL2 - Architecture feature trap register */
|
||||
/* Valid if HCR_EL2.E2H == 0 */
|
||||
#define CPTR_TRAP_ALL 0xc01037ff /* Enable all traps */
|
||||
#define CPTR_RES0 0x7fefc800
|
||||
#define CPTR_RES1 0x000033ff
|
||||
#define CPTR_TFP 0x00000400
|
||||
#define CPTR_TTA 0x00100000
|
||||
/* Valid if HCR_EL2.E2H == 1 */
|
||||
#define CPTR_E2H_TRAP_ALL 0xd0000000
|
||||
#define CPTR_E2H_FPEN 0x00300000
|
||||
#define CPTR_E2H_TTA 0x10000000
|
||||
/* Unconditionally valid */
|
||||
|
@ -170,9 +170,10 @@ reset_vm_el2_regs(void *vcpu)
|
||||
* and floating point functionality to EL2.
|
||||
*/
|
||||
if (in_vhe())
|
||||
el2ctx->cptr_el2 = CPACR_FPEN_TRAP_NONE;
|
||||
el2ctx->cptr_el2 = CPTR_E2H_TRAP_ALL | CPTR_E2H_FPEN;
|
||||
else
|
||||
el2ctx->cptr_el2 = CPTR_RES1;
|
||||
el2ctx->cptr_el2 = CPTR_TRAP_ALL & ~CPTR_TFP;
|
||||
el2ctx->cptr_el2 &= ~CPTR_TCPAC;
|
||||
/*
|
||||
* Disable interrupts in the guest. The guest OS will re-enable
|
||||
* them.
|
||||
|
Loading…
Reference in New Issue
Block a user