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/addrspace.h | |
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/addrspace.h')
-rw-r--r-- | include/asm-sh/addrspace.h | 31 |
1 files changed, 13 insertions, 18 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 */ |