source: rtems/c/src/lib/libbsp/arm/raspberrypi/include/irq.h @ d216c5d6

5
Last change on this file since d216c5d6 was d216c5d6, checked in by Pavel Pisa <pisa@…>, on Jul 23, 2016 at 10:10:34 AM

arm/raspberrypi: change interrupt dispatch and enable to generic vector id based approach.

Using conditional branches to find bits is extremely inefficient
and for asynchronous delivery of different interrupt sources
lead to total confusion of branch prediction unit.

  • Property mode set to 100644
File size: 1.7 KB
Line 
1/**
2 * @file
3 *
4 * @ingroup raspberrypi_interrupt
5 *
6 * @brief Interrupt definitions.
7 */
8
9/**
10 * Copyright (c) 2013 Alan Cudmore
11 *
12 *  The license and distribution terms for this file may be
13 *  found in the file LICENSE in this distribution or at
14 *
15 *  http://www.rtems.org/license/LICENSE
16 *
17 */
18
19#ifndef LIBBSP_ARM_RASBPERRYPI_IRQ_H
20#define LIBBSP_ARM_RASPBERRYPI_IRQ_H
21
22#ifndef ASM
23
24#include <rtems.h>
25#include <rtems/irq.h>
26#include <rtems/irq-extension.h>
27
28/**
29 * @defgroup raspberrypi_interrupt Interrrupt Support
30 *
31 * @ingroup arm_raspberrypi
32 *
33 * @brief Interrupt support.
34 */
35
36#define BCM2835_INTC_TOTAL_IRQ       64 + 8
37
38
39#define BCM2835_IRQ_ID_USB           9
40#define BCM2835_IRQ_ID_AUX           29
41#define BCM2835_IRQ_ID_SPI_SLAVE     43
42#define BCM2835_IRQ_ID_PWA0          45
43#define BCM2835_IRQ_ID_PWA1          46
44#define BCM2835_IRQ_ID_SMI           48
45#define BCM2835_IRQ_ID_GPIO_0        49
46#define BCM2835_IRQ_ID_GPIO_1        50
47#define BCM2835_IRQ_ID_GPIO_2        51
48#define BCM2835_IRQ_ID_GPIO_3        52
49#define BCM2835_IRQ_ID_I2C           53
50#define BCM2835_IRQ_ID_SPI           54
51#define BCM2835_IRQ_ID_PCM           55
52#define BCM2835_IRQ_ID_UART          57
53
54
55#define BCM2835_IRQ_ID_BASIC_BASE_ID 64
56#define BCM2835_IRQ_ID_TIMER_0       64
57#define BCM2835_IRQ_ID_MAILBOX_0     65
58#define BCM2835_IRQ_ID_DOORBELL_0    66
59#define BCM2835_IRQ_ID_DOORBELL_1    67
60#define BCM2835_IRQ_ID_GPU0_HALTED   68
61#define BCM2835_IRQ_ID_GPU1_HALTED   69
62#define BCM2835_IRQ_ID_ILL_ACCESS_1  70
63#define BCM2835_IRQ_ID_ILL_ACCESS_0  71
64
65#define BSP_INTERRUPT_VECTOR_MIN    (0)
66#define BSP_INTERRUPT_VECTOR_MAX    (BCM2835_INTC_TOTAL_IRQ - 1)
67
68#define BSP_IRQ_COUNT               (BCM2835_INTC_TOTAL_IRQ)
69
70#endif /* ASM */
71#endif /* LIBBSP_ARM_RASPBERRYPI_IRQ_H */
Note: See TracBrowser for help on using the repository browser.