MIPS: Add CP0 CMGCRBase definitions & accessor
authorPaul Burton <paul.burton@imgtec.com>
Wed, 15 Jan 2014 10:31:47 +0000 (10:31 +0000)
committerRalf Baechle <ralf@linux-mips.org>
Thu, 6 Mar 2014 20:25:22 +0000 (21:25 +0100)
The CMGCRBase register is defined by the PRA specification as an optional
register which indicates the physical base of the MIPS Coherence Manager
Global Control Register block. This patch simply adds a definition for
the base address field within the register, along with an accessor
function for reading the register.

Signed-off-by: Paul Burton <paul.burton@imgtec.com>
Cc: linux-mips@linux-mips.org
Patchwork: https://patchwork.linux-mips.org/patch/6356/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
arch/mips/include/asm/mipsregs.h

index 1f067cdade197b7f6745f8caf56fe445082ba33b..dde6a786307a6d5fc5421aa05e18e8eb22cf0415 100644 (file)
 /*  EntryHI bit definition */
 #define MIPS_ENTRYHI_EHINV     (_ULCAST_(1) << 10)
 
+/* CMGCRBase bit definitions */
+#define MIPS_CMGCRB_BASE       11
+#define MIPS_CMGCRF_BASE       (~_ULCAST_((1 << MIPS_CMGCRB_BASE) - 1))
+
 /*
  * Bits in the MIPS32/64 coprocessor 1 (FPU) revision register.
  */
@@ -1025,6 +1029,8 @@ do {                                                                      \
 
 #define read_c0_prid()         __read_32bit_c0_register($15, 0)
 
+#define read_c0_cmgcrbase()    __read_ulong_c0_register($15, 3)
+
 #define read_c0_config()       __read_32bit_c0_register($16, 0)
 #define read_c0_config1()      __read_32bit_c0_register($16, 1)
 #define read_c0_config2()      __read_32bit_c0_register($16, 2)