diff options
Diffstat (limited to 'bsps/arm/shared/irq/irq-gic.c')
-rw-r--r-- | bsps/arm/shared/irq/irq-gic.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/bsps/arm/shared/irq/irq-gic.c b/bsps/arm/shared/irq/irq-gic.c index 65a7e6f653..7cf469d0f7 100644 --- a/bsps/arm/shared/irq/irq-gic.c +++ b/bsps/arm/shared/irq/irq-gic.c @@ -262,3 +262,19 @@ void bsp_interrupt_get_affinity( _Processor_mask_From_uint32_t(affinity, targets, 0); } + +void arm_gic_trigger_sgi( + rtems_vector_number vector, + arm_gic_irq_software_irq_target_filter filter, + uint8_t targets +) +{ + volatile gic_dist *dist = ARM_GIC_DIST; + + dist->icdsgir = GIC_DIST_ICDSGIR_TARGET_LIST_FILTER(filter) + | GIC_DIST_ICDSGIR_CPU_TARGET_LIST(targets) +#ifdef BSP_ARM_GIC_ENABLE_FIQ_FOR_GROUP_0 + | GIC_DIST_ICDSGIR_NSATT +#endif + | GIC_DIST_ICDSGIR_SGIINTID(vector); +} |