ArmCpuInfo uses those to read system registers and other parts of EDK2 may find them useful.
Signed-off-by: Marcin Juszkiewicz <marcin.juszkiew...@linaro.org> --- ArmPkg/Library/ArmLib/AArch64/AArch64Lib.h | 50 +++++++++++++++- .../Library/ArmLib/AArch64/AArch64Support.S | 58 ++++++++++++++++--- 2 files changed, 99 insertions(+), 9 deletions(-) diff --git a/ArmPkg/Library/ArmLib/AArch64/AArch64Lib.h b/ArmPkg/Library/ArmLib/AArch64/AArch64Lib.h index 330481fc50db..6380a019ddc5 100644 --- a/ArmPkg/Library/ArmLib/AArch64/AArch64Lib.h +++ b/ArmPkg/Library/ArmLib/AArch64/AArch64Lib.h @@ -40,7 +40,43 @@ ArmCleanInvalidateDataCacheEntryBySetWay ( UINTN EFIAPI -ArmReadIdAA64Pfr0 ( +ArmReadIdAA64Dfr0 ( + VOID + ); + +UINTN +EFIAPI +ArmReadIdAA64Dfr1 ( + VOID + ); + +UINTN +EFIAPI +ArmReadIdAA64Isar0 ( + VOID + ); + +UINTN +EFIAPI +ArmReadIdAA64Isar1 ( + VOID + ); + +UINTN +EFIAPI +ArmReadIdAA64Isar2 ( + VOID + ); + +UINTN +EFIAPI +ArmReadIdAA64Mmfr0 ( + VOID + ); + +UINTN +EFIAPI +ArmReadIdAA64Mmfr1 ( VOID ); @@ -54,4 +90,16 @@ ArmReadIdAA64Mmfr2 ( VOID ); +UINTN +EFIAPI +ArmReadIdAA64Pfr0 ( + VOID + ); + +UINTN +EFIAPI +ArmReadIdAA64Pfr1 ( + VOID + ); + #endif // AARCH64_LIB_H_ diff --git a/ArmPkg/Library/ArmLib/AArch64/AArch64Support.S b/ArmPkg/Library/ArmLib/AArch64/AArch64Support.S index d3cc1e86716b..a7111e51882c 100644 --- a/ArmPkg/Library/ArmLib/AArch64/AArch64Support.S +++ b/ArmPkg/Library/ArmLib/AArch64/AArch64Support.S @@ -425,10 +425,6 @@ ASM_FUNC(ArmCallWFI) wfi ret -ASM_FUNC(ArmReadIdAA64Mmfr2) - mrs x0, ID_AA64MMFR2_EL1 // read EL1 MMFR2 - ret - ASM_FUNC(ArmReadMpidr) mrs x0, mpidr_el1 // read EL1 MPIDR ret @@ -452,10 +448,6 @@ ASM_FUNC(ArmIsArchTimerImplemented) ret -ASM_FUNC(ArmReadIdAA64Pfr0) - mrs x0, id_aa64pfr0_el1 // Read ID_AA64PFR0 Register - ret - // VOID ArmWriteHcr(UINTN Hcr) ASM_FUNC(ArmWriteHcr) @@ -482,4 +474,54 @@ ASM_FUNC(ArmWriteCntHctl) msr cnthctl_el2, x0 ret + +ASM_FUNC(ArmReadIdAA64Dfr0) + mrs x0, ID_AA64DFR0_EL1 + ret + + +ASM_FUNC(ArmReadIdAA64Dfr1) + mrs x0, ID_AA64DFR1_EL1 + ret + + +ASM_FUNC(ArmReadIdAA64Isar0) + mrs x0, ID_AA64ISAR0_EL1 + ret + + +ASM_FUNC(ArmReadIdAA64Isar1) + mrs x0, ID_AA64ISAR1_EL1 + ret + + +ASM_FUNC(ArmReadIdAA64Isar2) + mrs x0, ID_AA64ISAR2_EL1 + ret + + +ASM_FUNC(ArmReadIdAA64Mmfr0) + mrs x0, ID_AA64MMFR0_EL1 + ret + + +ASM_FUNC(ArmReadIdAA64Mmfr1) + mrs x0, ID_AA64MMFR1_EL1 + ret + + +ASM_FUNC(ArmReadIdAA64Mmfr2) + mrs x0, ID_AA64MMFR2_EL1 + ret + + +ASM_FUNC(ArmReadIdAA64Pfr0) + mrs x0, ID_AA64PFR0_EL1 + ret + + +ASM_FUNC(ArmReadIdAA64Pfr1) + mrs x0, ID_AA64PFR1_EL1 + ret + ASM_FUNCTION_REMOVE_IF_UNREFERENCED -- 2.40.0 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#103307): https://edk2.groups.io/g/devel/message/103307 Mute This Topic: https://groups.io/mt/98390297/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-