]> git.kernelconcepts.de Git - karo-tx-redboot.git/blob - packages/hal/mips/idt79s334a/v2_0/include/idt79rc233x.h
Initial revision
[karo-tx-redboot.git] / packages / hal / mips / idt79s334a / v2_0 / include / idt79rc233x.h
1 #ifndef CYGONCE_HAL_IDT79RC233X_H
2 #define CYGONCE_HAL_IDT79RC233X_H
3 //==========================================================================
4 //
5 //      idt79rc233x.h
6 //
7 //      IDT 79RC233x platform definitions
8 //
9 //==========================================================================
10 //####ECOSGPLCOPYRIGHTBEGIN####
11 // -------------------------------------------
12 // This file is part of eCos, the Embedded Configurable Operating System.
13 // Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc.
14 //
15 // eCos is free software; you can redistribute it and/or modify it under
16 // the terms of the GNU General Public License as published by the Free
17 // Software Foundation; either version 2 or (at your option) any later version.
18 //
19 // eCos is distributed in the hope that it will be useful, but WITHOUT ANY
20 // WARRANTY; without even the implied warranty of MERCHANTABILITY or
21 // FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
22 // for more details.
23 //
24 // You should have received a copy of the GNU General Public License along
25 // with eCos; if not, write to the Free Software Foundation, Inc.,
26 // 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
27 //
28 // As a special exception, if other files instantiate templates or use macros
29 // or inline functions from this file, or you compile this file and link it
30 // with other works to produce a work based on this file, this file does not
31 // by itself cause the resulting work to be covered by the GNU General Public
32 // License. However the source code for this file must still be made available
33 // in accordance with section (3) of the GNU General Public License.
34 //
35 // This exception does not invalidate any other reasons why a work based on
36 // this file might be covered by the GNU General Public License.
37 //
38 // Alternative licenses for eCos may be arranged by contacting Red Hat, Inc.
39 // at http://sources.redhat.com/ecos/ecos-license/
40 // -------------------------------------------
41 //####ECOSGPLCOPYRIGHTEND####
42 //==========================================================================
43 //#####DESCRIPTIONBEGIN####
44 //
45 // Author(s):    Tim Michals
46 // Contributors: nickg
47 // Date:         2003-02-13
48 // Purpose:      IDT 79RC233x platform definitions
49 // Description:  
50 // Usage:        
51 //####DESCRIPTIONEND####
52 //==========================================================================
53
54 #define K0BASE          0x80000000
55 #define K0SIZE          0x20000000
56 #define K1BASE          0xA0000000
57 #define K1SIZE          0x20000000
58 #define K2BASE          0xC0000000
59 #define K2SIZE          0x40000000
60
61 /*
62 * Exception vectors
63 */
64
65 #define T_VEC            K0BASE                 /* tlbmiss vector */
66 #define C_VEC           (K1BASE+0x100)          /* cache exception vector */
67 #define E_VEC           (K0BASE+0x180)          /* exception vector */
68 #define R_VEC           (K1BASE+0x1fc00000)     /* reset vector */
69
70 /*
71  * Address conversion macros
72  */
73
74 #define K0_TO_K1(x)     ((unsigned)(x)|0xA0000000)      /* kseg0 to kseg1 */
75 #define K1_TO_K0(x)     ((unsigned)(x)&0x9FFFFFFF)      /* kseg1 to kseg0 */
76 #define K0_TO_PHYS(x)   ((unsigned)(x)&0x1FFFFFFF)      /* kseg0 to physical */
77 #define K1_TO_PHYS(x)   ((unsigned)(x)&0x1FFFFFFF)      /* kseg1 to physical */
78 #define PHYS_TO_K0(x)   ((unsigned)(x)|0x80000000)      /* physical to kseg0 */
79 #define PHYS_TO_K1(x)   ((unsigned)(x)|0xA0000000)      /* physical to kseg1 */
80
81 /*
82 * Address predicates
83 */
84
85 #define IS_KSEG0(x)     ((unsigned)(x) >= K0BASE && (unsigned)(x) < K1BASE)
86 #define IS_KSEG1(x)     ((unsigned)(x) >= K1BASE && (unsigned)(x) < K2BASE)
87 #define IS_KUSEG(x)     ((unsigned)(x) < K0BASE)
88
89 /*
90 * Cache size constants
91 */
92
93 #define MINCACHE        +(1*1024)       /* leading plus for mas's benefit */
94 #define MAXCACHE        +(256*1024)     /* leading plus for mas's benefit */
95
96 /*
97 * Cache alignment macros
98 *
99 * NOTE: These definitions may migrate to vxWorks.h in a future release.
100 */
101
102 #define CACHE_ROUND_UP(x)       ROUND_UP(x, _CACHE_ALIGN_SIZE)
103 #define CACHE_ROUND_DOWN(x)     ROUND_DOWN(x, _CACHE_ALIGN_SIZE)
104
105 /*
106 * Cause bit definitions
107 */
108
109 #define CAUSE_BD        0x80000000      /* Branch delay slot */
110 #define CAUSE_CEMASK    0x30000000      /* coprocessor error */
111 #define CAUSE_CESHIFT   28
112
113 #define CAUSE_IP8       0x00008000      /* External level 8 pending */
114 #define CAUSE_IP7       0x00004000      /* External level 7 pending */
115 #define CAUSE_IP6       0x00002000      /* External level 6 pending */
116 #define CAUSE_IP5       0x00001000      /* External level 5 pending */
117 #define CAUSE_IP4       0x00000800      /* External level 4 pending */
118 #define CAUSE_IP3       0x00000400      /* External level 3 pending */
119 #define CAUSE_SW2       0x00000200      /* Software level 2 pending */
120 #define CAUSE_SW1       0x00000100      /* Software level 1 pending */
121
122 #define CAUSE_IPMASK    0x0000FF00      /* Pending interrupt mask */
123 #define CAUSE_IPSHIFT   8
124
125 #define CAUSE_EXCMASK   0x0000007C      /* Cause code bits */
126 #define CAUSE_EXCSHIFT  2
127
128 /*
129 * Status definition bits
130 */
131
132 #define SR_CUMASK       0xf0000000      /* coproc usable bits */
133 #define SR_CU3          0x80000000      /* Coprocessor 3 usable */
134 #define SR_CU2          0x40000000      /* Coprocessor 2 usable */
135 #define SR_CU1          0x20000000      /* Coprocessor 1 usable */
136 #define SR_CU0          0x10000000      /* Coprocessor 0 usable */
137 #define SR_NBL          0x08000000      /* Enables Non Blocking Load */
138 #define SR_RE           0x02000000      /* Reverse endian in user mode */
139 #define SR_DL           0x01000000      /* Data Cache Lock Enable      */ 
140 #define SR_IL           0x00800000      /* Instruction Cache Lock Enable */
141
142 #define SR_BEV          0x00400000      /* use boot exception vectors */
143 #define SR_SR           0x00100000      /* soft reset occurred */
144 #define SR_CE           0x00020000      /* use ECC reg */
145 #define SR_DE           0x00010000      /* disable cache errors */
146 #define SR_IMASK        0x0000ff00      /* Interrupt mask */
147 #define SR_IMASK8       0x00000000      /* mask level 8 */
148 #define SR_IMASK7       0x00008000      /* mask level 7 */
149 #define SR_IMASK6       0x0000c000      /* mask level 6 */
150 #define SR_IMASK5       0x0000e000      /* mask level 5 */
151 #define SR_IMASK4       0x0000f000      /* mask level 4 */
152 #define SR_IMASK3       0x0000f800      /* mask level 3 */
153 #define SR_IMASK2       0x0000fc00      /* mask level 2 */
154 #define SR_IMASK1       0x0000fe00      /* mask level 1 */
155 #define SR_IMASK0       0x0000ff00      /* mask level 0 */
156
157 #define SR_IBIT8        0x00008000      /* bit level 8 */
158 #define SR_IBIT7        0x00004000      /* bit level 7 */
159 #define SR_IBIT6        0x00002000      /* bit level 6 */
160 #define SR_IBIT5        0x00001000      /* bit level 5 */
161 #define SR_IBIT4        0x00000800      /* bit level 4 */
162 #define SR_IBIT3        0x00000400      /* bit level 3 */
163 #define SR_IBIT2        0x00000200      /* bit level 2 */
164 #define SR_IBIT1        0x00000100      /* bit level 1 */
165
166 #define SR_KSU_K        0x00000000      /* kernel mode */
167 #define SR_KSU_U        0x00000010      /* user mode */
168 #define SR_ERL          0x00000004      /* Error Level */
169 #define SR_EXL          0x00000002      /* Exception Level */
170 #define SR_IE           0x00000001      /* interrupt enable, 1 => enable */
171
172 #define SR_IMASKSHIFT   8
173
174 /*
175 * tlb definitions
176 */
177
178 #define TLB_ENTRIES             16
179 #define TLBLO_PFNMASK           0x03ffffc0
180 #define TLBLO_PFNSHIFT          6
181 #define TLBLO_CMASK             0x00000038
182 #define TLBLO_NC                0x00000010 /* uncached */
183 #define TLBLO_NONC              0x00000018 /* cacheable non-coherent */
184 #define TLBLO_D                 0x4             /* writeable */
185 #define TLBLO_V                 0x2             /* valid bit */
186 #define TLBLO_G                 0x1             /* global bit */
187
188 #define TLBHI_VPN2MASK          0xffffe000
189 #define TLBHI_VPN2SHIFT         13
190 #define TLBHI_PIDMASK           0xff
191 #define TLBHI_PIDSHIFT          0
192 #define TLBHI_NPID              256
193 #define TLBINX_PROBE            0x80000000
194 #define TLBINX_INXMASK          0x0000003f
195 #define TLBINX_INXSHIFT         0
196 #define TLBRAND_RANDMASK        0x0000000f
197 #define TLBRAND_RANDSHIFT       0
198 #define TLBCTXT_BASEMASK        0xff800000
199 #define TLBCTXT_BASESHIFT       23
200 #define TLBCTXT_VPN2MASK        0x007ffff0
201 #define TLBCTXT_VPN2SHIFT       4
202
203 /*
204  * RC32364 Config Register 
205  */
206 #define CFG_ICE         0x80000000      /* In Circuit Emulator existence */
207 #define CFG_ECMASK      0x70000000      /* System Clock Ratio */
208 #define CFG_ECBY2       0x00000000      /* divide by 2 */
209 #define CFG_ECBY3       0x10000000      /* divide by 3 */
210 #define CFG_ECBY4       0x20000000      /* divide by 4 */
211 #define CFG_NBL         0x00800000      /* Non Blocking load */
212 #define CFG_BE          0x00008000      /* Big Endian */
213 #define CFG_ICMASK      0x00000e00      /* Instruction cache size */
214 #define CFG_ICSHIFT     9
215 #define CFG_DCMASK      0x000001c0      /* Data cache size */
216 #define CFG_DCSHIFT     6
217 #define CFG_IB          0x00000020      /* Instruction cache block size */
218 #define CFG_DB          0x00000010      /* Data cache block size */
219 #define CFG_K0MASK      0x00000007      /* KSEG0 coherency algorithm */
220
221 /*
222  * Primary cache mode
223  */
224 #define CFG_C_UNCACHED          2
225 #define CFG_C_NONCOHERENT       3
226
227 /* 
228  * Primary Cache TagLo 
229  */
230 #define TAG_PTAG_MASK           0x7fffff00      /* Primary Tag */
231 #define TAG_PTAG_SHIFT          0x00000008
232 #define TAG_PSTATE_MASK         0x000000c0      /* Primary Cache State */
233 #define TAG_PSTATE_SHIFT        0x00000006
234 #define TAG_LOCK_BIT            0x00000004      /* Cache line lock bit */
235 #define TAG_LOCK_BIT_SHIFT      0x00000002
236 #define TAG_FIFO_REFILL         0x00000002      /* Fifo refill         */
237 #define TAG_FIFO_REFILL_SHIFT   0x00000001
238 #define TAG_PARITY_MASK         0x00000001      /* Primary Tag Parity */
239 #define TAG_PARITY_SHIFT        0x00000000
240
241
242
243 /*
244  * CacheErr register
245  */
246 #define CACHEERR_TYPE           0x80000000      /* reference type: 
247                                                    0=Instr, 1=Data */
248 #define CACHEERR_LEVEL          0x40000000      /* cache level:
249                                                    0=Primary, 1=reserved */
250 #define CACHEERR_DATA           0x20000000      /* data field:
251                                                    0=No error, 1=Error */
252 #define CACHEERR_TAG            0x10000000      /* tag field:
253                                                    0=No error, 1=Error */
254 #define CACHEERR_BOTH           0x02000000      /* Data & Instruction error:
255                                                    0=No, 1=Yes */
256 #define CACHEERR_SIDX_MASK      0x003ffff8      /* PADDR(21..3) */
257 #define CACHEERR_SIDX_SHIFT              3
258 #define CACHEERR_PIDX_MASK      0x00000003      /* VADDR(13..12) */
259 #define CACHEERR_PIDX_SHIFT             12      
260
261
262 /*
263  * Cache operations
264  */
265 #define Index_Invalidate_I               0x0         /* 0       0 */
266 #define Index_Writeback_Inv_D            0x1         /* 0       1 */
267 #define Index_Load_Tag_I                 0x4         /* 1       0 */
268 #define Index_Load_Tag_D                 0x5         /* 1       1 */
269 #define Index_Store_Tag_I                0x8         /* 2       0 */
270 #define Index_Store_Tag_D                0x9         /* 2       1 */
271 #define Create_Dirty_Exc_D               0xD         /* 3       1 */
272 #define Hit_Invalidate_I                 0x10        /* 4       0 */
273 #define Hit_Invalidate_D                 0x11        /* 4       1 */
274 #define Hit_Writeback_Inv_D              0x15        /* 5       1 */
275 #define Fill_I                           0x14        /* 5       0 */
276 #define Hit_Writeback_D                  0x19        /* 6       1 */
277 #define Hit_Writeback_I                  0x18        /* 6       0 */
278
279 /*
280 * Coprocessor 0 operations
281 */
282
283 #define C0_READI  0x1           /* read ITLB entry addressed by C0_INDEX */
284 #define C0_WRITEI 0x2           /* write ITLB entry addressed by C0_INDEX */
285 #define C0_WRITER 0x6           /* write ITLB entry addressed by C0_RAND */
286 #define C0_PROBE  0x8           /* probe for ITLB entry addressed by TLBHI */
287 #define C0_ERET   0x18          /* restore for exception */
288 #define FP_EXC_MASK     (FP_EXC_I|FP_EXC_U|FP_EXC_O|FP_EXC_Z|FP_EXC_V|FP_EXC_E)
289 #define FP_EXC_I        0x1000          /* inexact operation */
290 #define FP_EXC_U        0x2000          /* underflow */
291 #define FP_EXC_O        0x4000          /* overflow */
292 #define FP_EXC_Z        0x8000          /* divide by zero */
293 #define FP_EXC_V        0x10000         /* invalid operation */
294 #define FP_EXC_E        0x20000         /* unimplemented operation */
295
296                                                           
297 #define C0_INX        $0              /* Index into TLB Array - 4Kc core */
298 #define C0_RANDOM       $1              /* Randomly generated index into TLB Array - 4Kc core */
299 #define C0_TLBLO0     $2              /* Low-order portion of the TLB entry for even-numbered virtual pages - 4Kc core */
300 #define C0_TLBLO1     $3              /* Low-order portion of the TLB entry for odd-numbered virtual pages - 4Kc core */
301 #define C0_PAGEMASK     $5              /* Pointer to page table entry in memory - 4Kc core */
302 #define C0_WIRED        $6              /* Number of fixed TLB entries - 4Kc core */
303 #define C0_TLBHI      $10             /* High-order portion of the TLB entry - 4Kc core */
304 #define C0_PRId         $15             /* Processor Identification and Revision */
305 #define C0_CONFIG       $16             /* Configuration Register */
306 #define C0_LLADDR       $17             /* Load linked address */
307 #define C0_LLADDR       $17             /* Load linked address */
308 #define C0_DEBUG        $23             /* Debug control and exception status */
309 #define C0_DEPC         $24             /* Program counter at last debug exception */
310 #define C0_TAGLO        $28             /* Low-order portion of cache tag interface */
311 #define C0_TAGHI        $29             /* High-order portion of cache tag interface (not implemented in 4K cores */
312 #define C0_DESAVE       $31             /* Debug handler scratch pad register */
313
314
315
316
317 #define TARGET_S334
318 #define BUS                              0
319
320 #define PORT_WIDTH_CNTL_REG     0xffffe200
321 #define BUS_TURN_AROUND_REG     0xffffe204
322 #define BUS_TURN_AROUND_CNTRL_REG     0xb8000000
323 #define BUS_TURN_AROUND_VAL     0x00000000 
324
325 #define ADDRESS_LATCH_TIMING_REG        0xB8000004
326 #define ADDRESS_LATCH_TIMING_VAL        0x00000007
327
328 #define PORT_WIDTH_CNTL_VAL     0xaa822aaa
329 #define SDRAM_TEST_PATTERN      0xaa55aa55
330
331 /* RC32134 Register Settings               */
332 #define MEM_BASE_BASE           0xb8000080
333 #define MBA_REG0                0x1fc00000
334 #define MBM_REG0                0xffC00000
335
336
337 #define MEM_CTL_BASE            0xb8000200
338 #define MCR_CS0_BS              0x23ef23ef
339 #define MCR_CS1_BS              0x28632863
340 #define MCR_CS2_BS              0x60e760e7
341 #define MCR_CS3_BS              0x60e760e7  /* NVRAM    */
342 #define MCR_CS4_BS              0x60e760e7  /* S334 LED */
343 #define MCR_CS5_BS              0x60e760e7
344
345
346 #define RHEA_IREG_BASE          0xb8000000
347 #define SODIMM                     1
348
349 #define DRAM_BNK0_BASE          0x00000000
350 #define DRAM_BNK1_BASE          0x01000000
351 #define DRAM_BNK2_BASE          0x02000000
352 #define DRAM_BNK3_BASE          0x03000000
353 #define DRAM_BNK0_MASK          0xff000000
354 #define DRAM_BNK1_MASK          0xff000000
355 #define DRAM_BNK2_MASK          0xff000000
356 #define DRAM_BNK3_MASK          0xff000000
357 #define MBA_REG1                0x04000000
358 #define MBM_REG1                0xffff0000
359 #define SDRAM_CR_BS             0x8955c0ff
360 #define SDRAM_PC_VAL            0x8955c0a0
361 #define SDRAM_RFRSH_CMD         0x8955c090
362 #define SDRAM_MODE_REG          0x8955c080
363 #define SDRAM_CSEL_PARK         0x8955c0ff
364 #define TIMER_BASE              0xb8000700
365 #define DRAM_RF_CMPR_BS         0x00000040
366 #define DRAM_RF_CMPR_SE_BS      0x00000200
367 #define CPU_BERR_BS             0xff
368 #define IP_BERR_BS              0xff
369 #define DISABLE_TIMER           0x0
370 #define ENABLE_TIMER            0x1
371
372 #define CPU_CLOCK_RATE          75000000
373
374
375 /* define macro so drivers will call sysWbFlush() */
376
377 #define SYS_WB_FLUSH
378
379 /* task default status register */
380
381 #define INT_LVL_PCI        INT_LVL_IORQ1 
382 #define INT_LVL_SR_IMASK  (INT_LVL_PCI | INT_LVL_IORQ3 |\
383                            INT_LVL_SW0 | INT_LVL_SW1 )
384
385 #define RC32364_SR        (SR_CU0| INT_LVL_SR_IMASK |\
386                            INT_LVL_TIMER | SR_IE)
387
388 /* interrupt priority */
389
390 #define INT_PRIO_MSB       TRUE            /* interrupt priority msb highest */
391
392
393
394
395 /* Miscellaneous */
396
397 #define PIO_DATA_REG0         0xb8000600
398 #define PIO_FUNC_SELECT_REG0  0xb8000608
399 #define PIO_DATA_REG1         0xb8000610
400 #define PIO_DIRCNTL_REG1      0xb8000614
401 #define PIO_FUNC_SELECT_REG1  0xb8000618
402 #define CYG_MGMT_LED_MASK     0x00000008
403 #define CYG_STATUS_LED_MASK   0x00000003
404 #define CYG_TEST_LED1_MASK    0x00000002
405 #define CYG_TEST_LED2_MASK    0x00000004
406 #define CYG_STATUS_LED_GREEN  0x00000001
407 #define CYG_STATUS_LED_ORANGE 0x00000002
408
409
410
411
412 /* PIO definition for Internal Uart   */
413
414 #define PIO_DIRCNTL_REG         0xb8000604
415 #define PIO_FUNCSEL_MASK        0xf0
416 #define PIO_DIRCNTL_MASK        0xffffff0f
417 #define PIO_DIRCNTL_VAL         0x50
418
419
420 /* Serial grouping */
421
422 #define SERIAL_PORT0_GROUP              5
423 #define SERIAL_PORT1_GROUP              6
424
425 /* Rc32134 Interrupt controller settings for Uart */
426 #define INTR_STATUS_PTR         0xb8000500
427 #define INTR_MASK_REG           0xb8000504
428 #define INTR_CLEAR_REG          0xb8000508
429
430 #define INTR_COM0_REG           0xb8000554
431 #define INTR_COM1_REG           0xb8000564
432
433 #define INTR_CLEAR_COM0         0xb8000558
434 #define INTR_PEND_COM0          0xb8000550
435 #define INTR_CLEAR_COM1         0xb8000568
436 #define INTR_PEND_COM1          0xb8000560
437
438 #define INTR_CLEAR_MASTER       0xb8000508
439 #define INTR_PEND_MASTER        0xb8000500
440
441 #define INTR_MASTERMASK_COM1    0x0020
442 #define INTR_MASTERMASK_COM2    0x0040
443 #define INTR_MASTERMASK_UART    ( INTR_MASTERMASK_COM1 | INTR_MASTERMASK_COM2 )
444
445 /* Rc32134 Timer0(used as Auxiliary clock)interrupts */
446 #define AUX_TIMER_INTR_PEND     0xb8000540
447 #define AUX_TIMER_INTR_MASK     0xb8000544
448 #define AUX_TIMER_INTR_CLEAR    0xb8000548
449 #define INTR_MASTERMASK_TIMER0  0x0010
450 #define AUX_TIMER_CNTL_REG      0xb8000700
451 #define AUX_TIMER_CNT_REG       0xb8000704
452 #define AUX_TIMER_CMP_REG       0xb8000708
453
454 #define AUX_CLOCK_FREQ          (2 * NS16550_XTAL_FREQ)   
455
456 /* Rc32364 Tlb attributes for PCI transactions */
457 #define PCI_MMU_PAGEMASK         0x00000fff
458 #define MMU_PAGE_UNCACHED        0x00000010
459 #define MMU_PAGE_DIRTY           0x00000004
460 #define MMU_PAGE_VALID           0x00000002
461 #define MMU_PAGE_GLOBAL          0x00000001
462 #define PCI_MMU_PAGEATTRIB       (MMU_PAGE_UNCACHED|MMU_PAGE_DIRTY|\
463                                   MMU_PAGE_VALID|MMU_PAGE_GLOBAL)
464 #define PCI_MEMORY_SPACE1        0x40000000
465 #define PCI_MEMORY_SPACE2        0x60000000
466 #define PCI_IO_SPACE             0x18000000
467 #define PCI_PAGE_SIZE            0x01000000
468 #define TLB_HI_MASK              0xffffe000
469 #define TLB_LO_MASK              0x3fffffff
470 #define PAGEMASK_SHIFT                   13
471 #define TLB_LO_SHIFT                      6
472
473
474 /* RC32134 PCI definitions */
475 #define PCI_CONFIG_ADDR_REG      0xb8002cf8
476 #define PCI_CONFIG_DATA_REG      0xb8002cfc
477
478 /* Rhea's Configuration Address*/
479
480 #define RHEA_CONFIG0_ADDR        0x80000000
481 #define RHEA_CONFIG1_ADDR        0x80000004
482 #define RHEA_CONFIG2_ADDR        0x80000008
483 #define RHEA_CONFIG3_ADDR        0x8000000c
484 #define RHEA_CONFIG4_ADDR        0x80000010
485 #define RHEA_CONFIG5_ADDR        0x80000014
486 #define RHEA_CONFIG6_ADDR        0x80000018
487 #define RHEA_CONFIG7_ADDR        0x8000001c
488 #define RHEA_CONFIG8_ADDR        0x80000020
489 #define RHEA_CONFIG9_ADDR        0x80000024
490 #define RHEA_CONFIG10_ADDR       0x80000028
491 #define RHEA_CONFIG11_ADDR       0x8000002c
492 #define RHEA_CONFIG12_ADDR       0x80000030
493 #define RHEA_CONFIG13_ADDR       0x80000034
494 #define RHEA_CONFIG14_ADDR       0x80000038
495 #define RHEA_CONFIG15_ADDR       0x8000003c
496 #define RHEA_CONFIG16_ADDR       0x80000040
497
498 /* Rhea's configuration Header */
499
500 #define RHEA_PCI_CONFIG0       0x032410b5   /* Device ID & Vendor ID                        */
501 #define RHEA_PCI_CONFIG1       0x02a00157   /* Status & Command                             */
502 #define RHEA_PCI_CONFIG2       0x06800001   /* Class Code & Revision ID                     */
503 #define RHEA_PCI_CONFIG3       0x0000ff04   /* BIST, Header Type, Latency, & Cacheline Size */
504 #define RHEA_PCI_CONFIG4       0xa0000000   /* PCI Memory Address that Rhea responds to.    */
505 #define RHEA_PCI_CONFIG5       0x60000000   /* PCI Dual Cycle Address that Rhea responds to.*/
506 #define RHEA_PCI_CONFIG6       0x00800001   /* PCI I/O Address that Rhea responds to.       */
507 #define RHEA_PCI_CONFIG7       0x00000000
508 #define RHEA_PCI_CONFIG8       0x00000000
509 #define RHEA_PCI_CONFIG9       0x00000000
510 #define RHEA_PCI_CONFIG10      0x00000000
511 #define RHEA_PCI_CONFIG11      0x013410b5
512 #define RHEA_PCI_CONFIG12      0x00000000
513 #define RHEA_PCI_CONFIG13      0x00000000
514 #define RHEA_PCI_CONFIG14      0x00000000
515 #define RHEA_PCI_CONFIG15      0x38080101
516
517 /* Because of an errata in Rc32134 Pci Bridge, Scanning does not work properly.
518    The device number is selected based on which pci slot on S134 board is being
519    used */
520
521 #define PCI_BUS                         0
522 #define PCI_DEVICE_U28                  2      /* PCI Slot U28 */
523 #define PCI_DEVICE_U29                  3      /* PCI Slot U29 */
524 #define PCI_DEVICE_U20                  4      /* PCI Slot U20 */
525 #define PCI_FUNC                        0
526
527 /* Latency for the Pci/Ethernet Card   */
528
529 #define PCI_DEVICE_MAX_LATENCY          0x0000ff00
530 /* BusErrCntReg is used to disable/Enable BusError thrown on PCI
531    bus on scanning */
532 #define BUS_ERR_CNTL_REG_ADDR           0xb8000010
533
534
535
536
537 /* FEI PCI bus resources */
538
539 #define FEI_IO_MAP_USE
540 #define FEI_OFFSET_ADD
541 #define FEI0_MEMBASE0           0x40800000      /* memory base for CSR */
542 #define FEI0_MEMSIZE0           0x00001000      /* memory size for CSR, 4KB */
543 #define FEI0_MEMBASE1           0x40a00000      /* memory base for Flash */
544 #define FEI0_MEMSIZE1           0x00100000      /* memory size for Flash, 1MB */
545 #define FEI0_IOBASE0            0x18800000      /* IO base for CSR, 32Bytes */
546 #define FEI0_INT_LVL            0x1             /* IRQ 1                    */
547
548 #define PCI_CFG_TYPE            PCI_CFG_FORCE
549
550 /* Redefine PCI_CONFIG_ADDR & PCI_CONFIG_DATA */
551
552 #define CPU_TO_PCI_MEM_BASE     0x40000001
553 #define CPU_TO_PCI_IO_BASE      0x18800001
554 #define PCI_TO_CPU_MEM_BASE     0x00000000
555 #define PCI_TO_CPU_IO_BASE      0x00800001
556
557 #define IDT134_PCI_BASE         0xb8000000
558
559 #define IDT134_PCI_MEM_BAR1     (IDT134_PCI_BASE + 0x20B0)
560 #define IDT134_PCI_MEM_BAR2     (IDT134_PCI_BASE + 0x20B8)
561 #define IDT134_PCI_MEM_BAR3     (IDT134_PCI_BASE + 0x20C0)
562 #define IDT134_PCI_IO_BAR       (IDT134_PCI_BASE + 0x20C8)
563 #define IDT134_PCI_ARB_REG      (IDT134_PCI_BASE + 0x20E0)
564 #define IDT134_PCI_CPU_BAR1     (IDT134_PCI_BASE + 0x20E8)
565 #define IDT134_PCI_CPU_IO_BAR   (IDT134_PCI_BASE + 0x2100)
566 #define IDT134_PCI_CONFIG_ADDR  (IDT134_PCI_BASE + 0x2CF8)
567 #define IDT134_PCI_CONFIG_DATA  (IDT134_PCI_BASE + 0x2CFC)
568
569 #define IDT134_BAR_MEM_SWAP     0x00000001
570
571                                                           
572 #endif /* CYGONCE_HAL_IDT79RC233X_H */
573 /*---------------------------------------------------------------------------*/
574 /* end of idt79rc233x.h                                                      */