Mercurial > ecos
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 |
| 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 |
