diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2020-12-09 14:29:47 +0100 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2020-12-10 09:42:49 +0100 |
commit | b6925e10c8a7990ef9d9649e0f13ac0cbdd41071 (patch) | |
tree | a10445b43d734d24e591fe4de0f36554aa591be9 /bsps/shared | |
parent | bsp/realview-pbx-a9: Fix smpfatal04 test (diff) | |
download | rtems-b6925e10c8a7990ef9d9649e0f13ac0cbdd41071.tar.bz2 |
bsps: Fix GICv3 arm_gic_trigger_sgi()
Use the targets parameter to determine the targets of the SGI. Change
targets parameter type to 32-bit to ease the parameter passing. GICv3
supports up to 16 targets.
Update #4202.
Diffstat (limited to 'bsps/shared')
-rw-r--r-- | bsps/shared/dev/irq/arm-gicv2.c | 2 | ||||
-rw-r--r-- | bsps/shared/dev/irq/arm-gicv3.c | 4 |
2 files changed, 3 insertions, 3 deletions
diff --git a/bsps/shared/dev/irq/arm-gicv2.c b/bsps/shared/dev/irq/arm-gicv2.c index cba8982764..9560a90d6b 100644 --- a/bsps/shared/dev/irq/arm-gicv2.c +++ b/bsps/shared/dev/irq/arm-gicv2.c @@ -261,7 +261,7 @@ void bsp_interrupt_get_affinity( void arm_gic_trigger_sgi( rtems_vector_number vector, arm_gic_irq_software_irq_target_filter filter, - uint8_t targets + uint32_t targets ) { volatile gic_dist *dist = ARM_GIC_DIST; diff --git a/bsps/shared/dev/irq/arm-gicv3.c b/bsps/shared/dev/irq/arm-gicv3.c index db10371c72..2bedaefcef 100644 --- a/bsps/shared/dev/irq/arm-gicv3.c +++ b/bsps/shared/dev/irq/arm-gicv3.c @@ -340,7 +340,7 @@ void bsp_interrupt_get_affinity( void arm_gic_trigger_sgi( rtems_vector_number vector, arm_gic_irq_software_irq_target_filter filter, - uint8_t targets + uint32_t targets ) { /* TODO(kmoore) Handle filter: @@ -356,7 +356,7 @@ void arm_gic_trigger_sgi( uint64_t value = ICC_SGIR_AFFINITY2(MPIDR_AFFINITY2_GET(mpidr)) | ICC_SGIR_INTID(vector) | ICC_SGIR_AFFINITY1(MPIDR_AFFINITY1_GET(mpidr)) - | ICC_SGIR_CPU_TARGET_LIST(1); + | ICC_SGIR_CPU_TARGET_LIST(targets); #ifndef ARM_MULTILIB_ARCH_V4 value |= ICC_SGIR_AFFINITY3(MPIDR_AFFINITY3_GET(mpidr)); #endif |