From 1c490ab036ab2ff87ec5443bac9ee4cc78fbc545 Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Mon, 15 Sep 2003 13:26:11 +0000 Subject: 2003-09-15 Joel Sherrill PR 483/bsps * start/start.c, startup/bspstart.c: Spurious interrupt handlers cannot be installed until RTEMS has initialized the vector table. --- c/src/lib/libbsp/m68k/efi332/ChangeLog | 6 ++++++ c/src/lib/libbsp/m68k/efi332/start/start.c | 3 ++- c/src/lib/libbsp/m68k/efi332/startup/bspstart.c | 12 ++++++++++++ c/src/lib/libbsp/m68k/efi68k/ChangeLog | 6 ++++++ c/src/lib/libbsp/m68k/efi68k/start/start.c | 3 ++- c/src/lib/libbsp/m68k/efi68k/startup/bspstart.c | 12 ++++++++++++ 6 files changed, 40 insertions(+), 2 deletions(-) diff --git a/c/src/lib/libbsp/m68k/efi332/ChangeLog b/c/src/lib/libbsp/m68k/efi332/ChangeLog index 4f081b8372..ca6e6f270e 100644 --- a/c/src/lib/libbsp/m68k/efi332/ChangeLog +++ b/c/src/lib/libbsp/m68k/efi332/ChangeLog @@ -1,3 +1,9 @@ +2003-09-15 Joel Sherrill + + PR 483/bsps + * start/start.c, startup/bspstart.c: Spurious interrupt handlers cannot + be installed until RTEMS has initialized the vector table. + 2003-09-04 Joel Sherrill * clock/ckinit.c, console/console.c, include/bsp.h, misc/interr.c, diff --git a/c/src/lib/libbsp/m68k/efi332/start/start.c b/c/src/lib/libbsp/m68k/efi332/start/start.c index 97e305d243..20ad83bea2 100644 --- a/c/src/lib/libbsp/m68k/efi332/start/start.c +++ b/c/src/lib/libbsp/m68k/efi332/start/start.c @@ -214,7 +214,8 @@ void dumby_start() { /* * Initalize the board. */ - Spurious_Initialize(); + /* Spurious should be called in the predriver hook */ + /* Spurious_Initialize(); */ console_init(); /* diff --git a/c/src/lib/libbsp/m68k/efi332/startup/bspstart.c b/c/src/lib/libbsp/m68k/efi332/startup/bspstart.c index 7465f4d7b8..40f3998924 100644 --- a/c/src/lib/libbsp/m68k/efi332/startup/bspstart.c +++ b/c/src/lib/libbsp/m68k/efi332/startup/bspstart.c @@ -39,6 +39,17 @@ char *rtems_progname; void bsp_postdriver_hook(void); void bsp_libc_init( void *, unsigned32, int ); void bsp_pretasking_hook(void); /* m68k version */ + +/* + * Call Spurious_Initialize in bsp_predriver_hook because + * bsp_predriver_hook is call after the _ISR_Vector_Table allocation + */ + +void bsp_predriver_hook(void) +{ + void Spurious_Initialize(); + Spurious_Initialize(); +} /* * bsp_start @@ -60,6 +71,7 @@ void bsp_start( void ) */ Cpu_table.pretasking_hook = bsp_pretasking_hook; + Cpu_table.predriver_hook = bsp_predriver_hook; Cpu_table.postdriver_hook = bsp_postdriver_hook; m68k_get_vbr( vbr ); diff --git a/c/src/lib/libbsp/m68k/efi68k/ChangeLog b/c/src/lib/libbsp/m68k/efi68k/ChangeLog index 018344828f..c300114750 100644 --- a/c/src/lib/libbsp/m68k/efi68k/ChangeLog +++ b/c/src/lib/libbsp/m68k/efi68k/ChangeLog @@ -1,3 +1,9 @@ +2003-09-15 Joel Sherrill + + PR 483/bsps + * start/start.c, startup/bspstart.c: Spurious interrupt handlers cannot + be installed until RTEMS has initialized the vector table. + 2003-09-04 Joel Sherrill * clock/ckinit.c, console/console.c, include/16550.h, diff --git a/c/src/lib/libbsp/m68k/efi68k/start/start.c b/c/src/lib/libbsp/m68k/efi68k/start/start.c index 850533cf17..d98b54f7e5 100644 --- a/c/src/lib/libbsp/m68k/efi68k/start/start.c +++ b/c/src/lib/libbsp/m68k/efi68k/start/start.c @@ -56,7 +56,8 @@ void boot_card(); /* * Initalize the board. */ - Spurious_Initialize(); + /* Spurious should be called in the predriver hook */ + /* Spurious_Initialize(); */ console_init(); watch_dog_init(); bsp_tcp_init(); diff --git a/c/src/lib/libbsp/m68k/efi68k/startup/bspstart.c b/c/src/lib/libbsp/m68k/efi68k/startup/bspstart.c index 74b787c693..0a9c115d2d 100644 --- a/c/src/lib/libbsp/m68k/efi68k/startup/bspstart.c +++ b/c/src/lib/libbsp/m68k/efi68k/startup/bspstart.c @@ -45,6 +45,17 @@ void bsp_postdriver_hook(void); void bsp_libc_init( void *, unsigned32, int ); void bsp_pretasking_hook(void); /* m68k version */ +/* + * Call Spurious_Initialize in bsp_predriver_hook because + * bsp_predriver_hook is call after the _ISR_Vector_Table allocation + */ + +void bsp_predriver_hook(void) +{ + void Spurious_Initialize(); + Spurious_Initialize(); +} + /* * bsp_start * @@ -68,6 +79,7 @@ void bsp_start( void ) */ Cpu_table.pretasking_hook = bsp_pretasking_hook; + Cpu_table.predriver_hook = bsp_predriver_hook; Cpu_table.postdriver_hook = bsp_postdriver_hook; m68k_get_vbr( vbr ); -- cgit v1.2.3