summaryrefslogtreecommitdiffstats
path: root/cpukit/score/cpu/m68k
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>2000-08-01 19:38:52 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>2000-08-01 19:38:52 +0000
commit5ede970698867dff1cd8ebb9b8f80641c0b7ccd4 (patch)
treee44eb3ec1b02da8321dc8add3e97256512da41a3 /cpukit/score/cpu/m68k
parent47ca0d0a5120be271140156bb5e5b6953a56adb1 (diff)
downloadrtems-5ede970698867dff1cd8ebb9b8f80641c0b7ccd4.tar.bz2
If the _VBR is set to 0xFFFFFFFF, then assume the vector jump table is
in ROM.
Diffstat (limited to 'cpukit/score/cpu/m68k')
-rw-r--r--cpukit/score/cpu/m68k/cpu.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/cpukit/score/cpu/m68k/cpu.c b/cpukit/score/cpu/m68k/cpu.c
index f1ffe31fe0..c34564fb32 100644
--- a/cpukit/score/cpu/m68k/cpu.c
+++ b/cpukit/score/cpu/m68k/cpu.c
@@ -99,8 +99,17 @@ void _CPU_ISR_install_raw_handler(
#if ( M68K_HAS_VBR == 1 )
interrupt_table[ vector ] = new_handler;
#else
+
+ /*
+ * Install handler into RTEMS jump table and if VBR table is in
+ * RAM, install the pointer to the appropriate jump table slot.
+ * If the VBR table is in ROM, it is the BSP's responsibility to
+ * load it appropriately to vector to the RTEMS jump table.
+ */
+
_CPU_ISR_jump_table[vector].isr_handler = (unsigned32) new_handler;
- interrupt_table[ vector ] = (proc_ptr) &_CPU_ISR_jump_table[vector];
+ if ( (unsigned32) interrupt_table != 0xFFFFFFFF )
+ interrupt_table[ vector ] = (proc_ptr) &_CPU_ISR_jump_table[vector];
#endif /* M68K_HAS_VBR */
}