[edk2-devel] [PATCH v5 10/23] ArmPkg: Add helper to read the CCSIDR2 register
Leif Lindholm
leif at nuviainc.com
Sun Jan 10 01:31:07 UTC 2021
On Mon, Jan 04, 2021 at 15:58:17 -0700, Rebecca Cran wrote:
> Add helper function to read the CCSIDR2 register.
> This is used when CCIDX is supported in AARCH32 mode.
>
> Signed-off-by: Rebecca Cran <rebecca at nuviainc.com>
Reviewed-by: Leif Lindholm <leif at nuviainc.com>
> ---
> ArmPkg/Library/ArmLib/ArmLibPrivate.h | 11 +++++++++++
> ArmPkg/Library/ArmLib/Arm/ArmLibSupportV7.S | 10 ++++++++++
> ArmPkg/Library/ArmLib/Arm/ArmLibSupportV7.asm | 10 ++++++++++
> 3 files changed, 31 insertions(+)
>
> diff --git a/ArmPkg/Library/ArmLib/ArmLibPrivate.h b/ArmPkg/Library/ArmLib/ArmLibPrivate.h
> index 5d0224080f3f..e0ec065f1f4a 100644
> --- a/ArmPkg/Library/ArmLib/ArmLibPrivate.h
> +++ b/ArmPkg/Library/ArmLib/ArmLibPrivate.h
> @@ -170,6 +170,17 @@ ReadCCSIDR (
> IN UINT32 CSSELR
> );
>
> +/** Reads the CCSIDR2 for the specified cache.
> +
> + @param CSSELR The CSSELR cache selection register value
> +
> + @return The contents of the CCSIDR2 register for the specified cache.
> +**/
> +UINT32
> +ReadCCSIDR2 (
> + IN UINT32 CSSELR
> + );
> +
> UINT32
> ReadCLIDR (
> VOID
> diff --git a/ArmPkg/Library/ArmLib/Arm/ArmLibSupportV7.S b/ArmPkg/Library/ArmLib/Arm/ArmLibSupportV7.S
> index af61dbee5261..8f75f5051083 100644
> --- a/ArmPkg/Library/ArmLib/Arm/ArmLibSupportV7.S
> +++ b/ArmPkg/Library/ArmLib/Arm/ArmLibSupportV7.S
> @@ -74,6 +74,16 @@ ASM_FUNC(ReadCCSIDR)
> mrc p15,1,r0,c0,c0,0 @ Read current CP15 Cache Size ID Register (CCSIDR)
> bx lr
>
> +// UINT32
> +// ReadCCSIDR2 (
> +// IN UINT32 CSSELR
> +// )
> +ASM_FUNC(ReadCCSIDR2)
> + mcr p15,2,r0,c0,c0,0 @ Write Cache Size Selection Register (CSSELR)
> + isb
> + mrc p15,1,r0,c0,c2,0 @ Read current CP15 Cache Size ID Register (CCSIDR2)
> + bx lr
> +
> // UINT32
> // ReadCLIDR (
> // IN UINT32 CSSELR
> diff --git a/ArmPkg/Library/ArmLib/Arm/ArmLibSupportV7.asm b/ArmPkg/Library/ArmLib/Arm/ArmLibSupportV7.asm
> index 81f3cb79994c..2fa7a046c0c6 100644
> --- a/ArmPkg/Library/ArmLib/Arm/ArmLibSupportV7.asm
> +++ b/ArmPkg/Library/ArmLib/Arm/ArmLibSupportV7.asm
> @@ -78,6 +78,16 @@
> mrc p15,1,r0,c0,c0,0 ; Read current CP15 Cache Size ID Register (CCSIDR)
> bx lr
>
> +// UINT32
> +// ReadCCSIDR2 (
> +// IN UINT32 CSSELR
> +// )
> + RVCT_ASM_EXPORT ReadCCSIDR2
> + mcr p15,2,r0,c0,c0,0 ; Write Cache Size Selection Register (CSSELR)
> + isb
> + mrc p15,1,r0,c0,c2,0 ; Read current CP15 Cache Size ID Register (CCSIDR2)
> + bx lr
> +
> // UINT32
> // ReadCLIDR (
> // IN UINT32 CSSELR
> --
> 2.26.2
>
-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#70082): https://edk2.groups.io/g/devel/message/70082
Mute This Topic: https://groups.io/mt/79438414/1813853
Group Owner: devel+owner at edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [edk2-devel-archive at redhat.com]
-=-=-=-=-=-=-=-=-=-=-=-
More information about the edk2-devel-archive
mailing list