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]
-=-=-=-=-=-=-=-=-=-=-=-


Reply via email to