aboutsummaryrefslogtreecommitdiffstats
path: root/arch/mips/mips-boards/generic/init.c
diff options
context:
space:
mode:
authorRalf Baechle <ralf@linux-mips.org>2005-07-14 11:57:16 -0400
committerRalf Baechle <ralf@linux-mips.org>2005-10-29 14:31:53 -0400
commite01402b115cccb6357f956649487aca2c6f7fbba (patch)
tree256e14f8d2762de98b992219b1a47e8f56b4b0da /arch/mips/mips-boards/generic/init.c
parent86071b637db7baf599df26fdf820dce2fc55ca9f (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.c29
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
229void __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
241void __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
227void __init prom_init(void) 253void __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();