source: rtems/c/src/lib/libbsp/powerpc/mvme5500/irq/irq.h @ b047186

Last change on this file since b047186 was b047186, checked in by Joel Sherrill <joel.sherrill@…>, on 09/14/07 at 15:43:37

2007-09-14 Kate Feng <feng1@…>

  • Makefile.am, README, README.booting, README.irq, preinstall.am, GT64260/MVME5500I2C.c, include/bsp.h, irq/irq.c, irq/irq.h, irq/irq_init.c, pci/pci.c, pci/pci_interface.c, pci/pcifinddevice.c, start/preload.S, startup/bspclean.c, startup/bspstart.c, startup/pgtbl_activate.c, startup/reboot.c: Merge my improvements in this BSP including a new network driver for the 1GHz NIC.
  • network/if_100MHz/GT64260eth.c, network/if_100MHz/GT64260eth.h, network/if_100MHz/GT64260ethreg.h, network/if_100MHz/Makefile.am, network/if_1GHz/Makefile.am, network/if_1GHz/POSSIBLEBUG, network/if_1GHz/if_wm.c, network/if_1GHz/if_wmreg.h, network/if_1GHz/pci_map.c, network/if_1GHz/pcireg.h: New files.
  • Property mode set to 100644
File size: 5.5 KB
Line 
1/* irq.h
2 *
3 *  This include file describe the data structure and the functions implemented
4 *  by rtems to write interrupt handlers.
5 *
6 *  CopyRight (C) 1999 valette@crf.canon.fr
7 *
8 *  This code is heavilly inspired by the public specification of STREAM V2
9 *  that can be found at :
10 *
11 *      <http://www.chorus.com/Documentation/index.html> by following
12 *  the STREAM API Specification Document link.
13 *
14 *  The license and distribution terms for this file may be
15 *  found in found in the file LICENSE in this distribution or at
16 *  http://www.rtems.com/license/LICENSE.
17 *
18 * Copyright 2004, 2005 Brookhaven National Laboratory and
19 *                 Shuchen Kate Feng <feng1@bnl.gov>
20 *
21 *    - modified shared/irq/irq.h for Mvme5500 (no ISA devices/PIC)
22 *    - Discovery GT64260 interrupt controller instead of 8259.
23 *    - Added support for software IRQ priority levels.
24 *    - modified to optimize the IRQ latency and handling
25 *
26 *  $Id$
27 */
28
29#ifndef LIBBSP_POWERPC_MVME5500_IRQ_IRQ_H
30#define LIBBSP_POWERPC_MVME5500_IRQ_IRQ_H
31
32/*#define BSP_SHARED_HANDLER_SUPPORT      1*/
33#include <rtems/irq.h>
34
35#define BSP_ASM_IRQ_VECTOR_BASE 0x0
36
37#ifndef ASM
38
39#define OneTierIrqPrioTbl 1
40
41/*
42 * Symbolic IRQ names and related definitions.
43 */
44
45/* leave the ISA symbols in there, so we can reuse shared/irq.c
46 * Also, we start numbering PCI irqs at 16 because the OPENPIC
47 * driver relies on this when mapping irq number <-> vectors
48 * (OPENPIC_VEC_SOURCE in openpic.h)
49 */
50
51  /* See section 25.2 , Table 734 of GT64260 controller
52   * Main Interrupt Cause Low register
53   */
54#define BSP_MICL_IRQ_NUMBER           (32)
55#define BSP_MICL_IRQ_LOWEST_OFFSET    (0)
56#define BSP_MICL_IRQ_MAX_OFFSET       (BSP_MICL_IRQ_LOWEST_OFFSET + BSP_MICL_IRQ_NUMBER -1)
57  /*
58   * Main Interrupt Cause High register
59   */
60#define BSP_MICH_IRQ_NUMBER           (32)
61#define BSP_MICH_IRQ_LOWEST_OFFSET    (BSP_MICL_IRQ_MAX_OFFSET+1)
62#define BSP_MICH_IRQ_MAX_OFFSET       (BSP_MICH_IRQ_LOWEST_OFFSET + BSP_MICH_IRQ_NUMBER -1)
63 /* External GPP Interrupt assignements
64  */
65#define BSP_GPP_IRQ_NUMBER              (32)
66#define BSP_GPP_IRQ_LOWEST_OFFSET       (BSP_MICH_IRQ_MAX_OFFSET+1)
67#define BSP_GPP_IRQ_MAX_OFFSET          (BSP_GPP_IRQ_LOWEST_OFFSET + BSP_GPP_IRQ_NUMBER - 1)
68
69 /*
70  * PowerPc exceptions handled as interrupt where a rtems managed interrupt
71  * handler might be connected
72  */
73#define BSP_PROCESSOR_IRQ_NUMBER         (1)
74#define BSP_PROCESSOR_IRQ_LOWEST_OFFSET (BSP_GPP_IRQ_MAX_OFFSET + 1)
75#define BSP_PROCESSOR_IRQ_MAX_OFFSET    (BSP_PROCESSOR_IRQ_LOWEST_OFFSET + BSP_PROCESSOR_IRQ_NUMBER - 1)
76
77  /* allow a couple of vectors for VME and counter/timer irq sources etc.
78   * This is probably not needed any more.
79   */
80#define BSP_MISC_IRQ_NUMBER             (30)
81#define BSP_MISC_IRQ_LOWEST_OFFSET      (BSP_PROCESSOR_IRQ_MAX_OFFSET + 1)
82#define BSP_MISC_IRQ_MAX_OFFSET (BSP_MISC_IRQ_LOWEST_OFFSET + BSP_MISC_IRQ_NUMBER - 1)
83
84  /*
85   * Summary
86   */
87#define BSP_IRQ_NUMBER                  (BSP_MISC_IRQ_MAX_OFFSET + 1)
88#define BSP_MAIN_IRQ_NUMBER             (64)
89#define BSP_PIC_IRQ_NUMBER              (96)
90#define BSP_LOWEST_OFFSET               (BSP_MICL_IRQ_LOWEST_OFFSET)
91#define BSP_MAX_OFFSET                  (BSP_MISC_IRQ_MAX_OFFSET)
92
93  /* Main CPU interrupt cause (Low) */
94#define BSP_MAIN_TIMER0_1_IRQ         (BSP_MICL_IRQ_LOWEST_OFFSET+8)
95#define BSP_MAIN_PCI0_7_0             (BSP_MICL_IRQ_LOWEST_OFFSET+12)
96#define BSP_MAIN_PCI0_15_8            (BSP_MICL_IRQ_LOWEST_OFFSET+13)
97#define BSP_MAIN_PCI0_23_16           (BSP_MICL_IRQ_LOWEST_OFFSET+14)
98#define BSP_MAIN_PCI0_31_24           (BSP_MICL_IRQ_LOWEST_OFFSET+15)
99#define BSP_MAIN_PCI1_7_0             (BSP_MICL_IRQ_LOWEST_OFFSET+16)
100#define BSP_MAIN_PCI1_15_8            (BSP_MICL_IRQ_LOWEST_OFFSET+18)
101#define BSP_MAIN_PCI1_23_16           (BSP_MICL_IRQ_LOWEST_OFFSET+19)
102#define BSP_MAIN_PCI1_31_24           (BSP_MICL_IRQ_LOWEST_OFFSET+20)
103
104
105  /* Main CPU interrupt cause (High) */
106#define BSP_MAIN_ETH0_IRQ             (BSP_MICH_IRQ_LOWEST_OFFSET)
107#define BSP_MAIN_ETH1_IRQ             (BSP_MICH_IRQ_LOWEST_OFFSET+1)
108#define BSP_MAIN_ETH2_IRQ             (BSP_MICH_IRQ_LOWEST_OFFSET+2)
109#define BSP_MAIN_GPP7_0_IRQ           (BSP_MICH_IRQ_LOWEST_OFFSET+24)
110#define BSP_MAIN_GPP15_8_IRQ          (BSP_MICH_IRQ_LOWEST_OFFSET+25)
111#define BSP_MAIN_GPP23_16_IRQ         (BSP_MICH_IRQ_LOWEST_OFFSET+26)
112#define BSP_MAIN_GPP31_24_IRQ         (BSP_MICH_IRQ_LOWEST_OFFSET+27)
113
114  /* on the MVME5500, these are the GT64260B external GPP0 interrupt */
115#define BSP_PCI_IRQ_LOWEST_OFFSET       (BSP_GPP_IRQ_LOWEST_OFFSET)
116#define BSP_UART_COM2_IRQ               (BSP_GPP_IRQ_LOWEST_OFFSET)
117#define BSP_UART_COM1_IRQ               (BSP_GPP_IRQ_LOWEST_OFFSET)
118#define BSP_GPP8_IRQ_OFFSET             (BSP_GPP_IRQ_LOWEST_OFFSET+8)
119#define BSP_GPP_PMC1_INTA               (BSP_GPP8_IRQ_OFFSET)
120#define BSP_GPP16_IRQ_OFFSET          (BSP_GPP_IRQ_LOWEST_OFFSET+16)
121#define BSP_GPP24_IRQ_OFFSET          (BSP_GPP_IRQ_LOWEST_OFFSET+24)
122#define BSP_GPP_VME_VLINT0            (BSP_GPP_IRQ_LOWEST_OFFSET+12)
123#define BSP_GPP_VME_VLINT1            (BSP_GPP_IRQ_LOWEST_OFFSET+13)
124#define BSP_GPP_VME_VLINT2            (BSP_GPP_IRQ_LOWEST_OFFSET+14)
125#define BSP_GPP_VME_VLINT3            (BSP_GPP_IRQ_LOWEST_OFFSET+15)
126#define BSP_GPP_PMC2_INTA             (BSP_GPP_IRQ_LOWEST_OFFSET+16)
127#define BSP_GPP_82544_IRQ             (BSP_GPP_IRQ_LOWEST_OFFSET+20)
128#define BSP_GPP_WDT_NMI_IRQ           (BSP_GPP_IRQ_LOWEST_OFFSET+24)
129#define BSP_GPP_WDT_EXP_IRQ           (BSP_GPP_IRQ_LOWEST_OFFSET+25)
130
131 /*
132   * Some Processor execption handled as rtems IRQ symbolic name definition
133   */
134#define BSP_DECREMENTER         (BSP_PROCESSOR_IRQ_LOWEST_OFFSET)
135
136extern void BSP_rtems_irq_mng_init(unsigned cpuId);
137
138#endif
139#endif
Note: See TracBrowser for help on using the repository browser.