diff options
Diffstat (limited to 'ArmPkg/Library/ArmLib/ArmV7/ArmV7Support.S')
-rw-r--r-- | ArmPkg/Library/ArmLib/ArmV7/ArmV7Support.S | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/ArmPkg/Library/ArmLib/ArmV7/ArmV7Support.S b/ArmPkg/Library/ArmLib/ArmV7/ArmV7Support.S index b11c19dc59..62b8682de5 100644 --- a/ArmPkg/Library/ArmLib/ArmV7/ArmV7Support.S +++ b/ArmPkg/Library/ArmLib/ArmV7/ArmV7Support.S @@ -316,12 +316,15 @@ ASM_PFX(ArmWriteCPACR): bx lr ASM_PFX(ArmEnableVFP): - # Enable VFP registers + # Read CPACR (Coprocessor Access Control Register) mrc p15, 0, r0, c1, c0, 2 - orr r0, r0, #0x00f00000 @ Enable VPF access (V* instructions) + # Enable VPF access (Full Access to CP10, CP11) (V* instructions) + orr r0, r0, #0x00f00000 + # Write back CPACR (Coprocessor Access Control Register) mcr p15, 0, r0, c1, c0, 2 - mov r0, #0x40000000 @ Set EN bit in FPEXC - mcr p10,#0x7,r0,c8,c0,#0 @ msr FPEXC,r0 in ARM assembly + # Set EN bit in FPEXC. The Advanced SIMD and VFP extensions are enabled and operate normally. + mov r0, #0x40000000 + mcr p10,#0x7,r0,c8,c0,#0 bx lr ASM_PFX(ArmCallWFI): |