diff options
author | Ralf Baechle <ralf@linux-mips.org> | 2005-07-14 11:57:16 -0400 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2005-10-29 14:31:53 -0400 |
commit | e01402b115cccb6357f956649487aca2c6f7fbba (patch) | |
tree | 256e14f8d2762de98b992219b1a47e8f56b4b0da /arch/mips/mips-boards/generic/init.c | |
parent | 86071b637db7baf599df26fdf820dce2fc55ca9f (diff) |
More AP / SP bits for the 34K, the Malta bits and things. Still wants
a little polishing.
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Diffstat (limited to 'arch/mips/mips-boards/generic/init.c')
-rw-r--r-- | arch/mips/mips-boards/generic/init.c | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/arch/mips/mips-boards/generic/init.c b/arch/mips/mips-boards/generic/init.c index d821b13d24a0..58256ea33102 100644 --- a/arch/mips/mips-boards/generic/init.c +++ b/arch/mips/mips-boards/generic/init.c | |||
@@ -28,6 +28,8 @@ | |||
28 | #include <asm/gt64120.h> | 28 | #include <asm/gt64120.h> |
29 | #include <asm/io.h> | 29 | #include <asm/io.h> |
30 | #include <asm/system.h> | 30 | #include <asm/system.h> |
31 | #include <asm/cacheflush.h> | ||
32 | #include <asm/traps.h> | ||
31 | 33 | ||
32 | #include <asm/mips-boards/prom.h> | 34 | #include <asm/mips-boards/prom.h> |
33 | #include <asm/mips-boards/generic.h> | 35 | #include <asm/mips-boards/generic.h> |
@@ -224,6 +226,30 @@ void __init kgdb_config (void) | |||
224 | } | 226 | } |
225 | #endif | 227 | #endif |
226 | 228 | ||
229 | void __init mips_nmi_setup (void) | ||
230 | { | ||
231 | void *base; | ||
232 | extern char except_vec_nmi; | ||
233 | |||
234 | base = cpu_has_veic ? | ||
235 | (void *)(CAC_BASE + 0xa80) : | ||
236 | (void *)(CAC_BASE + 0x380); | ||
237 | memcpy(base, &except_vec_nmi, 0x80); | ||
238 | flush_icache_range((unsigned long)base, (unsigned long)base + 0x80); | ||
239 | } | ||
240 | |||
241 | void __init mips_ejtag_setup (void) | ||
242 | { | ||
243 | void *base; | ||
244 | extern char except_vec_ejtag_debug; | ||
245 | |||
246 | base = cpu_has_veic ? | ||
247 | (void *)(CAC_BASE + 0xa00) : | ||
248 | (void *)(CAC_BASE + 0x300); | ||
249 | memcpy(base, &except_vec_ejtag_debug, 0x80); | ||
250 | flush_icache_range((unsigned long)base, (unsigned long)base + 0x80); | ||
251 | } | ||
252 | |||
227 | void __init prom_init(void) | 253 | void __init prom_init(void) |
228 | { | 254 | { |
229 | u32 start, map, mask, data; | 255 | u32 start, map, mask, data; |
@@ -353,6 +379,9 @@ void __init prom_init(void) | |||
353 | while(1); /* We die here... */ | 379 | while(1); /* We die here... */ |
354 | } | 380 | } |
355 | #endif | 381 | #endif |
382 | board_nmi_handler_setup = mips_nmi_setup; | ||
383 | board_ejtag_handler_setup = mips_ejtag_setup; | ||
384 | |||
356 | prom_printf("\nLINUX started...\n"); | 385 | prom_printf("\nLINUX started...\n"); |
357 | prom_init_cmdline(); | 386 | prom_init_cmdline(); |
358 | prom_meminit(); | 387 | prom_meminit(); |