annotate packages/hal/mips/ref4955/current/include/plf_intr.h @ 3292:7f8e529b4d82 default tip

Fix FREESCALE_EDMA_NBYTES_MLOFFYES_MLOFF() so it works with negative offsets.
author vae
date Wed, 29 Apr 2015 23:31:48 +0000
parents 74dbf4c3f2e1
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
134
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
1 #ifndef CYGONCE_HAL_PLF_INTR_H
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
2 #define CYGONCE_HAL_PLF_INTR_H
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
3
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
4 //==========================================================================
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
5 //
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
6 // plf_intr.h
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
7 //
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
8 // REF4955 Interrupt and clock support
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
9 //
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
10 //==========================================================================
2729
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 210
diff changeset
11 // ####ECOSGPLCOPYRIGHTBEGIN####
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 210
diff changeset
12 // -------------------------------------------
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 210
diff changeset
13 // This file is part of eCos, the Embedded Configurable Operating System.
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 210
diff changeset
14 // Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
208
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 151
diff changeset
15 //
2729
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 210
diff changeset
16 // eCos is free software; you can redistribute it and/or modify it under
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 210
diff changeset
17 // the terms of the GNU General Public License as published by the Free
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 210
diff changeset
18 // Software Foundation; either version 2 or (at your option) any later
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 210
diff changeset
19 // version.
208
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 151
diff changeset
20 //
2729
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 210
diff changeset
21 // eCos is distributed in the hope that it will be useful, but WITHOUT
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 210
diff changeset
22 // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 210
diff changeset
23 // FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 210
diff changeset
24 // for more details.
208
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 151
diff changeset
25 //
2729
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 210
diff changeset
26 // You should have received a copy of the GNU General Public License
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 210
diff changeset
27 // along with eCos; if not, write to the Free Software Foundation, Inc.,
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 210
diff changeset
28 // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
208
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 151
diff changeset
29 //
2729
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 210
diff changeset
30 // As a special exception, if other files instantiate templates or use
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 210
diff changeset
31 // macros or inline functions from this file, or you compile this file
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 210
diff changeset
32 // and link it with other works to produce a work based on this file,
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 210
diff changeset
33 // this file does not by itself cause the resulting work to be covered by
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 210
diff changeset
34 // the GNU General Public License. However the source code for this file
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 210
diff changeset
35 // must still be made available in accordance with section (3) of the GNU
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 210
diff changeset
36 // General Public License v2.
208
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 151
diff changeset
37 //
2729
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 210
diff changeset
38 // This exception does not invalidate any other reasons why a work based
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 210
diff changeset
39 // on this file might be covered by the GNU General Public License.
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 210
diff changeset
40 // -------------------------------------------
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 210
diff changeset
41 // ####ECOSGPLCOPYRIGHTEND####
134
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
42 //==========================================================================
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
43 //#####DESCRIPTIONBEGIN####
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
44 //
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
45 // Author(s): jskov
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
46 // Contributors: jskov, nickg
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
47 // Date: 2000-05-09
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
48 // Purpose: Define Interrupt support
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
49 // Description: The macros defined here provide the HAL APIs for handling
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
50 // interrupts and the clock for the REF4955 board.
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
51 //
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
52 // Usage:
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
53 // #include <cyg/hal/plf_intr.h>
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
54 // ...
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
55 //
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
56 //
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
57 //####DESCRIPTIONEND####
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
58 //
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
59 //==========================================================================
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
60
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
61 #include <pkgconf/hal.h>
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
62
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
63 #include <cyg/infra/cyg_type.h>
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
64
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
65 //--------------------------------------------------------------------------
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
66 // Interrupt vectors.
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
67
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
68 #ifndef CYGHWR_HAL_INTERRUPT_VECTORS_DEFINED
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
69
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
70
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
71 // The first 6 correspond to the interrupt lines in the status/cause regs
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
72 #define CYGNUM_HAL_INTERRUPT_V320USC_INT0 0
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
73 #define CYGNUM_HAL_INTERRUPT_V320USC_INT1 1
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
74 #define CYGNUM_HAL_INTERRUPT_EXT 2
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
75 #define CYGNUM_HAL_INTERRUPT_LAN 3
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
76 #define CYGNUM_HAL_INTERRUPT_IO 4
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
77 #define CYGNUM_HAL_INTERRUPT_COMPARE 5
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
78
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
79
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
80 #if defined(CYGIMP_HAL_COMMON_INTERRUPTS_CHAIN)
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
81
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
82 // This overlaps with LB_MBI below but it doesn't matter. It's only used
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
83 // by the HAL to access the special chaining entry in the ISR tables.
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
84 // All other attempted access to the ISR table will be redirected to this
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
85 // entry (curtsey of HAL_TRANSLATE_VECTOR). The other vector definitions
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
86 // are still valid, but only for enable/disable/config etc. (i.e., in
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
87 // chaining mode they have associated entries in the ISR tables).
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
88 #define CYGNUM_HAL_INTERRUPT_CHAINING 6
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
89
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
90 #define HAL_TRANSLATE_VECTOR(_vector_,_index_) \
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
91 (_index_) = CYGNUM_HAL_INTERRUPT_CHAINING
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
92
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
93 #endif
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
94
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
95
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
96 // The next 32 correspond to the interrupt lines in the V320USC's interrupt
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
97 // controller. These are decoded from the controller when an interrupt
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
98 // enters via CYGNUM_HAL_INTERRUPT_V320USC_INT0.
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
99 #define CYGNUM_HAL_INTERRUPT_INTC_V320USC_base 6
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
100 #define CYGNUM_HAL_INTERRUPT_LB_MBI 6
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
101 #define CYGNUM_HAL_INTERRUPT_PCI_MBI 7
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
102 #define CYGNUM_HAL_INTERRUPT_RESERVED_2 8
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
103 #define CYGNUM_HAL_INTERRUPT_I2O_OP_NE 9
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
104 #define CYGNUM_HAL_INTERRUPT_I2O_IF_NF 10
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
105 #define CYGNUM_HAL_INTERRUPT_I2O_IP_NE 11
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
106 #define CYGNUM_HAL_INTERRUPT_I2O_OP_NF 12
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
107 #define CYGNUM_HAL_INTERRUPT_I2O_OF_NE 13
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
108 #define CYGNUM_HAL_INTERRUPT_RESERVED_8 14
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
109 #define CYGNUM_HAL_INTERRUPT_RESERVED_9 15
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
110 #define CYGNUM_HAL_INTERRUPT_RESERVED_10 16
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
111 #define CYGNUM_HAL_INTERRUPT_RESERVED_11 17
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
112 #define CYGNUM_HAL_INTERRUPT_TIMER0 18
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
113 #define CYGNUM_HAL_INTERRUPT_TIMER1 19
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
114 #define CYGNUM_HAL_INTERRUPT_RESERVED_14 20
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
115 #define CYGNUM_HAL_INTERRUPT_ENUM 21
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
116 #define CYGNUM_HAL_INTERRUPT_DMA0 22
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
117 #define CYGNUM_HAL_INTERRUPT_DMA1 23
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
118 #define CYGNUM_HAL_INTERRUPT_RESERVED_18 24
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
119 #define CYGNUM_HAL_INTERRUPT_RESERVED_19 25
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
120 #define CYGNUM_HAL_INTERRUPT_PWR_STATE 26
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
121 #define CYGNUM_HAL_INTERRUPT_HBI 27
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
122 #define CYGNUM_HAL_INTERRUPT_WDI 28
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
123 #define CYGNUM_HAL_INTERRUPT_BWI 29
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
124 #define CYGNUM_HAL_INTERRUPT_PSLAVE_PI 30
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
125 #define CYGNUM_HAL_INTERRUPT_PMASTER_PI 31
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
126 #define CYGNUM_HAL_INTERRUPT_PCI_T_ABORT 32
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
127 #define CYGNUM_HAL_INTERRUPT_PCI_M_ABORT 33
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
128 #define CYGNUM_HAL_INTERRUPT_DRAM_PI 34
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
129 #define CYGNUM_HAL_INTERRUPT_RESERVED_29 35
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
130 #define CYGNUM_HAL_INTERRUPT_DI0 36
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
131 #define CYGNUM_HAL_INTERRUPT_DI1 37
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
132
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
133 // The next 6 correspond to the interrupt lines specific to the PCI
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
134 // connector (decoded from CYGNUM_HAL_INTERRUPT_V320USC_INT1)
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
135 #define CYGNUM_HAL_INTERRUPT_INTC_PCI_base 38
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
136 #define CYGNUM_HAL_INTERRUPT_SERR 38
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
137 #define CYGNUM_HAL_INTERRUPT_PERR 39
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
138 #define CYGNUM_HAL_INTERRUPT_INTD 40
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
139 #define CYGNUM_HAL_INTERRUPT_INTC 41
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
140 #define CYGNUM_HAL_INTERRUPT_INTB 42
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
141 #define CYGNUM_HAL_INTERRUPT_INTA 43
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
142
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
143 // The next 5 correspond to the interrupt lines specific to the REF4955
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
144 // board (decoded from CYGNUM_HAL_INTERRUPT_IO)
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
145 #define CYGNUM_HAL_INTERRUPT_INTC_IO_base 44
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
146 #define CYGNUM_HAL_INTERRUPT_SOFTWARE 44
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
147 #define CYGNUM_HAL_INTERRUPT_INT_SWITCH 45
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
148 #define CYGNUM_HAL_INTERRUPT_PARALLEL 46
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
149 #define CYGNUM_HAL_INTERRUPT_DEBUG_UART 47
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
150 #define CYGNUM_HAL_INTERRUPT_USER_UART 48
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
151
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
152
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
153 // Min/Max ISR numbers and how many there are
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
154 #define CYGNUM_HAL_ISR_MIN CYGNUM_HAL_INTERRUPT_V320USC_INT0
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
155 #define CYGNUM_HAL_ISR_MAX CYGNUM_HAL_INTERRUPT_USER_UART
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
156 #define CYGNUM_HAL_ISR_COUNT (CYGNUM_HAL_ISR_MAX - CYGNUM_HAL_ISR_MIN + 1)
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
157
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
158 // The vector used by the Real time clock
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
159 #define CYGNUM_HAL_INTERRUPT_RTC CYGNUM_HAL_INTERRUPT_COMPARE
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
160
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
161 #define CYGHWR_HAL_INTERRUPT_VECTORS_DEFINED
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
162
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
163 #endif
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
164
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
165 //--------------------------------------------------------------------------
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
166 // Interrupt controler information
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
167
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
168 // V320USC
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
169 #define CYGARC_REG_INT_STAT 0xb80000ec
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
170
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
171 #define CYGARC_REG_INT_CFG0 0xb80000e0
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
172 #define CYGARC_REG_INT_CFG1 0xb80000e4
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
173 #define CYGARC_REG_INT_CFG2 0xb80000e8
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
174 #define CYGARC_REG_INT_CFG3 0xb8000158
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
175
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
176 #define CYGARC_REG_INT_CFG_INT0 0x00000100
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
177 #define CYGARC_REG_INT_CFG_INT1 0x00000200
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
178 #define CYGARC_REG_INT_CFG_INT2 0x00000400
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
179 #define CYGARC_REG_INT_CFG_INT3 0x00000800
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
180
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
181
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
182 // FPGA
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
183 #define CYGARC_REG_PCI_STAT 0xb5300000
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
184 #define CYGARC_REG_PCI_MASK 0xb5300030
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
185
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
186 #define CYGARC_REG_IO_STAT 0xb5300010
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
187 #define CYGARC_REG_IO_MASK 0xb5300040
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
188
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
189
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
190 #define HAL_INTERRUPT_MASK( _vector_ ) \
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
191 CYG_MACRO_START \
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
192 if( (_vector_) <= CYGNUM_HAL_INTERRUPT_COMPARE ) \
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
193 { \
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
194 asm volatile ( \
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
195 "mfc0 $3,$12\n" \
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
196 "la $2,0x00000400\n" \
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
197 "sllv $2,$2,%0\n" \
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
198 "nor $2,$2,$0\n" \
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
199 "and $3,$3,$2\n" \
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
200 "mtc0 $3,$12\n" \
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
201 "nop; nop; nop\n" \
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
202 : \
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
203 : "r"(_vector_) \
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
204 : "$2", "$3" \
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
205 ); \
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
206 } \
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
207 else if ((_vector_) >= CYGNUM_HAL_INTERRUPT_INTC_IO_base) \
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
208 { \
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
209 cyg_uint8 _mask_; \
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
210 cyg_uint32 _shift_ = (_vector_)-CYGNUM_HAL_INTERRUPT_INTC_IO_base; \
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
211 HAL_READ_UINT8(CYGARC_REG_IO_MASK, _mask_ ); \
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
212 _mask_ &= ~(1<<_shift_); \
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
213 HAL_WRITE_UINT8(CYGARC_REG_IO_MASK, _mask_ ); \
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
214 } \
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
215 else if (_vector_ >= CYGNUM_HAL_INTERRUPT_INTC_PCI_base) \
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
216 { \
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
217 cyg_uint8 _mask_; \
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
218 cyg_uint32 _shift_ = (_vector_)-CYGNUM_HAL_INTERRUPT_INTC_PCI_base; \
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
219 HAL_READ_UINT8(CYGARC_REG_PCI_MASK, _mask_ ); \
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
220 _mask_ &= ~(1<<_shift_); \
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
221 HAL_WRITE_UINT8(CYGARC_REG_PCI_MASK, _mask_ ); \
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
222 } else { /* V320USC */ \
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
223 cyg_uint32 _mask_; \
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
224 cyg_uint32 _shift_ = \
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
225 (_vector_)-CYGNUM_HAL_INTERRUPT_INTC_V320USC_base; \
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
226 HAL_READ_UINT32(CYGARC_REG_INT_CFG0, _mask_ ); \
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
227 _mask_ &= !(1<<_shift_); \
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
228 HAL_WRITE_UINT32(CYGARC_REG_INT_CFG0, _mask_ ); \
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
229 } \
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
230 CYG_MACRO_END
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
231
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
232 #define HAL_INTERRUPT_UNMASK( _vector_ ) \
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
233 CYG_MACRO_START \
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
234 if( (_vector_) <= CYGNUM_HAL_INTERRUPT_COMPARE ) \
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
235 { \
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
236 asm volatile ( \
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
237 "mfc0 $3,$12\n" \
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
238 "la $2,0x00000400\n" \
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
239 "sllv $2,$2,%0\n" \
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
240 "or $3,$3,$2\n" \
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
241 "mtc0 $3,$12\n" \
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
242 "nop; nop; nop\n" \
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
243 : \
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
244 : "r"(_vector_) \
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
245 : "$2", "$3" \
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
246 ); \
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
247 } \
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
248 else if ((_vector_) >= CYGNUM_HAL_INTERRUPT_INTC_IO_base) \
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
249 { \
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
250 cyg_uint8 _mask_; \
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
251 cyg_uint32 _shift_ = (_vector_)-CYGNUM_HAL_INTERRUPT_INTC_IO_base; \
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
252 HAL_READ_UINT8(CYGARC_REG_IO_MASK, _mask_ ); \
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
253 _mask_ |= (1<<_shift_); \
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
254 HAL_WRITE_UINT8(CYGARC_REG_IO_MASK, _mask_ ); \
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
255 } \
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
256 else if (_vector_ >= CYGNUM_HAL_INTERRUPT_INTC_PCI_base) \
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
257 { \
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
258 cyg_uint8 _mask_; \
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
259 cyg_uint32 _shift_ = (_vector_)-CYGNUM_HAL_INTERRUPT_INTC_PCI_base; \
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
260 HAL_READ_UINT8(CYGARC_REG_PCI_MASK, _mask_ ); \
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
261 _mask_ |= (1<<_shift_); \
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
262 HAL_WRITE_UINT8(CYGARC_REG_PCI_MASK, _mask_ ); \
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
263 } else { /* V320USC */ \
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
264 cyg_uint32 _mask_; \
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
265 cyg_uint32 _shift_ = \
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
266 (_vector_)-CYGNUM_HAL_INTERRUPT_INTC_V320USC_base; \
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
267 HAL_READ_UINT32(CYGARC_REG_INT_CFG0, _mask_ ); \
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
268 _mask_ |= (1<<_shift_); \
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
269 HAL_WRITE_UINT32(CYGARC_REG_INT_CFG0, _mask_ ); \
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
270 } \
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
271 CYG_MACRO_END
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
272
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
273 #define HAL_INTERRUPT_ACKNOWLEDGE( _vector_ ) \
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
274 CYG_MACRO_START \
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
275 cyg_uint32 _srvector_ = _vector_; \
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
276 if ((_vector_) >= CYGNUM_HAL_INTERRUPT_INTC_IO_base) { \
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
277 _srvector_ = CYGNUM_HAL_INTERRUPT_IO; \
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
278 } else if (_vector_ >= CYGNUM_HAL_INTERRUPT_INTC_PCI_base) { \
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
279 _srvector_ = CYGNUM_HAL_INTERRUPT_V320USC_INT1; \
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
280 } else if (_vector_ >= CYGNUM_HAL_INTERRUPT_INTC_V320USC_base) { \
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
281 cyg_uint32 _mask_; \
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
282 cyg_uint32 _shift_ = \
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
283 (_vector_)-CYGNUM_HAL_INTERRUPT_INTC_V320USC_base; \
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
284 _mask_ = (1<<_shift_); \
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
285 HAL_WRITE_UINT32(CYGARC_REG_INT_STAT, _mask_ ); \
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
286 _srvector_ = CYGNUM_HAL_INTERRUPT_V320USC_INT0; \
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
287 } \
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
288 asm volatile ( \
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
289 "mfc0 $3,$13\n" \
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
290 "la $2,0x00000400\n" \
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
291 "sllv $2,$2,%0\n" \
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
292 "nor $2,$2,$0\n" \
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
293 "and $3,$3,$2\n" \
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
294 "mtc0 $3,$13\n" \
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
295 "nop; nop; nop\n" \
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
296 : \
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
297 : "r"(_srvector_) \
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
298 : "$2", "$3" \
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
299 ); \
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
300 CYG_MACRO_END
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
301
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
302 #define HAL_INTERRUPT_CONFIGURE( _vector_, _level_, _up_ )
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
303
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
304 #define HAL_INTERRUPT_SET_LEVEL( _vector_, _level_ )
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
305
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
306 #define CYGHWR_HAL_INTERRUPT_CONTROLLER_ACCESS_DEFINED
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
307
151
25e238959bae Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents: 134
diff changeset
308
25e238959bae Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents: 134
diff changeset
309 //----------------------------------------------------------------------------
25e238959bae Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents: 134
diff changeset
310 // Reset.
25e238959bae Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents: 134
diff changeset
311 #define CYGARC_REG_BOARD_RESET 0xb5400000
25e238959bae Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents: 134
diff changeset
312
25e238959bae Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents: 134
diff changeset
313 #define HAL_PLATFORM_RESET() HAL_WRITE_UINT8(CYGARC_REG_BOARD_RESET,0)
25e238959bae Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents: 134
diff changeset
314
25e238959bae Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents: 134
diff changeset
315 #define HAL_PLATFORM_RESET_ENTRY 0xbfc00000
25e238959bae Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents: 134
diff changeset
316
134
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
317 //--------------------------------------------------------------------------
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
318 #endif // ifndef CYGONCE_HAL_PLF_INTR_H
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
319 // End of plf_intr.h