OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [rtos/] [rtems/] [c/] [src/] [lib/] [libbsp/] [powerpc/] [dmv177/] [include/] [dmv170.h] - Blame information for rev 415

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
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
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.