source: rtems/c/src/lib/libbsp/powerpc/virtex/include/opbintctrl.h @ 862c2317

4.104.114.84.95
Last change on this file since 862c2317 was 862c2317, checked in by Thomas Doerfler <Thomas.Doerfler@…>, on 07/04/07 at 12:37:36

added virtex BSP support and some missing files for common PPC
exception handling

  • Property mode set to 100644
File size: 2.2 KB
Line 
1/*  opbintctrl.h
2 *
3 *  This file contains definitions and declarations for the
4 *  Xilinx Off Processor Bus (OPB) Interrupt Controller
5 *
6 *  Author: Keith Robertson <kjrobert@alumni.uwaterloo.ca>
7 *  COPYRIGHT (c) 2005 by Linn Products Ltd, Scotland
8 *
9 *  The license and distribution terms for this file may be
10 *  found in the file LICENSE in this distribution or at
11 *  http://www.rtems.com/license/LICENSE.
12 */
13
14#ifndef _INCLUDE_OPBINTCTRL_H
15#define _INCLUDE_OPBINTCTRL_H
16
17#include <rtems.h>
18#include <rtems/system.h>
19#include <rtems/score/isr.h>
20#include <rtems/irq.h>
21#include <bspopts.h>
22#include RTEMS_XPARAMETERS_H
23
24#define USE_GREG_INTERRUPTS
25
26#ifdef __cplusplus
27extern "C" {
28#endif
29
30
31/* extern XIntc InterruptController;
32 */
33
34
35/* Maximum number of IRQs.  Defined in vhdl model */
36#define OPB_INTC_IRQ_MAX          XPAR_INTC_MAX_NUM_INTR_INPUTS
37
38/* Width of INTC registers.  Defined in vhdl model */
39#define OPB_INTC_REGISTER_WIDTH   32
40
41/* Base Register address and register offsets.  Defined in vhdl model  */
42#define OPB_INTC_BASE             XPAR_INTC_BASEADDR
43
44
45
46
47
48/* Interrupt Status Register */
49#define OPB_INTC_ISR            0x0
50/* Interrupt Pending Register (ISR && IER) */
51#define OPB_INTC_IPR            0x4
52/* Interrupt Enable Register */
53#define OPB_INTC_IER            0x8
54/* Interrupt Acknowledge Register */
55#define OPB_INTC_IAR            0xC
56/* Set Interrupt Enable (same as read/mask/write to IER) */
57#define OPB_INTC_SIE            0x10
58/* Clear Interrupt Enable (same as read/mask/write to IER) */
59#define OPB_INTC_CIE            0x14
60/* Interrupt Vector Address (highest priority vector number from IPR) */
61#define OPB_INTC_IVR            0x18
62/* Master Enable Register */
63#define OPB_INTC_MER            0x1C
64
65/* Master Enable Register: Hardware Interrupt Enable */
66#define OPB_INTC_MER_HIE        0x2
67
68/* Master Enable Register: Master IRQ Enable */
69#define OPB_INTC_MER_ME         0x1
70
71  /*
72   * make this fast: is this a opbintc interrupt?
73   */
74  void BSP_irq_enable_at_opbintc (rtems_irq_number irqnum);
75
76  void BSP_irq_disable_at_opbintc (rtems_irq_number irqnum);
77  /*
78   *  IRQ Handler: this is called from the primary exception dispatcher
79   */
80  void BSP_irq_handle_at_opbintc(void);
81  /*
82   * activate the interrupt controller
83   */
84  rtems_status_code opb_intc_init(void);
85 
86#ifdef __cplusplus
87}
88#endif
89
90#endif /*  _INCLUDE_OPBINTCTRL_H */
Note: See TracBrowser for help on using the repository browser.