source: rtems/bsps/mips/malta/include/bsp/irq.h @ cd5573c

Last change on this file since cd5573c was cd5573c, checked in by Sebastian Huber <sebastian.huber@…>, on 06/19/21 at 10:40:57

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.

  • Property mode set to 100644
File size: 5.1 KB
Line 
1/**
2 * @file
3 *
4 * @ingroup bsp_interrupt
5 *
6 * @brief Malta Interrupt Definitions
7 */
8
9/*
10 *  COPYRIGHT (c) 1989-2012.
11 *  On-Line Applications Research Corporation (OAR).
12 *
13 *  The license and distribution terms for this file may be
14 *  found in the file LICENSE in this distribution or at
15 *  http://www.rtems.org/license/LICENSE.
16 */
17
18#ifndef LIBBSP_MIPS_MALTA_IRQ_H
19#define LIBBSP_MIPS_MALTA_IRQ_H
20
21#ifndef ASM
22  #include <rtems.h>
23  #include <rtems/irq.h>
24  #include <rtems/irq-extension.h>
25  #include <rtems/score/mips.h>
26#endif
27
28/**
29 * @addtogroup bsp_interrupt
30 *
31 * @{
32 */
33
34/*
35 *  Interrupt Vector Numbers
36 *
37 *  NOTE: Numbers 0-15 directly map to levels on the IRC.
38 *        Number 16 is "1xxxx" per p. 164 of the TX3904 manual.
39 */
40#define MALTA_CPU_INT_START           MIPS_INTERRUPT_BASE+0
41#define MALTA_CPU_INT_SW0             MALTA_CPU_INT_START+0
42#define MALTA_CPU_INT_SW2             MALTA_CPU_INT_START+1
43#define MALTA_CPU_INT0                MALTA_CPU_INT_START+2
44#define MALTA_CPU_INT1                MALTA_CPU_INT_START+3
45#define MALTA_CPU_INT2                MALTA_CPU_INT_START+4
46#define MALTA_CPU_INT3                MALTA_CPU_INT_START+5
47#define MALTA_CPU_INT4                MALTA_CPU_INT_START+6
48#define MALTA_CPU_INT5                MALTA_CPU_INT_START+7
49#define MALTA_CPU_INT_LAST            MALTA_CPU_INT5
50
51#define MALTA_SB_IRQ_START            MALTA_CPU_INT_LAST+1
52#define MALTA_SB_IRQ_0                MALTA_SB_IRQ_START+0
53#define MALTA_SB_IRQ_1                MALTA_SB_IRQ_START+1
54#define MALTA_SB_IRQ_2                MALTA_SB_IRQ_START+2
55#define MALTA_SB_IRQ_3                MALTA_SB_IRQ_START+3
56#define MALTA_SB_IRQ_4                MALTA_SB_IRQ_START+4
57#define MALTA_SB_IRQ_5                MALTA_SB_IRQ_START+5
58#define MALTA_SB_IRQ_6                MALTA_SB_IRQ_START+6
59#define MALTA_SB_IRQ_7                MALTA_SB_IRQ_START+7
60#define MALTA_SB_IRQ_8                MALTA_SB_IRQ_START+8
61#define MALTA_SB_IRQ_9                MALTA_SB_IRQ_START+9
62#define MALTA_SB_IRQ_10               MALTA_SB_IRQ_START+10
63#define MALTA_SB_IRQ_11               MALTA_SB_IRQ_START+11
64#define MALTA_SB_IRQ_12               MALTA_SB_IRQ_START+12
65#define MALTA_SB_IRQ_13               MALTA_SB_IRQ_START+13
66#define MALTA_SB_IRQ_14               MALTA_SB_IRQ_START+14
67#define MALTA_SB_IRQ_15               MALTA_SB_IRQ_START+15
68#define MALTA_SB_IRQ_LAST             MALTA_SB_IRQ_15
69
70#define MALTA_PCI_ADP_START           MALTA_SB_IRQ_LAST+1
71#define MALTA_PCI_ADP20               MALTA_PCI_ADP_START+0
72#define MALTA_PCI_ADP21               MALTA_PCI_ADP_START+1
73#define MALTA_PCI_ADP22               MALTA_PCI_ADP_START+2
74#define MALTA_PCI_ADP27               MALTA_PCI_ADP_START+3
75#define MALTA_PCI_ADP28               MALTA_PCI_ADP_START+4
76#define MALTA_PCI_ADP29               MALTA_PCI_ADP_START+5
77#define MALTA_PCI_ADP30               MALTA_PCI_ADP_START+6
78#define MALTA_PCI_ADP31               MALTA_PCI_ADP_START+7
79#define MALTA_PCI_ADP_LAST            MALTA_PCI_ADP31
80#
81
82#define BSP_INTERRUPT_VECTOR_MAX   MALTA_PCI_ADP_LAST
83#define BSP_INTERRUPT_VECTOR_COUNT   (MALTA_PCI_ADP_LAST + 1)
84
85/*
86 * Redefine interrupts with more descriptive names.
87 * The Generic ones above match the hardware name,
88 * where these match the device name.
89 */
90#define MALTA_INT_SOUTHBRIDGE_INTR             MALTA_CPU_INT0
91#define MALTA_INT_SOUTHBRIDGE_SMI              MALTA_CPU_INT1
92#define MALTA_INT_TTY2                         MALTA_CPU_INT2
93#define MALTA_INT_COREHI                       MALTA_CPU_INT3
94#define MALTA_INT_CORELO                       MALTA_CPU_INT4
95#define MALTA_INT_TICKER                       MALTA_CPU_INT5
96
97#define MALTA_IRQ_TIMER_SOUTH_BRIDGE           MALTA_SB_IRQ_0
98#define MALTA_IRQ_KEYBOARD_SUPERIO             MALTA_SB_IRQ_1
99#define MALTA_IRQ_RESERVED1_SOUTH_BRIDGE       MALTA_SB_IRQ_2
100#define MALTA_IRQ_TTY1                         MALTA_SB_IRQ_3
101#define MALTA_IRQ_TTY0                         MALTA_SB_IRQ_4
102#define MALTA_IRQ_NOT_USED                     MALTA_SB_IRQ_5
103#define MALTA_IRQ_FLOPPY_SUPERIO               MALTA_SB_IRQ_6
104#define MALTA_IRQ_PARALLEL_PORT_SUPERIO        MALTA_SB_IRQ_7
105#define MALTA_IRQ_REALTIME_CLOCK_SOUTH_BRIDGE  MALTA_SB_IRQ_8
106#define MALTA_IRQ_I2C_SOUTH_BRIDGE             MALTA_SB_IRQ_9
107/* PCI A, PCI B (including Ethernet) PCI slot 1..4, Ethernet */
108#define MALTA_IRQ_PCI_A_B                      MALTA_SB_IRQ_10
109/* PCI slot 1..4 (audio, USB)  */
110#define MALTA_IRQ_PCI_C_D                      MALTA_SB_IRQ_11
111#define MALTA_IRQ_MOUSE_SUPERIO                MALTA_SB_IRQ_12
112#define MALTA_IRQ_RESERVED2_SOUTH_BRIDGE       MALTA_SB_IRQ_13
113#define MALTA_IRQ_PRIMARY_IDE                  MALTA_SB_IRQ_14
114#define MALTA_IRQ_SECONDARY_IDE                MALTA_SB_IRQ_15
115#define MALTA_IRQ_SOUTH_BRIDGE    MALTA_PCI_ADP20
116#define MALTA_IRQ_ETHERNET        MALTA_IRQ_PCI_A_B
117#define MALTA_IRQ_AUDIO           MALTA_PCI_ADP22
118#define MALTA_IRQ_CORE_CARD       MALTA_PCI_ADP27
119#define MALTA_IRQ_PCI_CONNECTOR_1 MALTA_PCI_ADP28
120#define MALTA_IRQ_PCI_CONNECTOR_2 MALTA_PCI_ADP29
121#define MALTA_IRQ_PCI_CONNECTOR_3 MALTA_PCI_ADP30
122#define MALTA_IRQ_PCI_CONNECTOR_4 MALTA_PCI_ADP31
123
124#ifndef ASM
125
126#endif /* ASM */
127
128/** @} */
129
130#endif /* LIBBSP_MIPS_MALTA_IRQ_H */
Note: See TracBrowser for help on using the repository browser.