bsps: Always install IPI in SMP configs

The inter-processor interrupt (IPI) may be used to process per-CPU jobs.
See for example the blocked handler in T_interrupt_test().

Update #3199.
This commit is contained in:
Sebastian Huber
2020-08-31 14:12:14 +02:00
parent b87efa7599
commit d556af3605
4 changed files with 27 additions and 40 deletions

View File

@@ -55,18 +55,15 @@ void bsp_start_on_secondary_processor(Per_CPU_Control *cpu_self)
uint32_t _CPU_SMP_Initialize(void)
{
if ( rtems_configuration_get_maximum_processors() > 1 ) {
GRLIB_Cpu_Unmask_interrupt(GRLIB_mp_irq, _CPU_SMP_Get_current_processor());
GRLIB_Cpu_Unmask_interrupt(GRLIB_mp_irq, _CPU_SMP_Get_current_processor());
rtems_interrupt_handler_install(
GRLIB_mp_irq,
"IPI",
RTEMS_INTERRUPT_SHARED,
bsp_inter_processor_interrupt,
NULL
);
}
rtems_interrupt_handler_install(
GRLIB_mp_irq,
"IPI",
RTEMS_INTERRUPT_SHARED,
bsp_inter_processor_interrupt,
NULL
);
return grlib_get_cpu_count(GRLIB_IrqCtrl_Regs);
}