@@ -58,9 +58,9 @@ static inline uint32_t get_available_nvic_line(uint32_t initial_offset)
58
58
static inline void trigger_irq (int irq )
59
59
{
60
60
printk ("Triggering irq : %d\n" , irq );
61
- #if defined(CONFIG_SOC_TI_LM3S6965_QEMU ) || defined(CONFIG_CPU_CORTEX_M0 ) \
62
- || defined(CONFIG_CPU_CORTEX_M0PLUS ) || defined(CONFIG_CPU_CORTEX_M1 )\
63
- || defined(CONFIG_ARMV6_M_ARMV8_M_BASELINE )
61
+ #if defined(CONFIG_SOC_TI_LM3S6965_QEMU ) || defined(CONFIG_CPU_CORTEX_M0 ) || \
62
+ defined(CONFIG_CPU_CORTEX_M0PLUS ) || defined(CONFIG_CPU_CORTEX_M1 ) || \
63
+ defined(CONFIG_ARMV6_M_ARMV8_M_BASELINE )
64
64
/* QEMU does not simulate the STIR register: this is a workaround */
65
65
NVIC_SetPendingIRQ (irq );
66
66
#else
@@ -84,8 +84,7 @@ static inline void trigger_irq(int irq)
84
84
* requesting CPU.
85
85
*/
86
86
#if CONFIG_GIC_VER <= 2
87
- sys_write32 (GICD_SGIR_TGTFILT_REQONLY | GICD_SGIR_SGIINTID (irq ),
88
- GICD_SGIR );
87
+ sys_write32 (GICD_SGIR_TGTFILT_REQONLY | GICD_SGIR_SGIINTID (irq ), GICD_SGIR );
89
88
#else
90
89
uint64_t mpidr = GET_MPIDR ();
91
90
uint8_t aff0 = MPIDR_AFFLVL (mpidr , 0 );
@@ -108,7 +107,7 @@ static inline void trigger_irq(int irq)
108
107
#define VECTOR_MASK 0xFF
109
108
#else
110
109
#include <zephyr/arch/arch_interface.h>
111
- #define LOAPIC_ICR_IPI_TEST 0x00004000U
110
+ #define LOAPIC_ICR_IPI_TEST 0x00004000U
112
111
#endif
113
112
114
113
/*
@@ -175,9 +174,7 @@ static inline void trigger_irq(int irq)
175
174
{
176
175
uint32_t mip ;
177
176
178
- __asm__ volatile ("csrrs %0, mip, %1\n"
179
- : "=r" (mip )
180
- : "r" (1 << irq ));
177
+ __asm__ volatile ("csrrs %0, mip, %1\n" : "=r" (mip ) : "r" (1 << irq ));
181
178
}
182
179
#endif
183
180
#elif defined(CONFIG_XTENSA )
@@ -218,7 +215,8 @@ static inline void trigger_irq(int irq)
218
215
__ASSERT (irq < CONFIG_NUM_IRQS , "attempting to trigger invalid IRQ (%u)" , irq );
219
216
__ASSERT (irq >= CONFIG_GEN_IRQ_START_VECTOR , "attempting to trigger reserved IRQ (%u)" ,
220
217
irq );
221
- WRITE_BIT (REG (IR_BASE_ADDRESS + irq ), 0 , true);
218
+ _sw_isr_table [irq - CONFIG_GEN_IRQ_START_VECTOR ].isr (
219
+ _sw_isr_table [irq - CONFIG_GEN_IRQ_START_VECTOR ].arg );
222
220
}
223
221
224
222
#else
0 commit comments