From d2bb61a2328d512c0aeb201ab8a5a6497f415afb Mon Sep 17 00:00:00 2001 From: "Cohen, Eugene" Date: Mon, 7 Mar 2016 15:16:27 +0000 Subject: ArmPkg/ArmLib: add ArmReadHcr to enable read-modify-write of HCR Add ArmReadHcr() to ArmLib to enable read-modify-write of the HCR system register. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Eugene Cohen Reviewed-by: Ard Biesheuvel --- ArmPkg/Include/Chipset/AArch64.h | 5 +++++ ArmPkg/Library/ArmLib/AArch64/AArch64Support.S | 6 ++++++ 2 files changed, 11 insertions(+) (limited to 'ArmPkg') diff --git a/ArmPkg/Include/Chipset/AArch64.h b/ArmPkg/Include/Chipset/AArch64.h index e53605f641..aa6a7e0a00 100644 --- a/ArmPkg/Include/Chipset/AArch64.h +++ b/ArmPkg/Include/Chipset/AArch64.h @@ -203,6 +203,11 @@ ArmWriteHcr ( IN UINTN Hcr ); +UINTN +ArmReadHcr ( + VOID + ); + UINTN ArmReadCurrentEL ( VOID diff --git a/ArmPkg/Library/ArmLib/AArch64/AArch64Support.S b/ArmPkg/Library/ArmLib/AArch64/AArch64Support.S index db21f73f0e..1a3023b794 100644 --- a/ArmPkg/Library/ArmLib/AArch64/AArch64Support.S +++ b/ArmPkg/Library/ArmLib/AArch64/AArch64Support.S @@ -54,6 +54,7 @@ GCC_ASM_EXPORT (ArmIsArchTimerImplemented) GCC_ASM_EXPORT (ArmReadIdPfr0) GCC_ASM_EXPORT (ArmReadIdPfr1) GCC_ASM_EXPORT (ArmWriteHcr) +GCC_ASM_EXPORT (ArmReadHcr) GCC_ASM_EXPORT (ArmReadCurrentEL) .set CTRL_M_BIT, (1 << 0) @@ -470,6 +471,11 @@ ASM_PFX(ArmWriteHcr): msr hcr_el2, x0 // Write the passed HCR value ret +// UINTN ArmReadHcr(VOID) +ASM_PFX(ArmReadHcr): + mrs x0, hcr_el2 + ret + // UINTN ArmReadCurrentEL(VOID) ASM_PFX(ArmReadCurrentEL): mrs x0, CurrentEL -- cgit v1.2.3