1 |
30 |
unneback |
/* dmv170.h
|
2 |
|
|
*
|
3 |
|
|
* This include file contains information pertaining to the DMV170.
|
4 |
|
|
*
|
5 |
|
|
* NOTE: Other than where absolutely required, this version currently
|
6 |
|
|
* supports only the peripherals and bits used by the basic board
|
7 |
|
|
* support package. This includes at least significant pieces of
|
8 |
|
|
* the following items:
|
9 |
|
|
*
|
10 |
|
|
* + UART Channels A and B
|
11 |
|
|
*
|
12 |
|
|
* COPYRIGHT (c) 1989-1997.
|
13 |
|
|
* On-Line Applications Research Corporation (OAR).
|
14 |
|
|
* Copyright assigned to U.S. Government, 1994.
|
15 |
|
|
*
|
16 |
|
|
* The license and distribution terms for this file may in
|
17 |
|
|
* the file LICENSE in this distribution or at
|
18 |
|
|
* http://www.OARcorp.com/rtems/license.html.
|
19 |
|
|
*
|
20 |
|
|
* $Id: dmv170.h,v 1.2 2001-09-27 12:00:33 chris Exp $
|
21 |
|
|
*/
|
22 |
|
|
|
23 |
|
|
#ifndef _INCLUDE_DMV170_h
|
24 |
|
|
#define _INCLUDE_DMV170_h
|
25 |
|
|
|
26 |
|
|
|
27 |
|
|
/*
|
28 |
|
|
* DY-4 uses a non-standard clock for the Exar 88681.
|
29 |
|
|
*/
|
30 |
|
|
|
31 |
|
|
#undef MC68681_BAUD_RATE_MASK_9600
|
32 |
|
|
#define MC68681_BAUD_RATE_MASK_9600
|
33 |
|
|
|
34 |
|
|
#define DMV17x_MC68681_BAUD_RATE_MASK_9600
|
35 |
|
|
|
36 |
|
|
#if 0
|
37 |
|
|
#define MC68681_OFFSET_MULTIPLIER 8
|
38 |
|
|
#endif
|
39 |
|
|
|
40 |
|
|
#ifdef __cplusplus
|
41 |
|
|
extern "C" {
|
42 |
|
|
#endif
|
43 |
|
|
|
44 |
|
|
/* Note: Move address defs to the linker files. XXX */
|
45 |
|
|
|
46 |
|
|
/* Real Time Clock Base Address */
|
47 |
|
|
#define DMV170_RTC_ADDRESS 0xf2c00000
|
48 |
|
|
|
49 |
|
|
/* base address of the DUART (68681) */
|
50 |
|
|
#define MC68681_ADDR 0xf2800000
|
51 |
|
|
#define MC68681_PORT1_ADDR 0xf2800000
|
52 |
|
|
#define MC68681_PORT2_ADDR 0xf2800040
|
53 |
|
|
|
54 |
|
|
/*
|
55 |
|
|
* SONIC Information
|
56 |
|
|
*/
|
57 |
|
|
|
58 |
|
|
#define DMV170_SONIC_ADDR 0xf3000000
|
59 |
|
|
|
60 |
|
|
#define SONIC_BASE_ADDRESS DMV170_SONIC_ADDR
|
61 |
|
|
#define SONIC_VECTOR DMV170_ETHERNET_IRQ
|
62 |
|
|
|
63 |
|
|
/* base address for the SCC (85C30) */
|
64 |
|
|
#define Z85C30_ADDR 0xfb000010
|
65 |
|
|
#define Z85C30_CTRL_A 0xfb000010
|
66 |
|
|
#define Z85C30_DATA_A 0xfb000018
|
67 |
|
|
#define Z85C30_CTRL_B 0xfb000000
|
68 |
|
|
#define Z85C30_DATA_B 0xfb000008
|
69 |
|
|
#define Z85C30_CLOCK_10 (10485760) /* 10 Mhz */
|
70 |
|
|
#define Z85C30_CLOCK_2 (2581175) /* 2.4616 Mhz */
|
71 |
|
|
|
72 |
|
|
/* base address for the SCV64 */
|
73 |
|
|
#define DMV170_SCV64_BASE_ADDRESS 0xf2000000
|
74 |
|
|
|
75 |
|
|
#define DMV170_LOCAL_CONTROL_STATUS_REG 0xf2400000
|
76 |
|
|
#define DMV170_TIMER0_COUNT_INTERVAL_REG 0xf2400008
|
77 |
|
|
#define DMV170_TIMER1_COUNT_INTERVAL_REG 0xf2400010
|
78 |
|
|
#define DMV170_TIMER2_COUNT_INTERVAL_REG 0xf2400018
|
79 |
|
|
#define DMV170_TIMER_CONTROL_REG 0xf2400020
|
80 |
|
|
#define DMV170_CARD_RESORCE_REG 0xf2400040
|
81 |
|
|
|
82 |
|
|
#define DMV170_WRITE( _reg, _data ) \
|
83 |
|
|
*((volatile rtems_unsigned16 *)(_reg)) = (_data)
|
84 |
|
|
|
85 |
|
|
#define DMV170_READ( _reg, _data ) \
|
86 |
|
|
(_data) = *((volatile rtems_unsigned16 *)(_reg))
|
87 |
|
|
|
88 |
|
|
/*
|
89 |
|
|
* The following defines the bits in the DMA Control and Status Register
|
90 |
|
|
*/
|
91 |
|
|
|
92 |
|
|
/* XXX fill in the other bits */
|
93 |
|
|
|
94 |
|
|
#define DMV170_DMA_CONTROL_STATUS_REG 0xfc000090
|
95 |
|
|
|
96 |
|
|
#define DMV170_SCC_10MHZ 0x00010000
|
97 |
|
|
|
98 |
|
|
/*
|
99 |
|
|
* The following defines the bits in the Local Control and Status Register.
|
100 |
|
|
*/
|
101 |
|
|
#define DMV170_IPLx_MASK 0x0007
|
102 |
|
|
#define DMV170_MAXPACK_SENSE_MASK 0x0008
|
103 |
|
|
#define DMV170_MAXPACK_NOT_INSTALLED 0x0008
|
104 |
|
|
#define DMV170_MAXPACK_INSTALLED 0x0000
|
105 |
|
|
|
106 |
|
|
#define DMV170_MAXPACK_RESET_MASK 0x0010
|
107 |
|
|
#define DMV170_MAXPACK_RESET_NEGATE 0x0010
|
108 |
|
|
#define DMV170_MAXPACK_RESET_ASSERT 0x0000
|
109 |
|
|
#define DMV170_EEPROM_READ_WRITE_MASK 0x0020
|
110 |
|
|
#define DMV170_EEPROM_READ 0x0020
|
111 |
|
|
#define DMV170_EEPROM_WRITE 0x0000
|
112 |
|
|
#define DMV170_EEPROM_CLOCK_CTRL_MASK 0x0040
|
113 |
|
|
#define DMV170_EEPROM_CLOCK_ASSERT 0x0040
|
114 |
|
|
#define DMV170_EEPROM_CLOCK_NEGATE 0x0000
|
115 |
|
|
#define DMV170_EEPROM_DATA_MASK 0x0080
|
116 |
|
|
#define DMV170_EEPROM_DATA_HIGH 0x0080
|
117 |
|
|
#define DMV170_EEPROM_DATA_LOW 0x0000
|
118 |
|
|
|
119 |
|
|
/* Bits 8-10: 68040 Transfer Modifer Codes represent the Transfer
|
120 |
|
|
* Modifier to be used on MAXPack Accesses.
|
121 |
|
|
*
|
122 |
|
|
* Bit 11 : 68040 Transfer Type (TT) 0:TT are both low 1:TT are both high
|
123 |
|
|
*/
|
124 |
|
|
|
125 |
|
|
#define DMV170_USER_LINK0_STATUS_MASK 0x1000
|
126 |
|
|
#define DMV170_USER_LINK0_OPEN 0x1000
|
127 |
|
|
#define DMV170_USER_LINK0_INSTALLED 0x0000
|
128 |
|
|
#define DMV170_LOWER_STATUS_LED_CONTROL_MASK 0x2000
|
129 |
|
|
#define DMV170_LOWER_STATUS_LED_IS_OFF 0x2000
|
130 |
|
|
#define DMV170_LOWER_STATUS_LED_IS_ON 0x0000
|
131 |
|
|
#ifdef DMV176
|
132 |
|
|
/* The following are not available for the DMV171 */
|
133 |
|
|
#define DMV170_RAM_TYPE_MASK 0x4000
|
134 |
|
|
#define DMV170_RAM_TYPE_IS_DRAM 0x4000
|
135 |
|
|
#define DMV170_RAM_TYPE_IS_SRAM 0x0000
|
136 |
|
|
#define DMV170_IACK_VECTOR_AUTOVECTOR_MASK 0x8000
|
137 |
|
|
#define DMV170_IACK_VECTOR_AUTOVECTOR_IS_VECTOR 0x8000
|
138 |
|
|
#define DMV170_IACK_VECTOR_AUTOVECTOR_IS_NOT_VECTOR 0x0000
|
139 |
|
|
#endif
|
140 |
|
|
|
141 |
|
|
/*
|
142 |
|
|
* The following defines the bits in the Timer Control Register.
|
143 |
|
|
*/
|
144 |
|
|
|
145 |
|
|
#define DMV170_TIMER0_ENABLE_MASK 0x0001
|
146 |
|
|
#define DMV170_TIMER0_IS_ENABLED 0x0001
|
147 |
|
|
#define DMV170_TIMER0_IS_DISABLED 0x0000
|
148 |
|
|
#define DMV170_TIMER1_ENABLE_MASK 0x0002
|
149 |
|
|
#define DMV170_TIMER1_IS_ENABLED 0x0002
|
150 |
|
|
#define DMV170_TIMER1_IS_DISABLED 0x0000
|
151 |
|
|
#define DMV170_TIMER2_ENABLE_MASK 0x0004
|
152 |
|
|
#define DMV170_TIMER2_IS_ENABLED 0x0004
|
153 |
|
|
#define DMV170_TIMER2_IS_DISABLED 0x0000
|
154 |
|
|
#define DMV170_TIMER1_CLOCK_MASK 0x0008
|
155 |
|
|
#define DMV170_TIMER1_CLOCK_AT_TIMER0 0x0008
|
156 |
|
|
#define DMV170_TIMER1_CLOCK_AT_1MHZ 0x0000
|
157 |
|
|
|
158 |
|
|
#define DMV170_TIMER2_CLOCK_MASK 0x0010
|
159 |
|
|
#define DMV170_TIMER2_CLOCK_AT_TIMER0 0x0010
|
160 |
|
|
#define DMV170_TIMER2_CLOCK_AT_1MHZ 0x0000
|
161 |
|
|
#define DMV170_TIMER0_INTERRUPT_MASK 0x0020
|
162 |
|
|
#define DMV170_TIMER0_INTERRUPT_ENABLE 0x0020
|
163 |
|
|
#define DMV170_TIMER0_INTERRUPT_CLEAR 0x0000
|
164 |
|
|
#define DMV170_TIMER1_INTERRUPT_MASK 0x0040
|
165 |
|
|
#define DMV170_TIMER1_INTERRUPT_ENABLE 0x0040
|
166 |
|
|
#define DMV170_TIMER1_INTERRUPT_CLEAR 0x0000
|
167 |
|
|
#define DMV170_TIMER2_INTERRUPT_MASK 0x0080
|
168 |
|
|
#define DMV170_TIMER2_INTERRUPT_ENABLE 0x0080
|
169 |
|
|
#define DMV170_TIMER2_INTERRUPT_CLEAR 0x0000
|
170 |
|
|
|
171 |
|
|
/*
|
172 |
|
|
* The Following define the bits for the Card Resource Register.
|
173 |
|
|
*/
|
174 |
|
|
|
175 |
|
|
#define DMV170_DUART_INTERRUPT_MASK 0x0001 /* DUART Interrupt Sense Bit */
|
176 |
|
|
#define DMV170_DUART_INTERRUPT_NEGATE 0x0001
|
177 |
|
|
#define DMV170_DUART_INTERRUPT_ASSERT 0x0000
|
178 |
|
|
#define DMV170_SONIC_INTERRUPT_MASK 0x0002 /* SONIC Interrupt Sense Bit */
|
179 |
|
|
#define DMV170_SONIC_INTERRUPT_NEGATE 0x0002
|
180 |
|
|
#define DMV170_SONIC_INTERRUPT_ASSERT 0x0000
|
181 |
|
|
#define DMV170_SCSI_INTERRUPT_MASK 0x0004 /* SCSI Interrupt Sense Bit */
|
182 |
|
|
#define DMV170_SCSI_INTERRUPT_NEGATE 0x0004
|
183 |
|
|
#define DMV170_SCSI_INTERRUPT_ASSERT 0x0000
|
184 |
|
|
#define DMV170_SCC_INTERRUPT_MASK 0x0008 /* SCC Interrupt Sense Bit */
|
185 |
|
|
#define DMV170_SCC_INTERRUPT_NEGATE 0x0008
|
186 |
|
|
#define DMV170_SCC_INTERRUPT_ASSERT 0x0000
|
187 |
|
|
#define DMV170_SNOOP_ENABLE_MASK 0x0010 /* CPU Snoop Enable Bit */
|
188 |
|
|
#define DMV170_SNOOP_DISABLE 0x0010
|
189 |
|
|
#define DMV170_SNOOP_ENABLE 0x0000
|
190 |
|
|
#define DMV170_SONIC_RESET_MASK 0x0020 /* SONIC RESET Control */
|
191 |
|
|
#define DMV170_SONIC_RESET_CLEAR 0x0020
|
192 |
|
|
#define DMV170_SONIC_RESET_HOLD 0x0000
|
193 |
|
|
#define DMV170_NV64_WE_MASK 0x0040 /* 64-bit Non-Volital Memory */
|
194 |
|
|
#define DMV170_NV64_WRITE_ENABLE 0x0040 /* Write Enable */
|
195 |
|
|
#define DMV170_NV64_WRITE_DISABLE 0x0000
|
196 |
|
|
#define DMV170_BOOT_NV16_MASK 0x0080 /* BOOT Device Type */
|
197 |
|
|
#define DMV170_BOOT_64_BIT 0x0080
|
198 |
|
|
#define DMV170_BOOT_16_BIT 0x0000
|
199 |
|
|
#define DMV170_DUART_INST_MASK 0x0100 /* DUART Sense Bit */
|
200 |
|
|
#define DMV170_DUART_INSTALLED 0x0100
|
201 |
|
|
#define DMV170_DUART_NOT_INSTALLED 0x0000
|
202 |
|
|
#define DMV170_SONIC_INST_MASK 0x0200 /* SONIC Sense Bit */
|
203 |
|
|
#define DMV170_SONIC_INSTALLED 0x0200
|
204 |
|
|
#define DMV170_SONIC_NOT_INSTALLED 0x0000
|
205 |
|
|
#define DMV170_16M_NV64_MASK 0x0400 /* 16 Mb of 64bit Flash Sense */
|
206 |
|
|
#define DMV170_16Mb_FLASH_INSTALLED 0x0400
|
207 |
|
|
#define DMV170_8Mb_FLASH_INSTALLED 0x0000
|
208 |
|
|
#define DMV170_SCC_INST_MASK 0x0800 /* SCC Sense Bit */
|
209 |
|
|
#define DMV170_SCC_INSTALLED 0x0800
|
210 |
|
|
#define DMV170_SCC_NOT_INSTALLED 0x0000
|
211 |
|
|
#define DMV170_RTC_INST_MASK 0x1000 /* RTC Sense Bit */
|
212 |
|
|
#define DMV170_RTC_INSTALLED 0x1000
|
213 |
|
|
#define DMV170_RTC_NOT_INSTALLED 0x0000
|
214 |
|
|
#define DMV170_NV64_INST_MASK 0x2000 /* 64bit Non-Volital Mem Sense*/
|
215 |
|
|
|
216 |
|
|
#define DMV170_64_BIT_NON_VOLITAL_MEM_INSTALLED 0x2000
|
217 |
|
|
#define DMV170_64_BIT_NON_VOLITAL_MEM_NOT_INSTALLED 0x0000
|
218 |
|
|
|
219 |
|
|
|
220 |
|
|
/*
|
221 |
|
|
* DUART Baud Rate Definitions.
|
222 |
|
|
*/
|
223 |
|
|
|
224 |
|
|
#define DMV170_DUART_9621 MC68681_BAUD_RATE_MASK_600 /* close to 9600 */
|
225 |
|
|
|
226 |
|
|
#define DMV170_RTC_FREQUENCY 0x0000
|
227 |
|
|
|
228 |
|
|
|
229 |
|
|
/*
|
230 |
|
|
* CPU General Purpose Interrupt definations (PPC_IRQ_EXTERNAL).
|
231 |
|
|
* Note: For the interrupt level read the lower 3 bits of the
|
232 |
|
|
* Local Control and Status Register.
|
233 |
|
|
*/
|
234 |
|
|
|
235 |
|
|
#define DMV170_IRQ_FIRST ( PPC_IRQ_LAST + 1 )
|
236 |
|
|
|
237 |
|
|
#define DMV170_LIRQ0 ( DMV170_IRQ_FIRST + 0 )
|
238 |
|
|
#define DMV170_LIRQ1 ( DMV170_IRQ_FIRST + 1 )
|
239 |
|
|
#define DMV170_LIRQ2 ( DMV170_IRQ_FIRST + 2 )
|
240 |
|
|
#define DMV170_LIRQ3 ( DMV170_IRQ_FIRST + 3 )
|
241 |
|
|
#define DMV170_LIRQ4 ( DMV170_IRQ_FIRST + 4 )
|
242 |
|
|
#define DMV170_LIRQ5 ( DMV170_IRQ_FIRST + 5 )
|
243 |
|
|
#define DMV170_L7IACF ( DMV170_IRQ_FIRST + 6 )
|
244 |
|
|
#define DMV170_L7ISYS ( DMV170_IRQ_FIRST + 7 )
|
245 |
|
|
#define DMV170_L7IMNI ( DMV170_IRQ_FIRST + 8 )
|
246 |
|
|
#define DMV170_BIMODE ( DMV170_IRQ_FIRST + 9 )
|
247 |
|
|
|
248 |
|
|
#define DMV170_DUART_IRQ DMV170_LIRQ5
|
249 |
|
|
#define DMV170_ETHERNET_IRQ DMV170_LIRQ5
|
250 |
|
|
#define DMV170_SCSI_IRQ DMV170_LIRQ5
|
251 |
|
|
#define DMV170_SCC_IRQ DMV170_LIRQ5
|
252 |
|
|
#define DMV170_MEZZANINE_IRQ_0 DMV170_LIRQ4
|
253 |
|
|
#define DMV170_TICK_IRQ DMV170_LIRQ3
|
254 |
|
|
#define DMV170_LOCATION_MON_IRQ DMV170_LIRQ2
|
255 |
|
|
#define DMV170_SCV64_IRQ DMV170_LIRQ1
|
256 |
|
|
#define DMV170_RTC_IRQ DMV170_LIRQ0
|
257 |
|
|
|
258 |
|
|
#define DMV170_ACFAIL_IRQ DMV170_L7IACF
|
259 |
|
|
#define DMV170_SYSFAIL_IRQ DMV170_L7ISYS
|
260 |
|
|
#define DMV170_WATCHDOG_IRQ DMV170_L7IMNI
|
261 |
|
|
#define DMV170_BI_IRQ DMV170_BIMODE
|
262 |
|
|
#define DMV170_RAM_PARITY_IRQ ( DMV170_IRQ_FIRST + 10)
|
263 |
|
|
#define DMV170_DARF_BUS_ERROR_IRQ ( DMV170_IRQ_FIRST + 11)
|
264 |
|
|
#define DMV170_PERIPHERAL_IRQ ( DMV170_IRQ_FIRST + 12)
|
265 |
|
|
|
266 |
|
|
#define MAX_BOARD_IRQS DMV170_PERIPHERAL_IRQ
|
267 |
|
|
|
268 |
|
|
#define SCV64_Is_IRQ0( _status ) (_status&0x01)
|
269 |
|
|
#define SCV64_Is_IRQ1( _status ) (_status&0x02)
|
270 |
|
|
#define SCV64_Is_IRQ2( _status ) (_status&0x04)
|
271 |
|
|
#define SCV64_Is_IRQ3( _status ) (_status&0x08)
|
272 |
|
|
#define SCV64_Is_IRQ4( _status ) (_status&0x10)
|
273 |
|
|
#define SCV64_Is_IRQ5( _status ) (_status&0x20)
|
274 |
|
|
|
275 |
|
|
|
276 |
|
|
/*
|
277 |
|
|
* scv64.c
|
278 |
|
|
*/
|
279 |
|
|
|
280 |
|
|
void SCV64_Generate_DUART_Interrupts();
|
281 |
|
|
rtems_unsigned32 SCV64_Get_Interrupt();
|
282 |
|
|
rtems_unsigned32 SCV64_Get_Interrupt_Enable();
|
283 |
|
|
|
284 |
|
|
#ifdef __cplusplus
|
285 |
|
|
}
|
286 |
|
|
#endif
|
287 |
|
|
|
288 |
|
|
#endif /* !_INCLUDE_DMV170_h */
|
289 |
|
|
/* end of include file */
|
290 |
|
|
|