diff --git a/arch/arm/src/armv7-a/arm_gicv2.c b/arch/arm/src/armv7-a/arm_gicv2.c index 4aa9bd3bbe..f5d04522cb 100644 --- a/arch/arm/src/armv7-a/arm_gicv2.c +++ b/arch/arm/src/armv7-a/arm_gicv2.c @@ -30,6 +30,7 @@ #include #include +#include #include #include @@ -773,4 +774,28 @@ void up_send_smp_call(cpu_set_t cpuset) up_trigger_irq(GIC_SMP_CPUCALL, cpuset); } #endif + +/**************************************************************************** + * Name: up_get_legacy_irq + * + * Description: + * Reserve vector for legacy + * + ****************************************************************************/ + +int up_get_legacy_irq(uint32_t devfn, uint8_t line, uint8_t pin) +{ +#if CONFIG_ARMV7A_GICV2_LEGACY_IRQ0 >= 0 + uint8_t slot; + uint8_t tmp; + + UNUSED(line); + slot = PCI_SLOT(devfn); + tmp = (pin - 1 + slot) % 4; + return CONFIG_ARMV7A_GICV2_LEGACY_IRQ0 + tmp; +#else + return -ENOTSUP; +#endif +} + #endif /* CONFIG_ARMV7A_HAVE_GICv2 */ diff --git a/arch/arm/src/armv7-a/arm_gicv2m.c b/arch/arm/src/armv7-a/arm_gicv2m.c index 8d96a5c2cb..6752862e72 100644 --- a/arch/arm/src/armv7-a/arm_gicv2m.c +++ b/arch/arm/src/armv7-a/arm_gicv2m.c @@ -137,26 +137,3 @@ int up_connect_irq(int *irq, int num, *mdr = *irq; return 0; } - -/**************************************************************************** - * Name: up_get_legacy_irq - * - * Description: - * Reserve vector for legacy - * - ****************************************************************************/ - -int up_get_legacy_irq(uint32_t devfn, uint8_t line, uint8_t pin) -{ -#if CONFIG_ARMV7A_GICV2_LEGACY_IRQ0 >= 0 - uint8_t slot; - uint8_t tmp; - - UNUSED(line); - slot = PCI_SLOT(devfn); - tmp = (pin - 1 + slot) % 4; - return CONFIG_ARMV7A_GICV2_LEGACY_IRQ0 + tmp; -#else - return -ENOTSUP; -#endif -}