diff options
author | Konrad Eisele <konrad@gaisler.com> | 2009-08-16 20:13:31 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2009-08-17 21:32:10 -0400 |
commit | 0fd7ef1fe0e6e70c7851ce65a2eb8a8d3f49147e (patch) | |
tree | 5acde580b44e055ce38660bd4185f0da2f1f6468 /arch/sparc/include | |
parent | 97fb58fa9bb509b49090a1c62ed1b660d518c66b (diff) |
sparc,leon: Introduce the sparc-leon CPU type.
Add sparc_leon enum, M_LEON|M_LEON3_SOC machine. Add compilation of
leon.c in mm and kernel
if CONFIG_SPARC_LEON is defined. Add sparc_leon dependent
initialization to switch statements + head.S.
Signed-off-by: Konrad Eisele <konrad@gaisler.com>
Reviewed-by: Sam Ravnborg <sam@ravnborg.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'arch/sparc/include')
-rw-r--r-- | arch/sparc/include/asm/machines.h | 6 | ||||
-rw-r--r-- | arch/sparc/include/asm/pgtsrmmu.h | 4 | ||||
-rw-r--r-- | arch/sparc/include/asm/prom.h | 3 | ||||
-rw-r--r-- | arch/sparc/include/asm/system_32.h | 1 |
4 files changed, 13 insertions, 1 deletions
diff --git a/arch/sparc/include/asm/machines.h b/arch/sparc/include/asm/machines.h index c28c2f248794..cd9c099567e4 100644 --- a/arch/sparc/include/asm/machines.h +++ b/arch/sparc/include/asm/machines.h | |||
@@ -15,7 +15,7 @@ struct Sun_Machine_Models { | |||
15 | /* Current number of machines we know about that has an IDPROM | 15 | /* Current number of machines we know about that has an IDPROM |
16 | * machtype entry including one entry for the 0x80 OBP machines. | 16 | * machtype entry including one entry for the 0x80 OBP machines. |
17 | */ | 17 | */ |
18 | #define NUM_SUN_MACHINES 15 | 18 | #define NUM_SUN_MACHINES 16 |
19 | 19 | ||
20 | /* The machine type in the idprom area looks like this: | 20 | /* The machine type in the idprom area looks like this: |
21 | * | 21 | * |
@@ -30,6 +30,7 @@ struct Sun_Machine_Models { | |||
30 | 30 | ||
31 | #define SM_ARCH_MASK 0xf0 | 31 | #define SM_ARCH_MASK 0xf0 |
32 | #define SM_SUN4 0x20 | 32 | #define SM_SUN4 0x20 |
33 | #define M_LEON 0x30 | ||
33 | #define SM_SUN4C 0x50 | 34 | #define SM_SUN4C 0x50 |
34 | #define SM_SUN4M 0x70 | 35 | #define SM_SUN4M 0x70 |
35 | #define SM_SUN4M_OBP 0x80 | 36 | #define SM_SUN4M_OBP 0x80 |
@@ -41,6 +42,9 @@ struct Sun_Machine_Models { | |||
41 | #define SM_4_330 0x03 /* Sun 4/300 series */ | 42 | #define SM_4_330 0x03 /* Sun 4/300 series */ |
42 | #define SM_4_470 0x04 /* Sun 4/400 series */ | 43 | #define SM_4_470 0x04 /* Sun 4/400 series */ |
43 | 44 | ||
45 | /* Leon machines */ | ||
46 | #define M_LEON3_SOC 0x02 /* Leon3 SoC */ | ||
47 | |||
44 | /* Sun4c machines Full Name - PROM NAME */ | 48 | /* Sun4c machines Full Name - PROM NAME */ |
45 | #define SM_4C_SS1 0x01 /* Sun4c SparcStation 1 - Sun 4/60 */ | 49 | #define SM_4C_SS1 0x01 /* Sun4c SparcStation 1 - Sun 4/60 */ |
46 | #define SM_4C_IPC 0x02 /* Sun4c SparcStation IPC - Sun 4/40 */ | 50 | #define SM_4C_IPC 0x02 /* Sun4c SparcStation IPC - Sun 4/40 */ |
diff --git a/arch/sparc/include/asm/pgtsrmmu.h b/arch/sparc/include/asm/pgtsrmmu.h index 808555fc1d58..1407c07bdade 100644 --- a/arch/sparc/include/asm/pgtsrmmu.h +++ b/arch/sparc/include/asm/pgtsrmmu.h | |||
@@ -267,6 +267,7 @@ static inline void srmmu_flush_tlb_page(unsigned long page) | |||
267 | 267 | ||
268 | } | 268 | } |
269 | 269 | ||
270 | #ifndef CONFIG_SPARC_LEON | ||
270 | static inline unsigned long srmmu_hwprobe(unsigned long vaddr) | 271 | static inline unsigned long srmmu_hwprobe(unsigned long vaddr) |
271 | { | 272 | { |
272 | unsigned long retval; | 273 | unsigned long retval; |
@@ -278,6 +279,9 @@ static inline unsigned long srmmu_hwprobe(unsigned long vaddr) | |||
278 | 279 | ||
279 | return retval; | 280 | return retval; |
280 | } | 281 | } |
282 | #else | ||
283 | #define srmmu_hwprobe(addr) (srmmu_swprobe(addr, 0) & SRMMU_PTE_PMASK) | ||
284 | #endif | ||
281 | 285 | ||
282 | static inline int | 286 | static inline int |
283 | srmmu_get_pte (unsigned long addr) | 287 | srmmu_get_pte (unsigned long addr) |
diff --git a/arch/sparc/include/asm/prom.h b/arch/sparc/include/asm/prom.h index be8d7aaeb60d..82a190d7efc1 100644 --- a/arch/sparc/include/asm/prom.h +++ b/arch/sparc/include/asm/prom.h | |||
@@ -118,5 +118,8 @@ extern struct device_node *of_console_device; | |||
118 | extern char *of_console_path; | 118 | extern char *of_console_path; |
119 | extern char *of_console_options; | 119 | extern char *of_console_options; |
120 | 120 | ||
121 | extern void (*prom_build_more)(struct device_node *dp, struct device_node ***nextp); | ||
122 | extern char *build_full_name(struct device_node *dp); | ||
123 | |||
121 | #endif /* __KERNEL__ */ | 124 | #endif /* __KERNEL__ */ |
122 | #endif /* _SPARC_PROM_H */ | 125 | #endif /* _SPARC_PROM_H */ |
diff --git a/arch/sparc/include/asm/system_32.h b/arch/sparc/include/asm/system_32.h index 751c8c17f5a0..890036b3689a 100644 --- a/arch/sparc/include/asm/system_32.h +++ b/arch/sparc/include/asm/system_32.h | |||
@@ -32,6 +32,7 @@ enum sparc_cpu { | |||
32 | sun4u = 0x05, /* V8 ploos ploos */ | 32 | sun4u = 0x05, /* V8 ploos ploos */ |
33 | sun_unknown = 0x06, | 33 | sun_unknown = 0x06, |
34 | ap1000 = 0x07, /* almost a sun4m */ | 34 | ap1000 = 0x07, /* almost a sun4m */ |
35 | sparc_leon = 0x08, /* Leon SoC */ | ||
35 | }; | 36 | }; |
36 | 37 | ||
37 | /* Really, userland should not be looking at any of this... */ | 38 | /* Really, userland should not be looking at any of this... */ |