forked from Imagelibrary/rtems
sparc: Simplify trap table initialization
Move _ISR_Handler() to a separate file since it is now only used if a handler is installed by _CPU_ISR_install_raw_handler(). Statically initialize the traps for external interrupts to use the new _SPARC_Interrupt_trap() which directly dispatches the interrupt handlers installed by rtems_interrupt_handler_install() via the BSP-provided _SPARC_Interrupt_dispatch(). Since the trap table is now fully statically initialized, there is no longer a dependency on the Cache Manager in the default configuration. Update #4458.
This commit is contained in:
@@ -37,27 +37,6 @@ static inline int bsp_irq_cpu(int irq)
|
||||
}
|
||||
#endif
|
||||
|
||||
/* Initialize interrupts */
|
||||
void BSP_shared_interrupt_init(void)
|
||||
{
|
||||
rtems_vector_number vector;
|
||||
rtems_isr_entry previous_isr;
|
||||
int i;
|
||||
|
||||
for (i=0; i <= BSP_INTERRUPT_VECTOR_MAX_STD; i++) {
|
||||
#if defined(LEON3) && (defined(RTEMS_SMP) || defined(RTEMS_MULTIPROCESSING))
|
||||
/* Don't install IRQ handler on IPI interrupt */
|
||||
if (i == LEON3_mp_irq)
|
||||
continue;
|
||||
#endif
|
||||
vector = SPARC_ASYNCHRONOUS_TRAP(i) + 0x10;
|
||||
rtems_interrupt_catch(bsp_isr_handler, vector, &previous_isr);
|
||||
}
|
||||
|
||||
/* Initalize interrupt support */
|
||||
bsp_interrupt_initialize();
|
||||
}
|
||||
|
||||
/* Callback from bsp_interrupt_initialize() */
|
||||
rtems_status_code bsp_interrupt_facility_initialize(void)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user