sh: Split out PXSEG segmentation per-CPU family.
authorPaul Mundt <lethal@linux-sh.org>
Thu, 8 Nov 2007 09:42:46 +0000 (18:42 +0900)
committerPaul Mundt <lethal@linux-sh.org>
Mon, 28 Jan 2008 04:18:38 +0000 (13:18 +0900)
The CPU family abstraction already exists, so move out the PXSEG
definition for each one. SH-2A already has this special cased,
and SH-5 will as well.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
include/asm-sh/addrspace.h
include/asm-sh/cpu-sh2/addrspace.h
include/asm-sh/cpu-sh2a/addrspace.h
include/asm-sh/cpu-sh3/addrspace.h
include/asm-sh/cpu-sh4/addrspace.h

index b860218e402e88622a311a6036424f1ba3e6aa19..cb9da9992fa06793de0bacfc81c7da6995495462 100644 (file)
@@ -9,24 +9,13 @@
  */
 #ifndef __ASM_SH_ADDRSPACE_H
 #define __ASM_SH_ADDRSPACE_H
+
 #ifdef __KERNEL__
 
 #include <asm/cpu/addrspace.h>
 
-/* Memory segments (32bit Privileged mode addresses)  */
-#ifndef CONFIG_CPU_SH2A
-#define P0SEG          0x00000000
-#define P1SEG          0x80000000
-#define P2SEG          0xa0000000
-#define P3SEG          0xc0000000
-#define P4SEG          0xe0000000
-#else
-#define P0SEG          0x00000000
-#define P1SEG          0x00000000
-#define P2SEG          0x20000000
-#define P3SEG          0x00000000
-#define P4SEG          0x80000000
-#endif
+/* If this CPU supports segmentation, hook up the helpers */
+#ifdef P1SEG
 
 /* Returns the privileged segment base of a given address  */
 #define PXSEG(a)       (((unsigned long)(a)) & 0xe0000000)
 /*
  * Map an address to a certain privileged segment
  */
-#define P1SEGADDR(a)   ((__typeof__(a))(((unsigned long)(a) & 0x1fffffff) | P1SEG))
-#define P2SEGADDR(a)   ((__typeof__(a))(((unsigned long)(a) & 0x1fffffff) | P2SEG))
-#define P3SEGADDR(a)   ((__typeof__(a))(((unsigned long)(a) & 0x1fffffff) | P3SEG))
-#define P4SEGADDR(a)   ((__typeof__(a))(((unsigned long)(a) & 0x1fffffff) | P4SEG))
+#define P1SEGADDR(a)   \
+       ((__typeof__(a))(((unsigned long)(a) & 0x1fffffff) | P1SEG))
+#define P2SEGADDR(a)   \
+       ((__typeof__(a))(((unsigned long)(a) & 0x1fffffff) | P2SEG))
+#define P3SEGADDR(a)   \
+       ((__typeof__(a))(((unsigned long)(a) & 0x1fffffff) | P3SEG))
+#define P4SEGADDR(a)   \
+       ((__typeof__(a))(((unsigned long)(a) & 0x1fffffff) | P4SEG))
+
+#endif /* P1SEG */
 
 #endif /* __KERNEL__ */
 #endif /* __ASM_SH_ADDRSPACE_H */
index 8706c903c5a086a68f0dc4a2ed4e8084226547f8..2b9ab93efa4ef38bd14877d40c08a4ba782f7fc3 100644 (file)
 #ifndef __ASM_CPU_SH2_ADDRSPACE_H
 #define __ASM_CPU_SH2_ADDRSPACE_H
 
-/* Should fill here */
+#define P0SEG          0x00000000
+#define P1SEG          0x80000000
+#define P2SEG          0xa0000000
+#define P3SEG          0xc0000000
+#define P4SEG          0xe0000000
 
 #endif /* __ASM_CPU_SH2_ADDRSPACE_H */
-
index 3d2e9aa215222f79b4dcdbb5c6dc481e0beb3817..795ddd6856a317a71ee71e0c5101d7a6b61c3e3f 100644 (file)
@@ -1 +1,10 @@
-#include <asm/cpu-sh2/addrspace.h>
+#ifndef __ASM_SH_CPU_SH2A_ADDRSPACE_H
+#define __ASM_SH_CPU_SH2A_ADDRSPACE_H
+
+#define P0SEG          0x00000000
+#define P1SEG          0x00000000
+#define P2SEG          0x20000000
+#define P3SEG          0x00000000
+#define P4SEG          0x80000000
+
+#endif /* __ASM_SH_CPU_SH2A_ADDRSPACE_H */
index 872e9e1b548ce14b20042dfc0ab0b1b080a5a326..0f94726c7d62d99eb4fd4250c61d663e95b111b0 100644 (file)
 #ifndef __ASM_CPU_SH3_ADDRSPACE_H
 #define __ASM_CPU_SH3_ADDRSPACE_H
 
-/* Should fill here */
+#define P0SEG          0x00000000
+#define P1SEG          0x80000000
+#define P2SEG          0xa0000000
+#define P3SEG          0xc0000000
+#define P4SEG          0xe0000000
 
 #endif /* __ASM_CPU_SH3_ADDRSPACE_H */
-
index bb2e1b03060c98b0497527d6ea95413010b302aa..a3fa733c1c7d7865f3e51c95ab6ff1bb6b8c8238 100644 (file)
 #ifndef __ASM_CPU_SH4_ADDRSPACE_H
 #define __ASM_CPU_SH4_ADDRSPACE_H
 
+#define P0SEG          0x00000000
+#define P1SEG          0x80000000
+#define P2SEG          0xa0000000
+#define P3SEG          0xc0000000
+#define P4SEG          0xe0000000
+
 /* Detailed P4SEG  */
 #define P4SEG_STORE_QUE        (P4SEG)
 #define P4SEG_IC_ADDR  0xf0000000