| /** @file | |
| Copyright (c) 2011-2017, ARM Limited. All rights reserved. | |
| SPDX-License-Identifier: BSD-2-Clause-Patent | |
| **/ | |
| #include "PrePi.h" | |
| #include <AArch64/AArch64.h> | |
| VOID | |
| ArchInitialize ( | |
| VOID | |
| ) | |
| { | |
| // Enable Floating Point | |
| if (FixedPcdGet32 (PcdVFPEnabled)) { | |
| ArmEnableVFP (); | |
| } | |
| if (ArmReadCurrentEL () == AARCH64_EL2) { | |
| // Trap General Exceptions. All exceptions that would be routed to EL1 are routed to EL2 | |
| ArmWriteHcr (ARM_HCR_TGE); | |
| /* Enable Timer access for non-secure EL1 and EL0 | |
| The cnthctl_el2 register bits are architecturally | |
| UNKNOWN on reset. | |
| Disable event stream as it is not in use at this stage | |
| */ | |
| ArmWriteCntHctl (CNTHCTL_EL2_EL1PCTEN | CNTHCTL_EL2_EL1PCEN); | |
| } | |
| } |