bsps/aarch64: Use interrupt entry for IPI

This commit is contained in:
Sebastian Huber
2024-03-06 08:16:37 +01:00
committed by Gedare Bloom
parent 1421b9f7c0
commit 36e596a057

View File

@@ -48,20 +48,25 @@ uint32_t _CPU_SMP_Initialize( void )
return arm_gic_irq_processor_count(); return arm_gic_irq_processor_count();
} }
static rtems_interrupt_entry aarch64_ipi_entry;
void _CPU_SMP_Finalize_initialization( uint32_t cpu_count ) void _CPU_SMP_Finalize_initialization( uint32_t cpu_count )
{ {
if ( cpu_count > 0 ) { if ( cpu_count > 0 ) {
rtems_status_code sc; rtems_status_code sc;
sc = rtems_interrupt_handler_install( rtems_interrupt_entry_initialize(
ARM_GIC_IRQ_SGI_0, &aarch64_ipi_entry,
"IPI",
RTEMS_INTERRUPT_UNIQUE,
bsp_inter_processor_interrupt, bsp_inter_processor_interrupt,
NULL NULL,
"IPI"
); );
_Assert( sc == RTEMS_SUCCESSFUL ); sc = rtems_interrupt_entry_install(
(void) sc; ARM_GIC_IRQ_SGI_0,
RTEMS_INTERRUPT_UNIQUE,
&aarch64_ipi_entry
);
_Assert_Unused_variable_equals( sc, RTEMS_SUCCESSFUL );
#if defined( BSP_DATA_CACHE_ENABLED ) || \ #if defined( BSP_DATA_CACHE_ENABLED ) || \
defined( BSP_INSTRUCTION_CACHE_ENABLED ) defined( BSP_INSTRUCTION_CACHE_ENABLED )