diff options
author | Paul Mundt <lethal@linux-sh.org> | 2007-11-08 04:42:46 -0500 |
---|---|---|
committer | Paul Mundt <lethal@linux-sh.org> | 2008-01-27 23:18:38 -0500 |
commit | 5a668651bf0da3891c46ea2cfcac227ded783a5a (patch) | |
tree | 7cc74e8a20a05f68b365e0afd5711fc156a1d014 /include/asm-sh | |
parent | 39d28a2dbe3886d84335f69da4c18972a31a217d (diff) |
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>
Diffstat (limited to 'include/asm-sh')
-rw-r--r-- | include/asm-sh/addrspace.h | 31 | ||||
-rw-r--r-- | include/asm-sh/cpu-sh2/addrspace.h | 7 | ||||
-rw-r--r-- | include/asm-sh/cpu-sh2a/addrspace.h | 11 | ||||
-rw-r--r-- | include/asm-sh/cpu-sh3/addrspace.h | 7 | ||||
-rw-r--r-- | include/asm-sh/cpu-sh4/addrspace.h | 6 |
5 files changed, 39 insertions, 23 deletions
diff --git a/include/asm-sh/addrspace.h b/include/asm-sh/addrspace.h index b860218e402e..cb9da9992fa0 100644 --- a/include/asm-sh/addrspace.h +++ b/include/asm-sh/addrspace.h | |||
@@ -9,24 +9,13 @@ | |||
9 | */ | 9 | */ |
10 | #ifndef __ASM_SH_ADDRSPACE_H | 10 | #ifndef __ASM_SH_ADDRSPACE_H |
11 | #define __ASM_SH_ADDRSPACE_H | 11 | #define __ASM_SH_ADDRSPACE_H |
12 | |||
12 | #ifdef __KERNEL__ | 13 | #ifdef __KERNEL__ |
13 | 14 | ||
14 | #include <asm/cpu/addrspace.h> | 15 | #include <asm/cpu/addrspace.h> |
15 | 16 | ||
16 | /* Memory segments (32bit Privileged mode addresses) */ | 17 | /* If this CPU supports segmentation, hook up the helpers */ |
17 | #ifndef CONFIG_CPU_SH2A | 18 | #ifdef P1SEG |
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 | ||
30 | 19 | ||
31 | /* Returns the privileged segment base of a given address */ | 20 | /* Returns the privileged segment base of a given address */ |
32 | #define PXSEG(a) (((unsigned long)(a)) & 0xe0000000) | 21 | #define PXSEG(a) (((unsigned long)(a)) & 0xe0000000) |
@@ -37,10 +26,16 @@ | |||
37 | /* | 26 | /* |
38 | * Map an address to a certain privileged segment | 27 | * Map an address to a certain privileged segment |
39 | */ | 28 | */ |
40 | #define P1SEGADDR(a) ((__typeof__(a))(((unsigned long)(a) & 0x1fffffff) | P1SEG)) | 29 | #define P1SEGADDR(a) \ |
41 | #define P2SEGADDR(a) ((__typeof__(a))(((unsigned long)(a) & 0x1fffffff) | P2SEG)) | 30 | ((__typeof__(a))(((unsigned long)(a) & 0x1fffffff) | P1SEG)) |
42 | #define P3SEGADDR(a) ((__typeof__(a))(((unsigned long)(a) & 0x1fffffff) | P3SEG)) | 31 | #define P2SEGADDR(a) \ |
43 | #define P4SEGADDR(a) ((__typeof__(a))(((unsigned long)(a) & 0x1fffffff) | P4SEG)) | 32 | ((__typeof__(a))(((unsigned long)(a) & 0x1fffffff) | P2SEG)) |
33 | #define P3SEGADDR(a) \ | ||
34 | ((__typeof__(a))(((unsigned long)(a) & 0x1fffffff) | P3SEG)) | ||
35 | #define P4SEGADDR(a) \ | ||
36 | ((__typeof__(a))(((unsigned long)(a) & 0x1fffffff) | P4SEG)) | ||
37 | |||
38 | #endif /* P1SEG */ | ||
44 | 39 | ||
45 | #endif /* __KERNEL__ */ | 40 | #endif /* __KERNEL__ */ |
46 | #endif /* __ASM_SH_ADDRSPACE_H */ | 41 | #endif /* __ASM_SH_ADDRSPACE_H */ |
diff --git a/include/asm-sh/cpu-sh2/addrspace.h b/include/asm-sh/cpu-sh2/addrspace.h index 8706c903c5a0..2b9ab93efa4e 100644 --- a/include/asm-sh/cpu-sh2/addrspace.h +++ b/include/asm-sh/cpu-sh2/addrspace.h | |||
@@ -10,7 +10,10 @@ | |||
10 | #ifndef __ASM_CPU_SH2_ADDRSPACE_H | 10 | #ifndef __ASM_CPU_SH2_ADDRSPACE_H |
11 | #define __ASM_CPU_SH2_ADDRSPACE_H | 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 | #endif /* __ASM_CPU_SH2_ADDRSPACE_H */ | 19 | #endif /* __ASM_CPU_SH2_ADDRSPACE_H */ |
16 | |||
diff --git a/include/asm-sh/cpu-sh2a/addrspace.h b/include/asm-sh/cpu-sh2a/addrspace.h index 3d2e9aa21522..795ddd6856a3 100644 --- a/include/asm-sh/cpu-sh2a/addrspace.h +++ b/include/asm-sh/cpu-sh2a/addrspace.h | |||
@@ -1 +1,10 @@ | |||
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 */ | ||
diff --git a/include/asm-sh/cpu-sh3/addrspace.h b/include/asm-sh/cpu-sh3/addrspace.h index 872e9e1b548c..0f94726c7d62 100644 --- a/include/asm-sh/cpu-sh3/addrspace.h +++ b/include/asm-sh/cpu-sh3/addrspace.h | |||
@@ -10,7 +10,10 @@ | |||
10 | #ifndef __ASM_CPU_SH3_ADDRSPACE_H | 10 | #ifndef __ASM_CPU_SH3_ADDRSPACE_H |
11 | #define __ASM_CPU_SH3_ADDRSPACE_H | 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 | #endif /* __ASM_CPU_SH3_ADDRSPACE_H */ | 19 | #endif /* __ASM_CPU_SH3_ADDRSPACE_H */ |
16 | |||
diff --git a/include/asm-sh/cpu-sh4/addrspace.h b/include/asm-sh/cpu-sh4/addrspace.h index bb2e1b03060c..a3fa733c1c7d 100644 --- a/include/asm-sh/cpu-sh4/addrspace.h +++ b/include/asm-sh/cpu-sh4/addrspace.h | |||
@@ -10,6 +10,12 @@ | |||
10 | #ifndef __ASM_CPU_SH4_ADDRSPACE_H | 10 | #ifndef __ASM_CPU_SH4_ADDRSPACE_H |
11 | #define __ASM_CPU_SH4_ADDRSPACE_H | 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 | /* Detailed P4SEG */ | 19 | /* Detailed P4SEG */ |
14 | #define P4SEG_STORE_QUE (P4SEG) | 20 | #define P4SEG_STORE_QUE (P4SEG) |
15 | #define P4SEG_IC_ADDR 0xf0000000 | 21 | #define P4SEG_IC_ADDR 0xf0000000 |