annotate packages/hal/mips/tx39/current/include/var_intr.h @ 3403:8c8767bb9a62 default tip

devs/nand/micron_mt29: Remove defunct references (in comments) to mt29f2g08_oob_ecc.
author Ross Younger <wry@ecoscentric.com>
date Sun, 18 Jan 2015 17:59:01 +1300
parents 74dbf4c3f2e1
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
6
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
1 #ifndef CYGONCE_HAL_IMP_INTR_H
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
2 #define CYGONCE_HAL_IMP_INTR_H
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
3
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
4 //==========================================================================
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
5 //
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
6 // imp_intr.h
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
7 //
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
8 // TX39 Interrupt and clock support
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
9 //
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
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: 99
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: 99
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: 99
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: 99
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: 99
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####
6
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
42 //==========================================================================
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
43 //#####DESCRIPTIONBEGIN####
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
44 //
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
45 // Author(s): nickg
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
46 // Contributors: nickg, jskov,
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
47 // gthomas, jlarmour
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
48 // Date: 1999-02-16
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
49 // Purpose: TX39 Interrupt support
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
50 // Description: The macros defined here provide the HAL APIs for handling
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
51 // interrupts and the clock for variants of the TX39 MIPS
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
52 // architecture.
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
53 //
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
54 // Usage:
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
55 // #include <cyg/hal/imp_intr.h>
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
56 // ...
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
57 //
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
58 //
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
59 //####DESCRIPTIONEND####
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
60 //
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
61 //==========================================================================
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
62
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
63 #include <pkgconf/hal.h>
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
64
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
65 #include <cyg/infra/cyg_type.h>
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
66
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
67 #include <cyg/hal/plf_intr.h>
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
68
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
69 //--------------------------------------------------------------------------
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
70 // Interrupt vectors.
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
71
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
72 #ifndef CYGHWR_HAL_INTERRUPT_VECTORS_DEFINED
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
73
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
74 // These are decoded via the IP bits of the cause
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
75 // register when an external interrupt is delivered.
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
76
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
77 #define CYGNUM_HAL_INTERRUPT_1 0
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
78 #define CYGNUM_HAL_INTERRUPT_2 1
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
79 #define CYGNUM_HAL_INTERRUPT_3 2
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
80 #define CYGNUM_HAL_INTERRUPT_4 3
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
81 #define CYGNUM_HAL_INTERRUPT_5 4
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
82 #define CYGNUM_HAL_INTERRUPT_6 5
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
83 #define CYGNUM_HAL_INTERRUPT_7 6
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
84 #define CYGNUM_HAL_INTERRUPT_DMAC1_CH3 7
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
85 #define CYGNUM_HAL_INTERRUPT_DMAC1_CH2 8
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
86 #define CYGNUM_HAL_INTERRUPT_DMAC0_CH1 9
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
87 #define CYGNUM_HAL_INTERRUPT_DMAC0_CH0 10
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
88 #define CYGNUM_HAL_INTERRUPT_SIO_0 11
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
89 #define CYGNUM_HAL_INTERRUPT_SIO_1 12
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
90 #define CYGNUM_HAL_INTERRUPT_TMR_0 13
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
91 #define CYGNUM_HAL_INTERRUPT_TMR_1 14
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
92 #define CYGNUM_HAL_INTERRUPT_TMR_2 15
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
93 #define CYGNUM_HAL_INTERRUPT_0 16
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
94
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
95 // Min/Max ISR numbers and how many there are
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
96 #define CYGNUM_HAL_ISR_MIN 0
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
97 #define CYGNUM_HAL_ISR_MAX 16
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
98 #define CYGNUM_HAL_ISR_COUNT 17
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
99
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
100 // The vector used by the Real time clock
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
101 #define CYGNUM_HAL_INTERRUPT_RTC CYGNUM_HAL_INTERRUPT_TMR_0
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
102
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
103 #define CYGHWR_HAL_INTERRUPT_VECTORS_DEFINED
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
104
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
105 #endif
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
106
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
107 //--------------------------------------------------------------------------
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
108 // Interrupt controller access.
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
109
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
110 #ifndef CYGHWR_HAL_INTERRUPT_CONTROLLER_ACCESS_DEFINED
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
111
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
112 #if defined(CYGPKG_HAL_MIPS_TX3904)
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
113
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
114 #define CYG_HAL_MIPS_TX3904_ILR0 0xFFFFC010
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
115 #define CYG_HAL_MIPS_TX3904_CConR 0xFFFFE000
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
116
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
117 // Array which stores the configured priority levels for the configured
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
118 // interrupts.
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
119 externC volatile CYG_BYTE hal_interrupt_level[CYGNUM_HAL_ISR_COUNT];
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
120
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
121
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
122 #define HAL_INTERRUPT_MASK( _vector_ ) \
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
123 { \
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
124 HAL_IO_REGISTER _reg_ = CYG_HAL_MIPS_TX3904_ILR0; \
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
125 CYG_WORD32 _ilr_; \
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
126 _reg_ += (_vector_)&0xC; \
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
127 HAL_READ_UINT32( _reg_, _ilr_ ); \
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
128 _ilr_ &= ~(7 << (((_vector_)&0x3)<<3)); \
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
129 HAL_WRITE_UINT32( _reg_, _ilr_ ); \
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
130 }
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
131
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
132 #define HAL_INTERRUPT_UNMASK( _vector_ ) \
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
133 { \
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
134 HAL_IO_REGISTER _reg_ = CYG_HAL_MIPS_TX3904_ILR0; \
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
135 CYG_WORD32 _ilr_; \
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
136 _reg_ += (_vector_)&0xC; \
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
137 HAL_READ_UINT32( _reg_, _ilr_ ); \
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
138 _ilr_ |= hal_interrupt_level[_vector_] << (((_vector_)&0x3)<<3); \
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
139 HAL_WRITE_UINT32( _reg_, _ilr_ ); \
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
140 }
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
141
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
142 #define HAL_INTERRUPT_ACKNOWLEDGE( _vector_ ) \
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
143 { \
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
144 if( _vector_ <= CYGNUM_HAL_INTERRUPT_7 || \
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
145 _vector_ == CYGNUM_HAL_INTERRUPT_0 ) \
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
146 { \
99
97d9d85b42c0 Merge from eCos master repository on 2000-06-07-14:25:36-BST
jlarmour
parents: 76
diff changeset
147 cyg_uint32 _v_ = _vector_ + 1; \
97d9d85b42c0 Merge from eCos master repository on 2000-06-07-14:25:36-BST
jlarmour
parents: 76
diff changeset
148 cyg_uint8 _reg_; \
97d9d85b42c0 Merge from eCos master repository on 2000-06-07-14:25:36-BST
jlarmour
parents: 76
diff changeset
149 \
97d9d85b42c0 Merge from eCos master repository on 2000-06-07-14:25:36-BST
jlarmour
parents: 76
diff changeset
150 /* adjust vector to bit offset in CConR */ \
97d9d85b42c0 Merge from eCos master repository on 2000-06-07-14:25:36-BST
jlarmour
parents: 76
diff changeset
151 if( _v_ == CYGNUM_HAL_INTERRUPT_0 + 1 ) _v_ = 0; \
97d9d85b42c0 Merge from eCos master repository on 2000-06-07-14:25:36-BST
jlarmour
parents: 76
diff changeset
152 \
97d9d85b42c0 Merge from eCos master repository on 2000-06-07-14:25:36-BST
jlarmour
parents: 76
diff changeset
153 /* get CConR */ \
97d9d85b42c0 Merge from eCos master repository on 2000-06-07-14:25:36-BST
jlarmour
parents: 76
diff changeset
154 HAL_READ_UINT8( CYG_HAL_MIPS_TX3904_CConR+1, _reg_ ); \
97d9d85b42c0 Merge from eCos master repository on 2000-06-07-14:25:36-BST
jlarmour
parents: 76
diff changeset
155 \
97d9d85b42c0 Merge from eCos master repository on 2000-06-07-14:25:36-BST
jlarmour
parents: 76
diff changeset
156 /* clear old value and set new */ \
97d9d85b42c0 Merge from eCos master repository on 2000-06-07-14:25:36-BST
jlarmour
parents: 76
diff changeset
157 _reg_ &= ~(7 << 5); \
97d9d85b42c0 Merge from eCos master repository on 2000-06-07-14:25:36-BST
jlarmour
parents: 76
diff changeset
158 _reg_ |= _v_ << 5; \
97d9d85b42c0 Merge from eCos master repository on 2000-06-07-14:25:36-BST
jlarmour
parents: 76
diff changeset
159 HAL_WRITE_UINT8( CYG_HAL_MIPS_TX3904_CConR+1, _reg_); \
6
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
160 } \
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
161 }
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
162
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
163 #define HAL_INTERRUPT_CONFIGURE( _vector_, _level_, _up_ ) \
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
164 { \
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
165 if( _vector_ <= CYGNUM_HAL_INTERRUPT_7 || \
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
166 _vector_ == CYGNUM_HAL_INTERRUPT_0 ) \
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
167 { \
99
97d9d85b42c0 Merge from eCos master repository on 2000-06-07-14:25:36-BST
jlarmour
parents: 76
diff changeset
168 cyg_uint32 _v_ = _vector_ + 1; \
6
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
169 cyg_uint32 _val_ = 0; \
99
97d9d85b42c0 Merge from eCos master repository on 2000-06-07-14:25:36-BST
jlarmour
parents: 76
diff changeset
170 cyg_uint16 _reg_; \
97d9d85b42c0 Merge from eCos master repository on 2000-06-07-14:25:36-BST
jlarmour
parents: 76
diff changeset
171 \
97d9d85b42c0 Merge from eCos master repository on 2000-06-07-14:25:36-BST
jlarmour
parents: 76
diff changeset
172 /* adjust vector to bit offset in CConR */ \
97d9d85b42c0 Merge from eCos master repository on 2000-06-07-14:25:36-BST
jlarmour
parents: 76
diff changeset
173 if( _v_ == CYGNUM_HAL_INTERRUPT_0 + 1 ) _v_ = 0; \
97d9d85b42c0 Merge from eCos master repository on 2000-06-07-14:25:36-BST
jlarmour
parents: 76
diff changeset
174 _v_ <<= 1; \
97d9d85b42c0 Merge from eCos master repository on 2000-06-07-14:25:36-BST
jlarmour
parents: 76
diff changeset
175 \
97d9d85b42c0 Merge from eCos master repository on 2000-06-07-14:25:36-BST
jlarmour
parents: 76
diff changeset
176 /* set bits according to requirements */ \
6
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
177 if( _up_ ) _val_ |= 1; \
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
178 if( !(_level_) ) _val_ |= 2; \
99
97d9d85b42c0 Merge from eCos master repository on 2000-06-07-14:25:36-BST
jlarmour
parents: 76
diff changeset
179 \
97d9d85b42c0 Merge from eCos master repository on 2000-06-07-14:25:36-BST
jlarmour
parents: 76
diff changeset
180 /* get CConR */ \
97d9d85b42c0 Merge from eCos master repository on 2000-06-07-14:25:36-BST
jlarmour
parents: 76
diff changeset
181 HAL_READ_UINT16( CYG_HAL_MIPS_TX3904_CConR+2, _reg_ ); \
97d9d85b42c0 Merge from eCos master repository on 2000-06-07-14:25:36-BST
jlarmour
parents: 76
diff changeset
182 \
97d9d85b42c0 Merge from eCos master repository on 2000-06-07-14:25:36-BST
jlarmour
parents: 76
diff changeset
183 /* clear old value and set new */ \
97d9d85b42c0 Merge from eCos master repository on 2000-06-07-14:25:36-BST
jlarmour
parents: 76
diff changeset
184 _reg_ &= ~(3 << _v_); \
97d9d85b42c0 Merge from eCos master repository on 2000-06-07-14:25:36-BST
jlarmour
parents: 76
diff changeset
185 _reg_ |= _val_ << _v_; \
97d9d85b42c0 Merge from eCos master repository on 2000-06-07-14:25:36-BST
jlarmour
parents: 76
diff changeset
186 HAL_WRITE_UINT16( CYG_HAL_MIPS_TX3904_CConR+2, _reg_ ); \
6
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
187 } \
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
188 }
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
189
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
190 #define HAL_INTERRUPT_SET_LEVEL( _vector_, _level_ ) \
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
191 { \
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
192 HAL_IO_REGISTER _reg_ = CYG_HAL_MIPS_TX3904_ILR0; \
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
193 CYG_WORD32 _ilr_; \
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
194 _reg_ += (_vector_)&0xC; \
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
195 HAL_READ_UINT32( _reg_, _ilr_ ); \
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
196 _ilr_ |= (_level_) << (((_vector_)&0x3)<<3); \
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
197 HAL_WRITE_UINT32( _reg_, _ilr_ ); \
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
198 hal_interrupt_level[_vector_] = _level_; \
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
199 }
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
200
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
201 #define CYGHWR_HAL_INTERRUPT_CONTROLLER_ACCESS_DEFINED
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
202
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
203 #else
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
204
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
205 #error Unspecified TX39 variant
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
206
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
207 #endif
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
208
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
209 #endif
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
210
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
211 //--------------------------------------------------------------------------
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
212 // Clock control
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
213
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
214 #ifndef CYGHWR_HAL_CLOCK_CONTROL_DEFINED
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
215
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
216 #if defined(CYGPKG_HAL_MIPS_TX3904)
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
217
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
218 #define CYG_HAL_MIPS_TX3904_TIMER_BASE 0xFFFFF000
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
219 #define CYG_HAL_MIPS_TX3904_TIMER_CR (CYG_HAL_MIPS_TX3904_TIMER_BASE + 0x00)
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
220 #define CYG_HAL_MIPS_TX3904_TIMER_SR (CYG_HAL_MIPS_TX3904_TIMER_BASE + 0x04)
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
221 #define CYG_HAL_MIPS_TX3904_TIMER_CPR (CYG_HAL_MIPS_TX3904_TIMER_BASE + 0x08)
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
222 #define CYG_HAL_MIPS_TX3904_TIMER_IMR (CYG_HAL_MIPS_TX3904_TIMER_BASE + 0x10)
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
223 #define CYG_HAL_MIPS_TX3904_TIMER_DR (CYG_HAL_MIPS_TX3904_TIMER_BASE + 0x20)
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
224 #define CYG_HAL_MIPS_TX3904_TIMER_RR (CYG_HAL_MIPS_TX3904_TIMER_BASE + 0xF0)
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
225
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
226 #define HAL_CLOCK_INITIALIZE( _period_ ) \
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
227 { \
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
228 HAL_WRITE_UINT32( CYG_HAL_MIPS_TX3904_TIMER_DR, 0x00000003 ); \
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
229 HAL_WRITE_UINT32( CYG_HAL_MIPS_TX3904_TIMER_CPR, _period_ ); \
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
230 HAL_WRITE_UINT32( CYG_HAL_MIPS_TX3904_TIMER_SR, 0x00000000 ); \
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
231 HAL_WRITE_UINT32( CYG_HAL_MIPS_TX3904_TIMER_IMR, 0x00008001 ); \
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
232 HAL_WRITE_UINT32( CYG_HAL_MIPS_TX3904_TIMER_CR, 0x000000C0 ); \
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
233 }
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
234
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
235 #define HAL_CLOCK_RESET( _vector_, _period_ ) \
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
236 { \
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
237 HAL_WRITE_UINT32( CYG_HAL_MIPS_TX3904_TIMER_SR, 0x00000000 ); \
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
238 }
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
239
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
240 #if defined(CYGHWR_HAL_MIPS_TX3904_TRR_REQUIRES_SYNC) && \
76
435cced73e2f eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents: 66
diff changeset
241 !defined(CYGPKG_HAL_MIPS_SIM)
6
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
242
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
243 // We need to sync and check the coprocessor 0 condition - this
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
244 // indicates whether data is present in the write buffer. We need to
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
245 // wait until the data to be written is flushed out. This works
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
246 // around a tx39 bug. gcc will insert a NOP after the asm insns.
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
247
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
248 # define HAL_CLOCK_READ( _pvalue_ ) \
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
249 CYG_MACRO_START \
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
250 asm volatile ( \
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
251 "sync; nop; 1: ; bc0f 1b" \
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
252 : \
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
253 : \
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
254 : "$0" \
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
255 ); \
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
256 HAL_READ_UINT32( CYG_HAL_MIPS_TX3904_TIMER_RR, *(_pvalue_) ); \
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
257 CYG_MACRO_END
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
258
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
259 #else
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
260
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
261 # define HAL_CLOCK_READ( _pvalue_ ) \
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
262 CYG_MACRO_START \
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
263 HAL_READ_UINT32( CYG_HAL_MIPS_TX3904_TIMER_RR, *(_pvalue_) ); \
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
264 CYG_MACRO_END
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
265
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
266 #endif
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
267
18
7253dcc42a09 Merge from eCos master repository on 1999-06-25-15:31:50-BST
jlarmour
parents: 6
diff changeset
268 #if defined(CYGVAR_KERNEL_COUNTERS_CLOCK_LATENCY) && \
7253dcc42a09 Merge from eCos master repository on 1999-06-25-15:31:50-BST
jlarmour
parents: 6
diff changeset
269 !defined(HAL_CLOCK_LATENCY)
7253dcc42a09 Merge from eCos master repository on 1999-06-25-15:31:50-BST
jlarmour
parents: 6
diff changeset
270 #define HAL_CLOCK_LATENCY( _pvalue_ ) HAL_CLOCK_READ(_pvalue_)
7253dcc42a09 Merge from eCos master repository on 1999-06-25-15:31:50-BST
jlarmour
parents: 6
diff changeset
271 #endif
7253dcc42a09 Merge from eCos master repository on 1999-06-25-15:31:50-BST
jlarmour
parents: 6
diff changeset
272
6
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
273 #define CYGHWR_HAL_CLOCK_CONTROL_DEFINED
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
274
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
275 #else
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
276
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
277 #error Unspecified TX39 variant
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
278
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
279 #endif
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
280
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
281 #endif
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
282
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
283 //--------------------------------------------------------------------------
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
284 // Timeout exception support. This is TX39 specific.
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
285
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
286 #if defined(CYGPKG_HAL_MIPS_TX3904)
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
287
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
288 #define HAL_TX39_DEBUG_TOE_ENABLE() \
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
289 { \
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
290 HAL_IO_REGISTER _reg_ = CYG_HAL_MIPS_TX3904_CConR; \
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
291 CYG_WORD32 _cconr_; \
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
292 HAL_READ_UINT32( _reg_, _cconr_); \
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
293 _cconr_ |= 0x04000000; \
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
294 HAL_WRITE_UINT32( _reg_, _cconr_); \
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
295 }
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
296
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
297 #define HAL_TX39_DEBUG_TOE_DISABLE() \
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
298 { \
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
299 HAL_IO_REGISTER _reg_ = CYG_HAL_MIPS_TX3904_CConR; \
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
300 CYG_WORD32 _cconr_; \
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
301 HAL_READ_UINT32( _reg_, _cconr_); \
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
302 _cconr_ &= 0xFBFFFFFF; \
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
303 HAL_WRITE_UINT32( _reg_, _cconr_); \
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
304 }
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
305
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
306 #else
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
307
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
308 #define HAL_TX39_DEBUG_TOE_ENABLE()
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
309
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
310 #define HAL_TX39_DEBUG_TOE_DISABLE()
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
311
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
312 #endif
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
313
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
314
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
315 //--------------------------------------------------------------------------
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
316 #endif // ifndef CYGONCE_HAL_IMP_INTR_H
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff changeset
317 // End of imp_intr.h