/[gxemul]/upstream/0.4.4/src/include/dc21285reg.h
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Annotation of /upstream/0.4.4/src/include/dc21285reg.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 35 - (hide annotations)
Mon Oct 8 16:21:26 2007 UTC (16 years, 7 months ago) by dpavlin
File MIME type: text/plain
File size: 11495 byte(s)
0.4.4
1 dpavlin 14 /* GXemul: $Id: dc21285reg.h,v 1.1 2005/09/13 20:56:54 debug Exp $ */
2     /* $NetBSD: dc21285reg.h,v 1.4 2003/01/17 22:29:43 thorpej Exp $ */
3    
4     #ifndef DC21285REG_H
5     #define DC21285REG_H
6    
7     /*
8     * Copyright (c) 1997,1998 Mark Brinicombe.
9     * Copyright (c) 1997,1998 Causality Limited
10     * All rights reserved.
11     *
12     * Redistribution and use in source and binary forms, with or without
13     * modification, are permitted provided that the following conditions
14     * are met:
15     * 1. Redistributions of source code must retain the above copyright
16     * notice, this list of conditions and the following disclaimer.
17     * 2. Redistributions in binary form must reproduce the above copyright
18     * notice, this list of conditions and the following disclaimer in the
19     * documentation and/or other materials provided with the distribution.
20     * 3. All advertising materials mentioning features or use of this software
21     * must display the following acknowledgement:
22     * This product includes software developed by Mark Brinicombe
23     * for the NetBSD Project.
24     * 4. The name of the company nor the name of the author may be used to
25     * endorse or promote products derived from this software without specific
26     * prior written permission.
27     *
28     * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
29     * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
30     * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
31     * IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
32     * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
33     * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
34     * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
35     * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
36     * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
37     * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
38     * SUCH DAMAGE.
39     */
40    
41     /*
42     * DC21285 register definitions
43     */
44    
45     /* PCI registers in CSR space */
46    
47     #define VENDOR_ID 0x00
48     #define DC21285_VENDOR_ID 0x1011
49     #define DEVICE_ID 0x02
50     #define DC21285_DEVICE_ID 0x1065
51     #define REVISION 0x08
52     #define CLASS 0x0A
53    
54     /* Other PCI control / status registers */
55    
56     #define OUTBOUND_INT_STATUS 0x030
57     #define OUTBOUND_INT_MASK 0x034
58     #define I2O_INBOUND_FIFO 0x040
59     #define I2O_OUTBOUND_FIFO 0x044
60    
61     /* Mailbox registers */
62    
63     #define MAILBOX_0 0x050
64     #define MAILBOX_1 0x054
65     #define MAILBOX_2 0x058
66     #define MAILBOX_3 0x05C
67    
68     #define DOORBELL 0x060
69     #define DOORBELL_SETUP 0x064
70     #define ROM_WRITE_BYTE_ADDRESS 0x068
71    
72     /* DMA Channel registers */
73    
74     #define DMA_CHAN_1_BYTE_COUNT 0x80
75     #define DMA_CHAN_1_PCI_ADDR 0x84
76     #define DMA_CHAN_1_SDRAM_ADDR 0x88
77     #define DMA_CHAN_1_DESCRIPT 0x8C
78     #define DMA_CHAN_1_CONTROL 0x90
79     #define DMA_CHAN_2_BYTE_COUNT 0xA0
80     #define DMA_CHAN_2_PCI_ADDR 0xA4
81     #define DMA_CHAN_2_SDRAM_ADDR 0xA8
82     #define DMA_CHAN_2_DESCRIPTOR 0xAC
83     #define DMA_CHAN_2_CONTROL 0xB0
84    
85     /* Offsets into DMA descriptor */
86    
87     #define DMA_BYTE_COUNT 0
88     #define DMA_PCI_ADDRESS 4
89     #define DMA_SDRAM_ADDRESS 8
90     #define DMA_NEXT_DESCRIPTOR 12
91    
92     /* DMA byte count register bits */
93    
94     #define DMA_INTERBURST_SHIFT 24
95     #define DMA_PCI_TO_SDRAM 0
96     #define DMA_SDRAM_TO_PCI (1 << 30)
97     #define DMA_END_CHAIN (1 << 31)
98    
99     /* DMA control bits */
100    
101     #define DMA_ENABLE (1 << 0)
102     #define DMA_TRANSFER_DONE (1 << 2)
103     #define DMA_ERROR (1 << 3)
104     #define DMA_REGISTOR_DESCRIPTOR (1 << 4)
105     #define DMA_PCI_MEM_READ (0 << 5)
106     #define DMA_PCI_MEM_READ_LINE (1 << 5)
107     #define DMA_PCI_MEM_READ_MULTI1 (2 << 5)
108     #define DMA_PCI_MEM_READ_MULTI2 (3 << 5)
109     #define DMA_CHAIN_DONE (1 << 7)
110     #define DMA_INTERBURST_4 (0 << 8)
111     #define DMA_INTERBURST_8 (1 << 8)
112     #define DMA_INTERBURST_16 (2 << 8)
113     #define DMA_INTERBURST_32 (3 << 8)
114     #define DMA_PCI_LENGTH_8 0
115     #define DMA_PCI_LENGTH_16 (1 << 15)
116     #define DMA_SDRAM_LENGTH_1 (0 << 16)
117     #define DMA_SDRAM_LENGTH_2 (1 << 16)
118     #define DMA_SDRAM_LENGTH_4 (2 << 16)
119     #define DMA_SDRAM_LENGTH_8 (3 << 16)
120     #define DMA_SDRAM_LENGTH_16 (4 << 16)
121    
122     /* CSR Base Address Mask */
123    
124     #define CSR_BA_MASK 0x0F8
125     #define CSR_MASK_128B 0x00000000
126     #define CSR_MASK_512KB 0x00040000
127     #define CSR_MASK_1MB 0x000C0000
128     #define CSR_MASK_2MB 0x001C0000
129     #define CSR_MASK_4MB 0x003C0000
130     #define CSR_MASK_8MB 0x007C0000
131     #define CSR_MASK_16MB 0x00FC0000
132     #define CSR_MASK_32MB 0x01FC0000
133     #define CSR_MASK_64MB 0x03FC0000
134     #define CSR_MASK_128MB 0x07FC0000
135     #define CSR_MASK_256MB 0x0FFC0000
136     #define CSR_BA_OFFSET 0x0FC
137    
138     /* SDRAM Base Address Mask */
139    
140     #define SDRAM_BA_MASK 0x100
141     #define SDRAM_MASK_256KB 0x00000000
142     #define SDRAM_MASK_512KB 0x00040000
143     #define SDRAM_MASK_1MB 0x000C0000
144     #define SDRAM_MASK_2MB 0x001C0000
145     #define SDRAM_MASK_4MB 0x003C0000
146     #define SDRAM_MASK_8MB 0x007C0000
147     #define SDRAM_MASK_16MB 0x00FC0000
148     #define SDRAM_MASK_32MB 0x01FC0000
149     #define SDRAM_MASK_64MB 0x03FC0000
150     #define SDRAM_MASK_128MB 0x07FC0000
151     #define SDRAM_MASK_256MB 0x0FFC0000
152     #define SDRAM_WINDOW_DISABLE (1 << 31)
153     #define SDRAM_BA_OFFSET 0x104
154    
155     /* Expansion ROM Base Address Mask */
156    
157     #define EXPANSION_ROM_BA_MASK 0x108
158     #define ROM_MASK_1MB 0x00000000
159     #define ROM_MASK_2MB 0x00100000
160     #define ROM_MASK_4MB 0x00300000
161     #define ROM_MASK_8MB 0x00700000
162     #define ROM_MASK_16MB 0x00F00000
163     #define ROM_WINDOW_DISABLE (1 << 31)
164    
165     /* SDRAM configuration */
166    
167     #define SDRAM_TIMING 0x10C
168     #define SDRAM_ARRAY_SIZE_0 0x0
169     #define SDRAM_ARRAY_SIZE_1MB 0x1
170     #define SDRAM_ARRAY_SIZE_2MB 0x2
171     #define SDRAM_ARRAY_SIZE_4MB 0x3
172     #define SDRAM_ARRAY_SIZE_8MB 0x4
173     #define SDRAM_ARRAY_SIZE_16MB 0x5
174     #define SDRAM_ARRAY_SIZE_32MB 0x6
175     #define SDRAM_ARRAY_SIZE_64MB 0x7
176     #define SDRAM_2_BANKS 0
177     #define SDRAM_4_BANKS (1 << 3)
178     #define SDRAM_ADDRESS_MUX_SHIFT 4
179     #define SDRAM_ARRAY_BASE_SHIFT 20
180     #define SDRAM_ADDRESS_SIZE_0 0x110
181     #define SDRAM_ADDRESS_SIZE_1 0x114
182     #define SDRAM_ADDRESS_SIZE_2 0x118
183     #define SDRAM_ADDRESS_SIZE_3 0x11C
184    
185     /* I2O registers */
186    
187     #define I2O_INBOUND_FREE_HEAD 0x120
188     #define I2O_INBOUND_POST_TAIL 0x124
189     #define I2O_OUTBOUND_POST_HEAD 0x128
190     #define I2O_OUTBOUND_FREE_TAIL 0x12c
191     #define I2O_INBOUND_FREE_COUNT 0x130
192     #define I2O_OUTBOUND_POST_COUNT 0x134
193     #define I2O_INBOUND_POST_COUNT 0x138
194    
195     /* Control register */
196    
197     #define SA_CONTROL 0x13C
198     #define INITIALIZE_COMPLETE (1 << 0)
199     #define ASSERT_SERR (1 << 1)
200     #define RECEIVED_SERR (1 << 3)
201     #define SA_SDRAM_PARITY_ERROR (1 << 4)
202     #define PCI_SDRAM_PARITY_ERROR (1 << 5)
203     #define DMA_SDRAM_PARITY_ERROR (1 << 6)
204     #define DISCARD_TIMER_EXPIRED (1 << 8)
205     #define PCI_NOT_RESET (1 << 9)
206     #define WATCHDOG_ENABLE (1 << 13)
207     #define I2O_SIZE_256 (0 << 10)
208     #define I2O_SIZE_512 (1 << 10)
209     #define I2O_SIZE_1024 (2 << 10)
210     #define I2O_SIZE_2048 (3 << 10)
211     #define I2O_SIZE_4096 (4 << 10)
212     #define I2O_SIZE_8192 (5 << 10)
213     #define I2O_SIZE_16384 (6 << 10)
214     #define I2O_SIZE_32768 (7 << 10)
215     #define ROM_WIDTH_8 (3 << 14)
216     #define ROM_WIDTH_16 (1 << 14)
217     #define ROM_WIDTH_32 (2 << 14)
218     #define ROM_ACCESS_TIME_SHIFT 16
219     #define ROM_BURST_TIME_SHIFT 20
220     #define ROM_TRISTATE_TIME_SHIFT 24
221     #define XCS_DIRECTION_SHIFT 28
222     #define PCI_CENTRAL_FUNCTION (1 << 31)
223    
224     #define PCI_ADDRESS_EXTENSION 0x140
225     #define PREFETCHABLE_MEM_RANGE 0x144
226    
227     /* XBUS / PCI Arbiter registers */
228    
229     #define XBUS_CYCLE_ARBITER 0x148
230     #define XBUS_CYCLE_0_SHIFT 0
231     #define XBUS_CYCLE_1_SHIFT 3
232     #define XBUS_CYCLE_2_SHIFT 6
233     #define XBUS_CYCLE_3_SHIFT 9
234     #define XBUS_CYCLE_STROBE_SHIFT 12
235     #define XBUS_PCI_ARBITER (1 << 23)
236     #define XBUS_INT_IN_L0_LOW 0
237     #define XBUS_INT_IN_L0_HIGH (1 << 24)
238     #define XBUS_INT_IN_L1_LOW 0
239     #define XBUS_INT_IN_L1_HIGH (1 << 25)
240     #define XBUS_INT_IN_L2_LOW 0
241     #define XBUS_INT_IN_L2_HIGH (1 << 26)
242     #define XBUS_INT_IN_L3_LOW 0
243     #define XBUS_INT_IN_L3_HIGH (1 << 27)
244     #define XBUS_INT_XCS0_LOW 0
245     #define XBUS_INT_XCS0_HIGH (1 << 28)
246     #define XBUS_INT_XCS1_LOW 0
247     #define XBUS_INT_XCS1_HIGH (1 << 29)
248     #define XBUS_INT_XCS2_LOW 0
249     #define XBUS_INT_XCS2_HIGH (1 << 30)
250     #define XBUS_PCI_INT_REQUEST (1 << 31)
251    
252     #define XBUS_IO_STROBE_MASK 0x14C
253     #define XBUS_IO_STROBE_0_SHIFT 0
254     #define XBUS_IO_STROBE_2_SHIFT 8
255     #define XBUS_IO_STROBE_3_SHIFT 16
256     #define XBUS_IO_STROBE_4_SHIFT 24
257    
258     #define DOORBELL_PCI_MASK 0x150
259     #define DOORBELL_SA_MASK 0x154
260    
261     /* UART registers */
262    
263     #define UART_DATA 0x160
264     #define UART_RX_STAT 0x164
265     #define UART_PARITY_ERROR 0x01
266     #define UART_FRAME_ERROR 0x02
267     #define UART_OVERRUN_ERROR 0x04
268     #define UART_RX_ERROR (UART_PARITY_ERROR | UART_FRAME_ERROR \
269     | UART_OVERRUN_ERROR)
270     #define UART_H_UBRLCR 0x168
271     #define UART_BREAK 0x01
272     #define UART_PARITY_ENABLE 0x02
273     #define UART_ODD_PARITY 0x00
274     #define UART_EVEN_PARITY 0x04
275     #define UART_STOP_BITS_1 0x00
276     #define UART_STOP_BITS_2 0x08
277     #define UART_ENABLE_FIFO 0x10
278     #define UART_DATA_BITS_5 0x00
279     #define UART_DATA_BITS_6 0x20
280     #define UART_DATA_BITS_7 0x40
281     #define UART_DATA_BITS_8 0x60
282     #define UART_M_UBRLCR 0x16C
283     #define UART_L_UBRLCR 0x170
284     #define UART_BRD(fclk, x) (((fclk) / 4 / 16 / x) - 1)
285    
286     #define UART_CONTROL 0x174
287     #define UART_ENABLE 0x01
288     #define UART_SIR_ENABLE 0x02
289     #define UART_IRDA_ENABLE 0x04
290     #define UART_FLAGS 0x178
291     #define UART_TX_BUSY 0x08
292     #define UART_RX_FULL 0x10
293     #define UART_TX_EMPTY 0x20
294    
295     /* Interrupt numbers for IRQ and FIQ registers */
296    
297     #define IRQ_RESERVED0 0x00
298     #define IRQ_SOFTINT 0x01
299     #define IRQ_SERIAL_RX 0x02
300     #define IRQ_SERIAL_TX 0x03
301     #define IRQ_TIMER_1 0x04
302     #define IRQ_TIMER_2 0x05
303     #define IRQ_TIMER_3 0x06
304     #define IRQ_TIMER_4 0x07
305     #define IRQ_IN_L0 0x08
306     #define IRQ_IN_L1 0x09
307     #define IRQ_IN_L2 0x0A
308     #define IRQ_IN_L3 0x0B
309     #define IRQ_XCS_L0 0x0C
310     #define IRQ_XCS_L1 0x0D
311     #define IRQ_XCS_L2 0x0E
312     #define IRQ_DOORBELL 0x0F
313     #define IRQ_DMA_1 0x10
314     #define IRQ_DMA_2 0x11
315     #define IRQ_PCI 0x12
316     #define IRQ_PMCSR 0x13
317     #define IRQ_RESERVED1 0x14
318     #define IRQ_RESERVED2 0x15
319     #define IRQ_BIST 0x16
320     #define IRQ_SERR 0x17
321     #define IRQ_SDRAM_PARITY 0x18
322     #define IRQ_I2O 0x19
323     #define IRQ_RESERVED3 0x1A
324     #define IRQ_DISCARD_TIMER 0x1B
325     #define IRQ_DATA_PARITY 0x1C
326     #define IRQ_MASTER_ABORT 0x1D
327     #define IRQ_TARGET_ABORT 0x1E
328     #define IRQ_PARITY 0x1F
329    
330     /* IRQ and FIQ status / enable registers */
331    
332     #define IRQ_STATUS 0x180
333     #define IRQ_RAW_STATUS 0x184
334     #define IRQ_ENABLE 0x188
335     #define IRQ_ENABLE_SET 0x188
336     #define IRQ_ENABLE_CLEAR 0x18c
337     #define IRQ_SOFT 0x190
338    
339     #define FIQ_STATUS 0x280
340     #define FIQ_RAW_STATUS 0x284
341     #define FIQ_ENABLE 0x288
342     #define FIQ_ENABLE_SET 0x288
343     #define FIQ_ENABLE_CLEAR 0x28c
344     #define FIQ_SOFT 0x290
345    
346     /* Timer registers */
347    
348     /* Relative offsets and bases */
349    
350     #define TIMER_LOAD 0x00
351     #define TIMER_VALUE 0x04
352     #define TIMER_CONTROL 0x08
353     #define TIMER_CLEAR 0x0C
354     #define TIMER_1_BASE 0x300
355     #define TIMER_2_BASE 0x320
356     #define TIMER_3_BASE 0x340
357     #define TIMER_4_BASE 0x360
358    
359     /* Control register bits */
360    
361     #define TIMER_FCLK 0x00
362     #define TIMER_FCLK_16 0x04
363     #define TIMER_FCLK_256 0x08
364     #define TIMER_EXTERNAL 0x0C
365     #define TIMER_MODE_FREERUN 0x00
366     #define TIMER_MODE_PERIODIC 0x40
367     #define TIMER_ENABLE 0x80
368    
369     /* Maximum timer value */
370    
371     #define TIMER_MAX_VAL 0x00FFFFFF
372    
373     /* Specific registers */
374    
375     #define TIMER_1_LOAD 0x300
376     #define TIMER_1_VALUE 0x304
377     #define TIMER_1_CONTROL 0x308
378     #define TIMER_1_CLEAR 0x30C
379     #define TIMER_2_LOAD 0x320
380     #define TIMER_2_VALUE 0x324
381     #define TIMER_2_CONTROL 0x328
382     #define TIMER_2_CLEAR 0x32C
383     #define TIMER_3_LOAD 0x340
384     #define TIMER_3_VALUE 0x344
385     #define TIMER_3_CONTROL 0x348
386     #define TIMER_3_CLEAR 0x34C
387     #define TIMER_4_LOAD 0x360
388     #define TIMER_4_VALUE 0x364
389     #define TIMER_4_CONTROL 0x368
390     #define TIMER_4_CLEAR 0x36C
391    
392     /* Miscellaneous definitions */
393    
394     #ifndef FCLK
395     #define FCLK 50000000
396     #endif
397    
398     #endif /* DC21285REG_H */

  ViewVC Help
Powered by ViewVC 1.1.26