diff --git a/arch/arm64/asm.S b/arch/arm64/asm.S index 96e221f28..ab8618980 100644 --- a/arch/arm64/asm.S +++ b/arch/arm64/asm.S @@ -117,10 +117,6 @@ FUNCTION(arm64_elX_to_el1) mov x4, #(1<<31) msr hcr_el2, x4 - /* disable EL1 FPU traps */ - mov x4, #(0b11<<20) - msr cpacr_el1, x4 - /* set up the EL1 bounce interrupt */ mov x4, sp msr sp_el1, x4 diff --git a/arch/arm64/start.S b/arch/arm64/start.S index b814617cd..f9abc460e 100644 --- a/arch/arm64/start.S +++ b/arch/arm64/start.S @@ -35,6 +35,10 @@ arm_reset: /* if we came in at higher than EL1, drop down to EL1 */ bl arm64_elX_to_el1 + /* disable EL1 FPU traps */ + mov tmp, #(0b11<<20) + msr cpacr_el1, tmp + #if WITH_KERNEL_VM /* enable caches so atomics and spinlocks work */ mrs tmp, sctlr_el1