[edk2-devel] [PATCH v4 07/10] ArmPkg: Fix the return type of the ReadCCSIDR function

Rebecca Cran posted 10 patches 5 years, 2 months ago
There is a newer version of this series
[edk2-devel] [PATCH v4 07/10] ArmPkg: Fix the return type of the ReadCCSIDR function
Posted by Rebecca Cran 5 years, 2 months ago
When CCIDX is supported, the Current Cache Size ID Register contains
data above 32 bits: namely the number of sets. Avoid truncating this
by returning a UINTN instead of UINT32. On AARCH32, the expanded
number of sets data can be read via the CCSIDR2 register.

Signed-off-by: Rebecca Cran <rebecca@nuviainc.com>
---
 ArmPkg/Library/ArmLib/ArmLibPrivate.h           | 2 +-
 ArmPkg/Library/ArmLib/AArch64/ArmLibSupportV8.S | 2 +-
 ArmPkg/Library/ArmLib/Arm/ArmLibSupportV7.asm   | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/ArmPkg/Library/ArmLib/ArmLibPrivate.h b/ArmPkg/Library/ArmLib/ArmLibPrivate.h
index 2e90739eb858..5eecbc0e1c43 100644
--- a/ArmPkg/Library/ArmLib/ArmLibPrivate.h
+++ b/ArmPkg/Library/ArmLib/ArmLibPrivate.h
@@ -61,7 +61,7 @@ CPSRRead (
   VOID
   );
 
-UINT32
+UINTN
 ReadCCSIDR (
   IN UINT32 CSSELR
   );
diff --git a/ArmPkg/Library/ArmLib/AArch64/ArmLibSupportV8.S b/ArmPkg/Library/ArmLib/AArch64/ArmLibSupportV8.S
index 0e8d21e2264f..0ae75e4cb9f9 100644
--- a/ArmPkg/Library/ArmLib/AArch64/ArmLibSupportV8.S
+++ b/ArmPkg/Library/ArmLib/AArch64/ArmLibSupportV8.S
@@ -84,7 +84,7 @@ ASM_FUNC(ArmDisableAllExceptions)
   ret
 
 
-// UINT32
+// UINTN
 // ReadCCSIDR (
 //   IN UINT32 CSSELR
 //   )
diff --git a/ArmPkg/Library/ArmLib/Arm/ArmLibSupportV7.asm b/ArmPkg/Library/ArmLib/Arm/ArmLibSupportV7.asm
index 1679b09b797a..81f3cb79994c 100644
--- a/ArmPkg/Library/ArmLib/Arm/ArmLibSupportV7.asm
+++ b/ArmPkg/Library/ArmLib/Arm/ArmLibSupportV7.asm
@@ -68,7 +68,7 @@
   mrc    p15,0,r0,c0,c2,6     ; Read ID_MMFR4 Register
   bx     LR
 
-// UINT32
+// UINTN
 // ReadCCSIDR (
 //   IN UINT32 CSSELR
 //   )
-- 
2.26.2



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#68393): https://edk2.groups.io/g/devel/message/68393
Mute This Topic: https://groups.io/mt/78784069/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-


Re: [edk2-devel] [PATCH v4 07/10] ArmPkg: Fix the return type of the ReadCCSIDR function
Posted by Leif Lindholm 5 years, 1 month ago
On Mon, Dec 07, 2020 at 10:54:24 -0700, Rebecca Cran wrote:
> When CCIDX is supported, the Current Cache Size ID Register contains
> data above 32 bits: namely the number of sets. Avoid truncating this
> by returning a UINTN instead of UINT32. On AARCH32, the expanded
> number of sets data can be read via the CCSIDR2 register.
>
> Signed-off-by: Rebecca Cran <rebecca@nuviainc.com>

Reviewed-by: Leif Lindholm <leif@nuviainc.com>

> ---
>  ArmPkg/Library/ArmLib/ArmLibPrivate.h           | 2 +-
>  ArmPkg/Library/ArmLib/AArch64/ArmLibSupportV8.S | 2 +-
>  ArmPkg/Library/ArmLib/Arm/ArmLibSupportV7.asm   | 2 +-
>  3 files changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/ArmPkg/Library/ArmLib/ArmLibPrivate.h b/ArmPkg/Library/ArmLib/ArmLibPrivate.h
> index 2e90739eb858..5eecbc0e1c43 100644
> --- a/ArmPkg/Library/ArmLib/ArmLibPrivate.h
> +++ b/ArmPkg/Library/ArmLib/ArmLibPrivate.h
> @@ -61,7 +61,7 @@ CPSRRead (
>    VOID
>    );
>  
> -UINT32
> +UINTN
>  ReadCCSIDR (
>    IN UINT32 CSSELR
>    );
> diff --git a/ArmPkg/Library/ArmLib/AArch64/ArmLibSupportV8.S b/ArmPkg/Library/ArmLib/AArch64/ArmLibSupportV8.S
> index 0e8d21e2264f..0ae75e4cb9f9 100644
> --- a/ArmPkg/Library/ArmLib/AArch64/ArmLibSupportV8.S
> +++ b/ArmPkg/Library/ArmLib/AArch64/ArmLibSupportV8.S
> @@ -84,7 +84,7 @@ ASM_FUNC(ArmDisableAllExceptions)
>    ret
>  
>  
> -// UINT32
> +// UINTN
>  // ReadCCSIDR (
>  //   IN UINT32 CSSELR
>  //   )
> diff --git a/ArmPkg/Library/ArmLib/Arm/ArmLibSupportV7.asm b/ArmPkg/Library/ArmLib/Arm/ArmLibSupportV7.asm
> index 1679b09b797a..81f3cb79994c 100644
> --- a/ArmPkg/Library/ArmLib/Arm/ArmLibSupportV7.asm
> +++ b/ArmPkg/Library/ArmLib/Arm/ArmLibSupportV7.asm
> @@ -68,7 +68,7 @@
>    mrc    p15,0,r0,c0,c2,6     ; Read ID_MMFR4 Register
>    bx     LR
>  
> -// UINT32
> +// UINTN
>  // ReadCCSIDR (
>  //   IN UINT32 CSSELR
>  //   )
> -- 
> 2.26.2
> 


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#68888): https://edk2.groups.io/g/devel/message/68888
Mute This Topic: https://groups.io/mt/78784069/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-


Re: [edk2-devel] [PATCH v4 07/10] ArmPkg: Fix the return type of the ReadCCSIDR function
Posted by Sami Mujawar 5 years, 1 month ago
Hi Rebecca,

Please add doxygen style documentation for the function ReadCCSIDR().

With that added:
Reviewed-by: Sami Mujawar <sami.mujawar@arm.com>

Regards,

Sami Mujawar

-----Original Message-----
From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Rebecca Cran via groups.io
Sent: 07 December 2020 05:54 PM
To: devel@edk2.groups.io
Cc: Rebecca Cran <rebecca@nuviainc.com>; Michael D Kinney <michael.d.kinney@intel.com>; Liming Gao <gaoliming@byosoft.com.cn>; Zhiguang Liu <zhiguang.liu@intel.com>; Leif Lindholm <leif@nuviainc.com>; Ard Biesheuvel <Ard.Biesheuvel@arm.com>
Subject: [edk2-devel] [PATCH v4 07/10] ArmPkg: Fix the return type of the ReadCCSIDR function

When CCIDX is supported, the Current Cache Size ID Register contains
data above 32 bits: namely the number of sets. Avoid truncating this
by returning a UINTN instead of UINT32. On AARCH32, the expanded
number of sets data can be read via the CCSIDR2 register.

Signed-off-by: Rebecca Cran <rebecca@nuviainc.com>
---
 ArmPkg/Library/ArmLib/ArmLibPrivate.h           | 2 +-
 ArmPkg/Library/ArmLib/AArch64/ArmLibSupportV8.S | 2 +-
 ArmPkg/Library/ArmLib/Arm/ArmLibSupportV7.asm   | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/ArmPkg/Library/ArmLib/ArmLibPrivate.h b/ArmPkg/Library/ArmLib/ArmLibPrivate.h
index 2e90739eb858..5eecbc0e1c43 100644
--- a/ArmPkg/Library/ArmLib/ArmLibPrivate.h
+++ b/ArmPkg/Library/ArmLib/ArmLibPrivate.h
@@ -61,7 +61,7 @@ CPSRRead (
   VOID
   );
 
-UINT32
+UINTN
 ReadCCSIDR (
   IN UINT32 CSSELR
   );
diff --git a/ArmPkg/Library/ArmLib/AArch64/ArmLibSupportV8.S b/ArmPkg/Library/ArmLib/AArch64/ArmLibSupportV8.S
index 0e8d21e2264f..0ae75e4cb9f9 100644
--- a/ArmPkg/Library/ArmLib/AArch64/ArmLibSupportV8.S
+++ b/ArmPkg/Library/ArmLib/AArch64/ArmLibSupportV8.S
@@ -84,7 +84,7 @@ ASM_FUNC(ArmDisableAllExceptions)
   ret
 
 
-// UINT32
+// UINTN
 // ReadCCSIDR (
 //   IN UINT32 CSSELR
 //   )
diff --git a/ArmPkg/Library/ArmLib/Arm/ArmLibSupportV7.asm b/ArmPkg/Library/ArmLib/Arm/ArmLibSupportV7.asm
index 1679b09b797a..81f3cb79994c 100644
--- a/ArmPkg/Library/ArmLib/Arm/ArmLibSupportV7.asm
+++ b/ArmPkg/Library/ArmLib/Arm/ArmLibSupportV7.asm
@@ -68,7 +68,7 @@
   mrc    p15,0,r0,c0,c2,6     ; Read ID_MMFR4 Register
   bx     LR
 
-// UINT32
+// UINTN
 // ReadCCSIDR (
 //   IN UINT32 CSSELR
 //   )
-- 
2.26.2








-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#68958): https://edk2.groups.io/g/devel/message/68958
Mute This Topic: https://groups.io/mt/78784069/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-