Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

sh: Split out PXSEG segmentation per-CPU family.

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>

+39 -23
+13 -18
include/asm-sh/addrspace.h
··· 9 9 */ 10 10 #ifndef __ASM_SH_ADDRSPACE_H 11 11 #define __ASM_SH_ADDRSPACE_H 12 + 12 13 #ifdef __KERNEL__ 13 14 14 15 #include <asm/cpu/addrspace.h> 15 16 16 - /* Memory segments (32bit Privileged mode addresses) */ 17 - #ifndef CONFIG_CPU_SH2A 18 - #define P0SEG 0x00000000 19 - #define P1SEG 0x80000000 20 - #define P2SEG 0xa0000000 21 - #define P3SEG 0xc0000000 22 - #define P4SEG 0xe0000000 23 - #else 24 - #define P0SEG 0x00000000 25 - #define P1SEG 0x00000000 26 - #define P2SEG 0x20000000 27 - #define P3SEG 0x00000000 28 - #define P4SEG 0x80000000 29 - #endif 17 + /* If this CPU supports segmentation, hook up the helpers */ 18 + #ifdef P1SEG 30 19 31 20 /* Returns the privileged segment base of a given address */ 32 21 #define PXSEG(a) (((unsigned long)(a)) & 0xe0000000) ··· 26 37 /* 27 38 * Map an address to a certain privileged segment 28 39 */ 29 - #define P1SEGADDR(a) ((__typeof__(a))(((unsigned long)(a) & 0x1fffffff) | P1SEG)) 30 - #define P2SEGADDR(a) ((__typeof__(a))(((unsigned long)(a) & 0x1fffffff) | P2SEG)) 31 - #define P3SEGADDR(a) ((__typeof__(a))(((unsigned long)(a) & 0x1fffffff) | P3SEG)) 32 - #define P4SEGADDR(a) ((__typeof__(a))(((unsigned long)(a) & 0x1fffffff) | P4SEG)) 40 + #define P1SEGADDR(a) \ 41 + ((__typeof__(a))(((unsigned long)(a) & 0x1fffffff) | P1SEG)) 42 + #define P2SEGADDR(a) \ 43 + ((__typeof__(a))(((unsigned long)(a) & 0x1fffffff) | P2SEG)) 44 + #define P3SEGADDR(a) \ 45 + ((__typeof__(a))(((unsigned long)(a) & 0x1fffffff) | P3SEG)) 46 + #define P4SEGADDR(a) \ 47 + ((__typeof__(a))(((unsigned long)(a) & 0x1fffffff) | P4SEG)) 48 + 49 + #endif /* P1SEG */ 33 50 34 51 #endif /* __KERNEL__ */ 35 52 #endif /* __ASM_SH_ADDRSPACE_H */
+5 -2
include/asm-sh/cpu-sh2/addrspace.h
··· 10 10 #ifndef __ASM_CPU_SH2_ADDRSPACE_H 11 11 #define __ASM_CPU_SH2_ADDRSPACE_H 12 12 13 - /* Should fill here */ 13 + #define P0SEG 0x00000000 14 + #define P1SEG 0x80000000 15 + #define P2SEG 0xa0000000 16 + #define P3SEG 0xc0000000 17 + #define P4SEG 0xe0000000 14 18 15 19 #endif /* __ASM_CPU_SH2_ADDRSPACE_H */ 16 -
+10 -1
include/asm-sh/cpu-sh2a/addrspace.h
··· 1 - #include <asm/cpu-sh2/addrspace.h> 1 + #ifndef __ASM_SH_CPU_SH2A_ADDRSPACE_H 2 + #define __ASM_SH_CPU_SH2A_ADDRSPACE_H 3 + 4 + #define P0SEG 0x00000000 5 + #define P1SEG 0x00000000 6 + #define P2SEG 0x20000000 7 + #define P3SEG 0x00000000 8 + #define P4SEG 0x80000000 9 + 10 + #endif /* __ASM_SH_CPU_SH2A_ADDRSPACE_H */
+5 -2
include/asm-sh/cpu-sh3/addrspace.h
··· 10 10 #ifndef __ASM_CPU_SH3_ADDRSPACE_H 11 11 #define __ASM_CPU_SH3_ADDRSPACE_H 12 12 13 - /* Should fill here */ 13 + #define P0SEG 0x00000000 14 + #define P1SEG 0x80000000 15 + #define P2SEG 0xa0000000 16 + #define P3SEG 0xc0000000 17 + #define P4SEG 0xe0000000 14 18 15 19 #endif /* __ASM_CPU_SH3_ADDRSPACE_H */ 16 -
+6
include/asm-sh/cpu-sh4/addrspace.h
··· 10 10 #ifndef __ASM_CPU_SH4_ADDRSPACE_H 11 11 #define __ASM_CPU_SH4_ADDRSPACE_H 12 12 13 + #define P0SEG 0x00000000 14 + #define P1SEG 0x80000000 15 + #define P2SEG 0xa0000000 16 + #define P3SEG 0xc0000000 17 + #define P4SEG 0xe0000000 18 + 13 19 /* Detailed P4SEG */ 14 20 #define P4SEG_STORE_QUE (P4SEG) 15 21 #define P4SEG_IC_ADDR 0xf0000000