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>
---
ArmPkg/Library/ArmLib/AArch64/AArch64Lib.h | 48 +++++++++++++++++++
.../Library/ArmLib/AArch64/AArch64Support.S | 32 +++++++++++++
2 files changed, 80 insertions(+)
diff --git a/ArmPkg/Library/ArmLib/AArch64/AArch64Lib.h b/ArmPkg/Library/ArmLib/AArch64/AArch64Lib.h
index 330481fc50db..d9744a66cdcf 100644
--- a/ArmPkg/Library/ArmLib/AArch64/AArch64Lib.h
+++ b/ArmPkg/Library/ArmLib/AArch64/AArch64Lib.h
@@ -44,6 +44,54 @@ ArmReadIdAA64Pfr0 (
VOID
);
+UINTN
+EFIAPI
+ArmReadIdAA64Pfr1 (
+ VOID
+ );
+
+UINTN
+EFIAPI
+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
+ );
+
/** Reads the ID_AA64MMFR2_EL1 register.
@return The contents of the ID_AA64MMFR2_EL1 register.
diff --git a/ArmPkg/Library/ArmLib/AArch64/AArch64Support.S b/ArmPkg/Library/ArmLib/AArch64/AArch64Support.S
index d3cc1e86716b..3e8d461bc819 100644
--- a/ArmPkg/Library/ArmLib/AArch64/AArch64Support.S
+++ b/ArmPkg/Library/ArmLib/AArch64/AArch64Support.S
@@ -482,4 +482,36 @@ ASM_FUNC(ArmWriteCntHctl)
msr cnthctl_el2, x0
ret
+ASM_FUNC(ArmReadIdAA64Pfr1)
+ mrs x0, ID_AA64PFR1_EL1
+ 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_FUNCTION_REMOVE_IF_UNREFERENCED
--
2.40.0
-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#102706): https://edk2.groups.io/g/devel/message/102706
Mute This Topic: https://groups.io/mt/98126603/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-
On Fri, Apr 07, 2023 at 17:29:56 +0200, Marcin Juszkiewicz wrote:
> ArmCpuInfo uses those to read system registers and other parts of EDK2
> may find them useful.
This is excellent, thanks!
Sorry for nitpicking, but could you please sort the function
declarations and definitions alphabetically?
/
Leif
> Signed-off-by: Marcin Juszkiewicz <marcin.juszkiewicz@linaro.org>
> ---
> ArmPkg/Library/ArmLib/AArch64/AArch64Lib.h | 48 +++++++++++++++++++
> .../Library/ArmLib/AArch64/AArch64Support.S | 32 +++++++++++++
> 2 files changed, 80 insertions(+)
>
> diff --git a/ArmPkg/Library/ArmLib/AArch64/AArch64Lib.h b/ArmPkg/Library/ArmLib/AArch64/AArch64Lib.h
> index 330481fc50db..d9744a66cdcf 100644
> --- a/ArmPkg/Library/ArmLib/AArch64/AArch64Lib.h
> +++ b/ArmPkg/Library/ArmLib/AArch64/AArch64Lib.h
> @@ -44,6 +44,54 @@ ArmReadIdAA64Pfr0 (
> VOID
> );
>
> +UINTN
> +EFIAPI
> +ArmReadIdAA64Pfr1 (
> + VOID
> + );
> +
> +UINTN
> +EFIAPI
> +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
> + );
> +
> /** Reads the ID_AA64MMFR2_EL1 register.
>
> @return The contents of the ID_AA64MMFR2_EL1 register.
> diff --git a/ArmPkg/Library/ArmLib/AArch64/AArch64Support.S b/ArmPkg/Library/ArmLib/AArch64/AArch64Support.S
> index d3cc1e86716b..3e8d461bc819 100644
> --- a/ArmPkg/Library/ArmLib/AArch64/AArch64Support.S
> +++ b/ArmPkg/Library/ArmLib/AArch64/AArch64Support.S
> @@ -482,4 +482,36 @@ ASM_FUNC(ArmWriteCntHctl)
> msr cnthctl_el2, x0
> ret
>
> +ASM_FUNC(ArmReadIdAA64Pfr1)
> + mrs x0, ID_AA64PFR1_EL1
> + 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_FUNCTION_REMOVE_IF_UNREFERENCED
> --
> 2.40.0
>
-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#103297): https://edk2.groups.io/g/devel/message/103297
Mute This Topic: https://groups.io/mt/98126603/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/leave/3901457/1787277/102458076/xyzzy [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-
© 2016 - 2026 Red Hat, Inc.