]> git.proxmox.com Git - mirror_edk2.git/commitdiff
ArmPkg: Fix the return type of the ReadCCSIDR function
authorRebecca Cran <rebecca@nuviainc.com>
Mon, 8 Feb 2021 00:52:39 +0000 (17:52 -0700)
committermergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
Mon, 8 Feb 2021 19:35:23 +0000 (19:35 +0000)
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.

Also, add Doxygen comments for the function.

Signed-off-by: Rebecca Cran <rebecca@nuviainc.com>
Reviewed-by: Sami Mujawar <sami.mujawar@arm.com>
Reviewed-by: Leif Lindholm <leif@nuviainc.com>
ArmPkg/Library/ArmLib/AArch64/ArmLibSupportV8.S
ArmPkg/Library/ArmLib/Arm/ArmLibSupportV7.S
ArmPkg/Library/ArmLib/Arm/ArmLibSupportV7.asm
ArmPkg/Library/ArmLib/ArmLibPrivate.h

index 0e8d21e2264f7c165dcaa14821fa6ce32a940cec..0ae75e4cb9f9306769a3ede9be3f7ce46574bbd7 100644 (file)
@@ -84,7 +84,7 @@ ASM_FUNC(ArmDisableAllExceptions)
   ret\r
 \r
 \r
-// UINT32\r
+// UINTN\r
 // ReadCCSIDR (\r
 //   IN UINT32 CSSELR\r
 //   )\r
index a60a2f6341322da78b2ff92b38268266c7331157..af61dbee52615be54562c61996670cff3672967d 100644 (file)
@@ -64,7 +64,7 @@ ASM_FUNC(ArmReadIdMmfr4)
   mrc    p15,0,r0,c0,c2,6     @ Read ID_MMFR4 Register\r
   bx     lr\r
 \r
-// UINT32\r
+// UINTN\r
 // ReadCCSIDR (\r
 //   IN UINT32 CSSELR\r
 //   )\r
index 1679b09b797abe66a4031f0181699ae723f47ad4..81f3cb79994c94982f8d390268db48ecbef9c0e0 100644 (file)
@@ -68,7 +68,7 @@
   mrc    p15,0,r0,c0,c2,6     ; Read ID_MMFR4 Register\r
   bx     LR\r
 \r
-// UINT32\r
+// UINTN\r
 // ReadCCSIDR (\r
 //   IN UINT32 CSSELR\r
 //   )\r
index 2e90739eb858fd3327996f265303e6cc86914155..8959bdd9d73c6990671e6a85b3da8a464770e33f 100644 (file)
@@ -61,7 +61,14 @@ CPSRRead (
   VOID\r
   );\r
 \r
-UINT32\r
+/** Reads the CCSIDR register for the specified cache.\r
+\r
+  @param CSSELR The CSSELR cache selection register value.\r
+\r
+  @return The contents of the CCSIDR_EL1 register for the specified cache, when in AARCH64 mode.\r
+          Returns the contents of the CCSIDR register in AARCH32 mode.\r
+**/\r
+UINTN\r
 ReadCCSIDR (\r
   IN UINT32 CSSELR\r
   );\r