summaryrefslogtreecommitdiffstats
path: root/bsps/arm
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2021-06-19 12:40:57 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2021-06-24 11:35:49 +0200
commitcd5573c09def76d3d202349639da6ba05617b31b (patch)
tree17bc03ce550e178efe616958d2b0e5417fa5d441 /bsps/arm
parentsmpcapture02: Fix use of BSP_INTERRUPT_VECTOR_MAX (diff)
downloadrtems-cd5573c09def76d3d202349639da6ba05617b31b.tar.bz2
bsps/irq: Add BSP_INTERRUPT_VECTOR_COUNT
Assert BSP_INTERRUPT_VECTOR_MAX + 1 == BSP_INTERRUPT_VECTOR_COUNT. After building all BSPs with this patch, BSP_INTERRUPT_VECTOR_MAX can be removed and replaced by BSP_INTERRUPT_VECTOR_COUNT. The BSP_INTERRUPT_VECTOR_COUNT allows a default implementation which supports no interrupt vector at all. Using COUNT instead of MAX may avoid some interpretation issues, for example is the maximum value a valid vector number or not. Update #3269.
Diffstat (limited to 'bsps/arm')
-rw-r--r--bsps/arm/altera-cyclone-v/include/bsp/irq.h2
-rw-r--r--bsps/arm/atsam/include/bsp/irq.h1
-rw-r--r--bsps/arm/beagle/include/bsp/irq.h1
-rw-r--r--bsps/arm/csb336/include/bsp/irq.h1
-rw-r--r--bsps/arm/csb337/include/bsp/irq.h1
-rw-r--r--bsps/arm/edb7312/include/bsp/irq.h1
-rw-r--r--bsps/arm/fvp/include/bsp/irq.h2
-rw-r--r--bsps/arm/gumstix/include/bsp/irq.h1
-rw-r--r--bsps/arm/imx/include/bsp/irq.h1
-rw-r--r--bsps/arm/imxrt/include/bsp/irq.h1
-rw-r--r--bsps/arm/lm3s69xx/include/bsp/irq.h1
-rw-r--r--bsps/arm/lpc176x/include/bsp/irq.h1
-rw-r--r--bsps/arm/lpc24xx/include/bsp/irq.h2
-rw-r--r--bsps/arm/lpc32xx/include/bsp/irq.h1
-rw-r--r--bsps/arm/raspberrypi/include/bsp/irq.h2
-rw-r--r--bsps/arm/realview-pbx-a9/include/bsp/irq.h1
-rw-r--r--bsps/arm/rtl22xx/include/bsp/irq.h1
-rw-r--r--bsps/arm/smdk2410/include/bsp/irq.h1
-rw-r--r--bsps/arm/stm32f4/include/bsp/irq.h1
-rw-r--r--bsps/arm/stm32h7/include/bsp/irq.h1
-rw-r--r--bsps/arm/tms570/include/bsp/irq.h1
-rw-r--r--bsps/arm/xen/include/bsp/irq.h1
-rw-r--r--bsps/arm/xilinx-zynq/include/bsp/irq.h1
-rw-r--r--bsps/arm/xilinx-zynqmp/include/bsp/irq.h1
24 files changed, 28 insertions, 0 deletions
diff --git a/bsps/arm/altera-cyclone-v/include/bsp/irq.h b/bsps/arm/altera-cyclone-v/include/bsp/irq.h
index d5470f9b4e..e9837ae9e3 100644
--- a/bsps/arm/altera-cyclone-v/include/bsp/irq.h
+++ b/bsps/arm/altera-cyclone-v/include/bsp/irq.h
@@ -48,6 +48,8 @@ extern "C" {
/* Use interrupt IDs as defined in alt_interrupt_common.h */
#define BSP_INTERRUPT_VECTOR_MAX ALT_INT_INTERRUPT_RAM_ECC_UNCORRECTED_IRQ
+#define BSP_INTERRUPT_VECTOR_COUNT \
+ (ALT_INT_INTERRUPT_RAM_ECC_UNCORRECTED_IRQ + 1)
/** @} */
diff --git a/bsps/arm/atsam/include/bsp/irq.h b/bsps/arm/atsam/include/bsp/irq.h
index b6eac75042..e7a4add25a 100644
--- a/bsps/arm/atsam/include/bsp/irq.h
+++ b/bsps/arm/atsam/include/bsp/irq.h
@@ -24,5 +24,6 @@
#endif
#define BSP_INTERRUPT_VECTOR_MAX 64
+#define BSP_INTERRUPT_VECTOR_COUNT 65
#endif /* LIBBSP_ARM_ATSAM_ESV_70_IRQ_H */
diff --git a/bsps/arm/beagle/include/bsp/irq.h b/bsps/arm/beagle/include/bsp/irq.h
index 9ecd6bc31e..fc583fe8bb 100644
--- a/bsps/arm/beagle/include/bsp/irq.h
+++ b/bsps/arm/beagle/include/bsp/irq.h
@@ -16,6 +16,7 @@
#include <rtems/irq-extension.h>
#define BSP_INTERRUPT_VECTOR_MAX 127
+#define BSP_INTERRUPT_VECTOR_COUNT 128
#endif /* ASM */
diff --git a/bsps/arm/csb336/include/bsp/irq.h b/bsps/arm/csb336/include/bsp/irq.h
index b9978242eb..f082c7c34e 100644
--- a/bsps/arm/csb336/include/bsp/irq.h
+++ b/bsps/arm/csb336/include/bsp/irq.h
@@ -89,5 +89,6 @@
#define BSP_MAX_INT 64
#define BSP_INTERRUPT_VECTOR_MAX (BSP_MAX_INT - 1)
+#define BSP_INTERRUPT_VECTOR_COUNT BSP_MAX_INT
#endif /* __IRQ_H__ */
diff --git a/bsps/arm/csb337/include/bsp/irq.h b/bsps/arm/csb337/include/bsp/irq.h
index 7d967b0ae0..2dfbff8eac 100644
--- a/bsps/arm/csb337/include/bsp/irq.h
+++ b/bsps/arm/csb337/include/bsp/irq.h
@@ -73,5 +73,6 @@
#define AT91RM9200_MAX_INT 32
#define BSP_INTERRUPT_VECTOR_MAX (AT91RM9200_MAX_INT - 1)
+#define BSP_INTERRUPT_VECTOR_COUNT AT91RM9200_MAX_INT
#endif /* __IRQ_H__ */
diff --git a/bsps/arm/edb7312/include/bsp/irq.h b/bsps/arm/edb7312/include/bsp/irq.h
index ba167083d3..d0c0c7dd9f 100644
--- a/bsps/arm/edb7312/include/bsp/irq.h
+++ b/bsps/arm/edb7312/include/bsp/irq.h
@@ -84,6 +84,7 @@
/** @} */
#define BSP_INTERRUPT_VECTOR_MAX (BSP_MAX_INT - 1)
+#define BSP_INTERRUPT_VECTOR_COUNT BSP_MAX_INT
/** @} */
diff --git a/bsps/arm/fvp/include/bsp/irq.h b/bsps/arm/fvp/include/bsp/irq.h
index d28f7a6db3..ba558c5122 100644
--- a/bsps/arm/fvp/include/bsp/irq.h
+++ b/bsps/arm/fvp/include/bsp/irq.h
@@ -41,5 +41,7 @@
#include <bspopts.h>
#define BSP_INTERRUPT_VECTOR_MAX (32 + BSP_ARM_SHARED_PERIPHERAL_INTERRUPT_COUNT)
+#define BSP_INTERRUPT_VECTOR_COUNT \
+ (32 + BSP_ARM_SHARED_PERIPHERAL_INTERRUPT_COUNT + 1)
#endif /* LIBBSP_ARM_FVP_IRQ_H */
diff --git a/bsps/arm/gumstix/include/bsp/irq.h b/bsps/arm/gumstix/include/bsp/irq.h
index f7d0ca72d5..b69f559e74 100644
--- a/bsps/arm/gumstix/include/bsp/irq.h
+++ b/bsps/arm/gumstix/include/bsp/irq.h
@@ -21,6 +21,7 @@
#include <pxa255.h>
#define BSP_INTERRUPT_VECTOR_MAX (PRIMARY_IRQS - 1)
+#define BSP_INTERRUPT_VECTOR_COUNT PRIMARY_IRQS
#endif /* __asm__ */
diff --git a/bsps/arm/imx/include/bsp/irq.h b/bsps/arm/imx/include/bsp/irq.h
index 249b416387..26b0f348d5 100644
--- a/bsps/arm/imx/include/bsp/irq.h
+++ b/bsps/arm/imx/include/bsp/irq.h
@@ -27,6 +27,7 @@ extern "C" {
#endif /* __cplusplus */
#define BSP_INTERRUPT_VECTOR_MAX 159
+#define BSP_INTERRUPT_VECTOR_COUNT 160
#define BSP_INTERRUPT_VECTOR_INVALID (UINT32_MAX)
#ifdef __cplusplus
diff --git a/bsps/arm/imxrt/include/bsp/irq.h b/bsps/arm/imxrt/include/bsp/irq.h
index 5e7fba0d33..0732136570 100644
--- a/bsps/arm/imxrt/include/bsp/irq.h
+++ b/bsps/arm/imxrt/include/bsp/irq.h
@@ -44,6 +44,7 @@ extern "C" {
#endif /* __cplusplus */
#define BSP_INTERRUPT_VECTOR_MAX 159
+#define BSP_INTERRUPT_VECTOR_COUNT 160
#define BSP_INTERRUPT_VECTOR_INVALID (UINT32_MAX)
#ifdef __cplusplus
diff --git a/bsps/arm/lm3s69xx/include/bsp/irq.h b/bsps/arm/lm3s69xx/include/bsp/irq.h
index 25df016b16..bf98b4e785 100644
--- a/bsps/arm/lm3s69xx/include/bsp/irq.h
+++ b/bsps/arm/lm3s69xx/include/bsp/irq.h
@@ -102,5 +102,6 @@
/* NOTE: for lm3s6965 - 43 */
#define BSP_INTERRUPT_VECTOR_MAX 47
+#define BSP_INTERRUPT_VECTOR_COUNT 48
#endif /* LIBBSP_ARM_LM3S69XX_IRQ_H */
diff --git a/bsps/arm/lpc176x/include/bsp/irq.h b/bsps/arm/lpc176x/include/bsp/irq.h
index 4757e19a62..f108d90366 100644
--- a/bsps/arm/lpc176x/include/bsp/irq.h
+++ b/bsps/arm/lpc176x/include/bsp/irq.h
@@ -69,6 +69,7 @@
#define LPC176X_IRQ_EEPROM 40U
#define BSP_INTERRUPT_VECTOR_MAX 40
+#define BSP_INTERRUPT_VECTOR_COUNT 41
#define LPC176X_IRQ_PRIORITY_VALUE_MIN 0U
diff --git a/bsps/arm/lpc24xx/include/bsp/irq.h b/bsps/arm/lpc24xx/include/bsp/irq.h
index 7bbbf44f49..92afe7d904 100644
--- a/bsps/arm/lpc24xx/include/bsp/irq.h
+++ b/bsps/arm/lpc24xx/include/bsp/irq.h
@@ -70,6 +70,7 @@
#define LPC24XX_IRQ_I2S 31
#define BSP_INTERRUPT_VECTOR_MAX 31
+ #define BSP_INTERRUPT_VECTOR_COUNT 32
#else
#define LPC24XX_IRQ_WDT 0
#define LPC24XX_IRQ_TIMER_0 1
@@ -113,6 +114,7 @@
#define LPC24XX_IRQ_EEPROM 40
#define BSP_INTERRUPT_VECTOR_MAX 40
+ #define BSP_INTERRUPT_VECTOR_COUNT 41
#endif
#define LPC24XX_IRQ_PRIORITY_VALUE_MIN 0
diff --git a/bsps/arm/lpc32xx/include/bsp/irq.h b/bsps/arm/lpc32xx/include/bsp/irq.h
index 1b1ff8db78..d6f7e3144e 100644
--- a/bsps/arm/lpc32xx/include/bsp/irq.h
+++ b/bsps/arm/lpc32xx/include/bsp/irq.h
@@ -140,6 +140,7 @@ extern "C" {
#define LPC32XX_IRQ_PRIORITY_LOWEST LPC32XX_IRQ_PRIORITY_VALUE_MAX
#define BSP_INTERRUPT_VECTOR_MAX LPC32XX_IRQ_SYSCLK
+#define BSP_INTERRUPT_VECTOR_COUNT (LPC32XX_IRQ_SYSCLK + 1)
#define LPC32XX_IRQ_COUNT (BSP_INTERRUPT_VECTOR_MAX + 1)
diff --git a/bsps/arm/raspberrypi/include/bsp/irq.h b/bsps/arm/raspberrypi/include/bsp/irq.h
index 87b6da2963..889d76341c 100644
--- a/bsps/arm/raspberrypi/include/bsp/irq.h
+++ b/bsps/arm/raspberrypi/include/bsp/irq.h
@@ -34,6 +34,7 @@
*/
#define BCM2835_INTC_TOTAL_IRQ 64 + 8
+#define BCM2835_INTC_TOTAL_IRQ (64 + 8)
#define BCM2835_IRQ_SET1_MIN 0
#define BCM2835_IRQ_SET2_MIN 32
@@ -70,6 +71,7 @@
#define BCM2835_IRQ_ID_ILL_ACCESS_0 71
#define BSP_INTERRUPT_VECTOR_MAX (BCM2835_INTC_TOTAL_IRQ - 1)
+#define BSP_INTERRUPT_VECTOR_COUNT BCM2835_INTC_TOTAL_IRQ
#define BSP_INTERRUPT_VECTOR_INVALID (UINT32_MAX)
#define BSP_IRQ_COUNT (BCM2835_INTC_TOTAL_IRQ)
diff --git a/bsps/arm/realview-pbx-a9/include/bsp/irq.h b/bsps/arm/realview-pbx-a9/include/bsp/irq.h
index 1d7a6b68c8..8226e162d8 100644
--- a/bsps/arm/realview-pbx-a9/include/bsp/irq.h
+++ b/bsps/arm/realview-pbx-a9/include/bsp/irq.h
@@ -91,6 +91,7 @@ extern "C" {
#define RVPBXA9_IRQ_P_NINT_7 89
#define BSP_INTERRUPT_VECTOR_MAX 89
+#define BSP_INTERRUPT_VECTOR_COUNT 90
#ifdef __cplusplus
}
diff --git a/bsps/arm/rtl22xx/include/bsp/irq.h b/bsps/arm/rtl22xx/include/bsp/irq.h
index ee7f603cf9..7b7a7c73a7 100644
--- a/bsps/arm/rtl22xx/include/bsp/irq.h
+++ b/bsps/arm/rtl22xx/include/bsp/irq.h
@@ -54,6 +54,7 @@
#define BSP_MAX_INT 28
#define BSP_INTERRUPT_VECTOR_MAX (BSP_MAX_INT - 1)
+#define BSP_INTERRUPT_VECTOR_COUNT BSP_MAX_INT
#define UNDEFINED_INSTRUCTION_VECTOR_ADDR (*(u_long *)0x00000004L)
#define SOFTWARE_INTERRUPT_VECTOR_ADDR (*(u_long *)0x00000008L)
diff --git a/bsps/arm/smdk2410/include/bsp/irq.h b/bsps/arm/smdk2410/include/bsp/irq.h
index ca846920ff..08a3e9162c 100644
--- a/bsps/arm/smdk2410/include/bsp/irq.h
+++ b/bsps/arm/smdk2410/include/bsp/irq.h
@@ -91,6 +91,7 @@
#endif
#define BSP_INTERRUPT_VECTOR_MAX (BSP_MAX_INT - 1)
+#define BSP_INTERRUPT_VECTOR_COUNT BSP_MAX_INT
#endif /* _IRQ_H_ */
/* end of include file */
diff --git a/bsps/arm/stm32f4/include/bsp/irq.h b/bsps/arm/stm32f4/include/bsp/irq.h
index 3c047d3da7..7ca6eee7c1 100644
--- a/bsps/arm/stm32f4/include/bsp/irq.h
+++ b/bsps/arm/stm32f4/include/bsp/irq.h
@@ -134,6 +134,7 @@ extern "C" {
#define STM32F4_IRQ_PRIORITY_LOWEST STM32F4_IRQ_PRIORITY_VALUE_MAX
#define BSP_INTERRUPT_VECTOR_MAX 81
+#define BSP_INTERRUPT_VECTOR_COUNT 82
/** @} */
diff --git a/bsps/arm/stm32h7/include/bsp/irq.h b/bsps/arm/stm32h7/include/bsp/irq.h
index 609c1a2ac2..a06e052393 100644
--- a/bsps/arm/stm32h7/include/bsp/irq.h
+++ b/bsps/arm/stm32h7/include/bsp/irq.h
@@ -37,5 +37,6 @@
#endif /* ASM */
#define BSP_INTERRUPT_VECTOR_MAX 239
+#define BSP_INTERRUPT_VECTOR_COUNT 240
#endif /* LIBBSP_ARM_STM32H7_IRQ_H */
diff --git a/bsps/arm/tms570/include/bsp/irq.h b/bsps/arm/tms570/include/bsp/irq.h
index 2f412604bb..10ab11630f 100644
--- a/bsps/arm/tms570/include/bsp/irq.h
+++ b/bsps/arm/tms570/include/bsp/irq.h
@@ -113,6 +113,7 @@
#define TMS570_IRQ_HWAG1_INT_REQ_L 88
#define TMS570_IRQ_HWAG2_INT_REQ_L 89
#define BSP_INTERRUPT_VECTOR_MAX 94
+#define BSP_INTERRUPT_VECTOR_COUNT 95
#define TMS570_IRQ_PRIORITY_VALUE_MIN 0U
#define TMS570_IRQ_PRIORITY_VALUE_MAX 0U
diff --git a/bsps/arm/xen/include/bsp/irq.h b/bsps/arm/xen/include/bsp/irq.h
index a29917d31b..264095e052 100644
--- a/bsps/arm/xen/include/bsp/irq.h
+++ b/bsps/arm/xen/include/bsp/irq.h
@@ -41,6 +41,7 @@ extern "C" {
#endif /* __cplusplus */
#define BSP_INTERRUPT_VECTOR_MAX 1023
+#define BSP_INTERRUPT_VECTOR_COUNT 1024
/* Xen guest interrupts */
#define GUEST_TIMER_VIRT_PPI 27
diff --git a/bsps/arm/xilinx-zynq/include/bsp/irq.h b/bsps/arm/xilinx-zynq/include/bsp/irq.h
index 099edcd034..f2c57eb1dd 100644
--- a/bsps/arm/xilinx-zynq/include/bsp/irq.h
+++ b/bsps/arm/xilinx-zynq/include/bsp/irq.h
@@ -115,6 +115,7 @@ extern "C" {
#define ZYNQ_IRQ_PARITY 92
#define BSP_INTERRUPT_VECTOR_MAX 92
+#define BSP_INTERRUPT_VECTOR_COUNT 93
/** @} */
diff --git a/bsps/arm/xilinx-zynqmp/include/bsp/irq.h b/bsps/arm/xilinx-zynqmp/include/bsp/irq.h
index 7ad1a01d90..a4d676b9ed 100644
--- a/bsps/arm/xilinx-zynqmp/include/bsp/irq.h
+++ b/bsps/arm/xilinx-zynqmp/include/bsp/irq.h
@@ -68,6 +68,7 @@ extern "C" {
#define ZYNQMP_IRQ_UART_1 54
#define BSP_INTERRUPT_VECTOR_MAX 187
+#define BSP_INTERRUPT_VECTOR_COUNT 188
/** @} */