]> xenbits.xensource.com Git - ovmf.git/commitdiff
ArmLib: add functions to read system registers
authorMarcin Juszkiewicz <marcin.juszkiewicz@linaro.org>
Fri, 21 Apr 2023 15:51:15 +0000 (17:51 +0200)
committermergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
Fri, 21 Apr 2023 18:50:05 +0000 (18:50 +0000)
ArmCpuInfo uses those to read system registers and other parts of EDK2
may find them useful.

Signed-off-by: Marcin Juszkiewicz <marcin.juszkiewicz@linaro.org>
Reviewed-by: Leif Lindholm <quic_llindhol@quicinc.com>
ArmPkg/Library/ArmLib/AArch64/AArch64Lib.h
ArmPkg/Library/ArmLib/AArch64/AArch64Support.S

index 330481fc50db07edc59895d60ffad318e5cfa126..6380a019ddc54e0d665afbb1d843df7ba65320a7 100644 (file)
@@ -40,7 +40,43 @@ ArmCleanInvalidateDataCacheEntryBySetWay (
 \r
 UINTN\r
 EFIAPI\r
-ArmReadIdAA64Pfr0 (\r
+ArmReadIdAA64Dfr0 (\r
+  VOID\r
+  );\r
+\r
+UINTN\r
+EFIAPI\r
+ArmReadIdAA64Dfr1 (\r
+  VOID\r
+  );\r
+\r
+UINTN\r
+EFIAPI\r
+ArmReadIdAA64Isar0 (\r
+  VOID\r
+  );\r
+\r
+UINTN\r
+EFIAPI\r
+ArmReadIdAA64Isar1 (\r
+  VOID\r
+  );\r
+\r
+UINTN\r
+EFIAPI\r
+ArmReadIdAA64Isar2 (\r
+  VOID\r
+  );\r
+\r
+UINTN\r
+EFIAPI\r
+ArmReadIdAA64Mmfr0 (\r
+  VOID\r
+  );\r
+\r
+UINTN\r
+EFIAPI\r
+ArmReadIdAA64Mmfr1 (\r
   VOID\r
   );\r
 \r
@@ -54,4 +90,16 @@ ArmReadIdAA64Mmfr2 (
   VOID\r
   );\r
 \r
+UINTN\r
+EFIAPI\r
+ArmReadIdAA64Pfr0 (\r
+  VOID\r
+  );\r
+\r
+UINTN\r
+EFIAPI\r
+ArmReadIdAA64Pfr1 (\r
+  VOID\r
+  );\r
+\r
 #endif // AARCH64_LIB_H_\r
index d3cc1e86716b93a44265c1b133dee945ad335ae6..a7111e51882c2b66264c4b79aef2258ed0a570a5 100644 (file)
@@ -425,10 +425,6 @@ ASM_FUNC(ArmCallWFI)
   wfi\r
   ret\r
 \r
-ASM_FUNC(ArmReadIdAA64Mmfr2)\r
-  mrs   x0, ID_AA64MMFR2_EL1           // read EL1 MMFR2\r
-  ret\r
-\r
 ASM_FUNC(ArmReadMpidr)\r
   mrs   x0, mpidr_el1           // read EL1 MPIDR\r
   ret\r
@@ -452,10 +448,6 @@ ASM_FUNC(ArmIsArchTimerImplemented)
   ret\r
 \r
 \r
-ASM_FUNC(ArmReadIdAA64Pfr0)\r
-  mrs   x0, id_aa64pfr0_el1   // Read ID_AA64PFR0 Register\r
-  ret\r
-\r
 \r
 // VOID ArmWriteHcr(UINTN Hcr)\r
 ASM_FUNC(ArmWriteHcr)\r
@@ -482,4 +474,54 @@ ASM_FUNC(ArmWriteCntHctl)
   msr   cnthctl_el2, x0\r
   ret\r
 \r
+\r
+ASM_FUNC(ArmReadIdAA64Dfr0)\r
+  mrs   x0, ID_AA64DFR0_EL1\r
+  ret\r
+\r
+\r
+ASM_FUNC(ArmReadIdAA64Dfr1)\r
+  mrs   x0, ID_AA64DFR1_EL1\r
+  ret\r
+\r
+\r
+ASM_FUNC(ArmReadIdAA64Isar0)\r
+  mrs   x0, ID_AA64ISAR0_EL1\r
+  ret\r
+\r
+\r
+ASM_FUNC(ArmReadIdAA64Isar1)\r
+  mrs   x0, ID_AA64ISAR1_EL1\r
+  ret\r
+\r
+\r
+ASM_FUNC(ArmReadIdAA64Isar2)\r
+  mrs   x0, ID_AA64ISAR2_EL1\r
+  ret\r
+\r
+\r
+ASM_FUNC(ArmReadIdAA64Mmfr0)\r
+  mrs   x0, ID_AA64MMFR0_EL1\r
+  ret\r
+\r
+\r
+ASM_FUNC(ArmReadIdAA64Mmfr1)\r
+  mrs   x0, ID_AA64MMFR1_EL1\r
+  ret\r
+\r
+\r
+ASM_FUNC(ArmReadIdAA64Mmfr2)\r
+  mrs   x0, ID_AA64MMFR2_EL1\r
+  ret\r
+\r
+\r
+ASM_FUNC(ArmReadIdAA64Pfr0)\r
+  mrs   x0, ID_AA64PFR0_EL1\r
+  ret\r
+\r
+\r
+ASM_FUNC(ArmReadIdAA64Pfr1)\r
+  mrs   x0, ID_AA64PFR1_EL1\r
+  ret\r
+\r
 ASM_FUNCTION_REMOVE_IF_UNREFERENCED\r