From 36e596a0576384766c1fe1e3b5cb688c7e025f91 Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Wed, 6 Mar 2024 08:16:37 +0100 Subject: [PATCH] bsps/aarch64: Use interrupt entry for IPI --- bsps/aarch64/shared/start/aarch64-smp.c | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/bsps/aarch64/shared/start/aarch64-smp.c b/bsps/aarch64/shared/start/aarch64-smp.c index 5ec7babce7..b982b1e00f 100644 --- a/bsps/aarch64/shared/start/aarch64-smp.c +++ b/bsps/aarch64/shared/start/aarch64-smp.c @@ -48,20 +48,25 @@ uint32_t _CPU_SMP_Initialize( void ) return arm_gic_irq_processor_count(); } +static rtems_interrupt_entry aarch64_ipi_entry; + void _CPU_SMP_Finalize_initialization( uint32_t cpu_count ) { if ( cpu_count > 0 ) { rtems_status_code sc; - sc = rtems_interrupt_handler_install( - ARM_GIC_IRQ_SGI_0, - "IPI", - RTEMS_INTERRUPT_UNIQUE, + rtems_interrupt_entry_initialize( + &aarch64_ipi_entry, bsp_inter_processor_interrupt, - NULL + NULL, + "IPI" ); - _Assert( sc == RTEMS_SUCCESSFUL ); - (void) sc; + sc = rtems_interrupt_entry_install( + ARM_GIC_IRQ_SGI_0, + RTEMS_INTERRUPT_UNIQUE, + &aarch64_ipi_entry + ); + _Assert_Unused_variable_equals( sc, RTEMS_SUCCESSFUL ); #if defined( BSP_DATA_CACHE_ENABLED ) || \ defined( BSP_INSTRUCTION_CACHE_ENABLED )