Add helper function to read the CCSIDR2 register.
This is used when CCIDX is supported in AARCH32 mode.
Signed-off-by: Rebecca Cran <rebecca@nuviainc.com>
Reviewed-by: Leif Lindholm <leif@nuviainc.com>
mrc p15,1,r0,c0,c0,0 @ Read current CP15 Cache Size ID Register (CCSIDR)\r
bx lr\r
\r
+// UINT32\r
+// ReadCCSIDR2 (\r
+// IN UINT32 CSSELR\r
+// )\r
+ASM_FUNC(ReadCCSIDR2)\r
+ mcr p15,2,r0,c0,c0,0 @ Write Cache Size Selection Register (CSSELR)\r
+ isb\r
+ mrc p15,1,r0,c0,c0,2 @ Read current CP15 Cache Size ID Register (CCSIDR2)\r
+ bx lr\r
+\r
// UINT32\r
// ReadCLIDR (\r
// IN UINT32 CSSELR\r
mrc p15,1,r0,c0,c0,0 ; Read current CP15 Cache Size ID Register (CCSIDR)\r
bx lr\r
\r
+// UINT32\r
+// ReadCCSIDR2 (\r
+// IN UINT32 CSSELR\r
+// )\r
+ RVCT_ASM_EXPORT ReadCCSIDR2\r
+ mcr p15,2,r0,c0,c0,0 ; Write Cache Size Selection Register (CSSELR)\r
+ isb\r
+ mrc p15,1,r0,c0,c0,2 ; Read current CP15 Cache Size ID Register (CCSIDR2)\r
+ bx lr\r
+\r
// UINT32\r
// ReadCLIDR (\r
// IN UINT32 CSSELR\r
IN UINT32 CSSELR\r
);\r
\r
+/** Reads the CCSIDR2 for the specified cache.\r
+\r
+ @param CSSELR The CSSELR cache selection register value\r
+\r
+ @return The contents of the CCSIDR2 register for the specified cache.\r
+**/\r
+UINT32\r
+ReadCCSIDR2 (\r
+ IN UINT32 CSSELR\r
+ );\r
+\r
UINT32\r
ReadCLIDR (\r
VOID\r