[kernel] add simple prom emulator to 2.6.2{7,8} as well
[openwrt.git] / target / linux / rb532 / files-2.6.24 / include / asm-mips / rc32434 / pci.h
1 /**************************************************************************
2 *
3 * BRIEF MODULE DESCRIPTION
4 * PCI register definitio
5 *
6 * Copyright 2004 IDT Inc. (rischelp@idt.com)
7 *
8 * This program is free software; you can redistribute it and/or modify it
9 * under the terms of the GNU General Public License as published by the
10 * Free Software Foundation; either version 2 of the License, or (at your
11 * option) any later version.
12 *
13 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
14 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
15 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
16 * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
17 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
18 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
19 * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
20 * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
21 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
22 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
23 *
24 * You should have received a copy of the GNU General Public License along
25 * with this program; if not, write to the Free Software Foundation, Inc.,
26 * 675 Mass Ave, Cambridge, MA 02139, USA.
27 *
28 *
29 **************************************************************************
30 * May 2004 rkt, neb.
31 *
32 * Initial Release
33 *
34 *
35 *
36 **************************************************************************
37 */
38
39 #ifndef __IDT_PCI_H__
40 #define __IDT_PCI_H__
41
42 enum
43 {
44 PCI0_PhysicalAddress = 0x18080000,
45 PCI_PhysicalAddress = PCI0_PhysicalAddress,
46
47 PCI0_VirtualAddress = 0xB8080000,
48 PCI_VirtualAddress = PCI0_VirtualAddress,
49 } ;
50
51 enum
52 {
53 PCI_LbaCount = 4, // Local base addresses.
54 } ;
55
56 typedef struct
57 {
58 u32 a ; // Address.
59 u32 c ; // Control.
60 u32 m ; // mapping.
61 } PCI_Map_s ;
62
63 typedef struct
64 {
65 u32 pcic ;
66 u32 pcis ;
67 u32 pcism ;
68 u32 pcicfga ;
69 u32 pcicfgd ;
70 PCI_Map_s pcilba [PCI_LbaCount] ;
71 u32 pcidac ;
72 u32 pcidas ;
73 u32 pcidasm ;
74 u32 pcidad ;
75 u32 pcidma8c ;
76 u32 pcidma9c ;
77 u32 pcitc ;
78 } volatile *PCI_t ;
79
80 // PCI messaging unit.
81 enum
82 {
83 PCIM_Count = 2,
84 } ;
85 typedef struct
86 {
87 u32 pciim [PCIM_Count] ;
88 u32 pciom [PCIM_Count] ;
89 u32 pciid ;
90 u32 pciiic ;
91 u32 pciiim ;
92 u32 pciiod ;
93 u32 pciioic ;
94 u32 pciioim ;
95 } volatile *PCIM_t ;
96
97 /*******************************************************************************
98 *
99 * PCI Control Register
100 *
101 ******************************************************************************/
102 enum
103 {
104 PCIC_en_b = 0,
105 PCIC_en_m = 0x00000001,
106 PCIC_tnr_b = 1,
107 PCIC_tnr_m = 0x00000002,
108 PCIC_sce_b = 2,
109 PCIC_sce_m = 0x00000004,
110 PCIC_ien_b = 3,
111 PCIC_ien_m = 0x00000008,
112 PCIC_aaa_b = 4,
113 PCIC_aaa_m = 0x00000010,
114 PCIC_eap_b = 5,
115 PCIC_eap_m = 0x00000020,
116 PCIC_pcim_b = 6,
117 PCIC_pcim_m = 0x000001c0,
118 PCIC_pcim_disabled_v = 0,
119 PCIC_pcim_tnr_v = 1, // Satellite - target not ready
120 PCIC_pcim_suspend_v = 2, // Satellite - suspended CPU.
121 PCIC_pcim_extern_v = 3, // Host - external arbiter.
122 PCIC_pcim_fixed_v = 4, // Host - fixed priority arb.
123 PCIC_pcim_roundrobin_v = 5, // Host - round robin priority.
124 PCIC_pcim_reserved6_v = 6,
125 PCIC_pcim_reserved7_v = 7,
126 PCIC_igm_b = 9,
127 PCIC_igm_m = 0x00000200,
128 } ;
129
130 /*******************************************************************************
131 *
132 * PCI Status Register
133 *
134 ******************************************************************************/
135 enum {
136 PCIS_eed_b = 0,
137 PCIS_eed_m = 0x00000001,
138 PCIS_wr_b = 1,
139 PCIS_wr_m = 0x00000002,
140 PCIS_nmi_b = 2,
141 PCIS_nmi_m = 0x00000004,
142 PCIS_ii_b = 3,
143 PCIS_ii_m = 0x00000008,
144 PCIS_cwe_b = 4,
145 PCIS_cwe_m = 0x00000010,
146 PCIS_cre_b = 5,
147 PCIS_cre_m = 0x00000020,
148 PCIS_mdpe_b = 6,
149 PCIS_mdpe_m = 0x00000040,
150 PCIS_sta_b = 7,
151 PCIS_sta_m = 0x00000080,
152 PCIS_rta_b = 8,
153 PCIS_rta_m = 0x00000100,
154 PCIS_rma_b = 9,
155 PCIS_rma_m = 0x00000200,
156 PCIS_sse_b = 10,
157 PCIS_sse_m = 0x00000400,
158 PCIS_ose_b = 11,
159 PCIS_ose_m = 0x00000800,
160 PCIS_pe_b = 12,
161 PCIS_pe_m = 0x00001000,
162 PCIS_tae_b = 13,
163 PCIS_tae_m = 0x00002000,
164 PCIS_rle_b = 14,
165 PCIS_rle_m = 0x00004000,
166 PCIS_bme_b = 15,
167 PCIS_bme_m = 0x00008000,
168 PCIS_prd_b = 16,
169 PCIS_prd_m = 0x00010000,
170 PCIS_rip_b = 17,
171 PCIS_rip_m = 0x00020000,
172 } ;
173
174 /*******************************************************************************
175 *
176 * PCI Status Mask Register
177 *
178 ******************************************************************************/
179 enum {
180 PCISM_eed_b = 0,
181 PCISM_eed_m = 0x00000001,
182 PCISM_wr_b = 1,
183 PCISM_wr_m = 0x00000002,
184 PCISM_nmi_b = 2,
185 PCISM_nmi_m = 0x00000004,
186 PCISM_ii_b = 3,
187 PCISM_ii_m = 0x00000008,
188 PCISM_cwe_b = 4,
189 PCISM_cwe_m = 0x00000010,
190 PCISM_cre_b = 5,
191 PCISM_cre_m = 0x00000020,
192 PCISM_mdpe_b = 6,
193 PCISM_mdpe_m = 0x00000040,
194 PCISM_sta_b = 7,
195 PCISM_sta_m = 0x00000080,
196 PCISM_rta_b = 8,
197 PCISM_rta_m = 0x00000100,
198 PCISM_rma_b = 9,
199 PCISM_rma_m = 0x00000200,
200 PCISM_sse_b = 10,
201 PCISM_sse_m = 0x00000400,
202 PCISM_ose_b = 11,
203 PCISM_ose_m = 0x00000800,
204 PCISM_pe_b = 12,
205 PCISM_pe_m = 0x00001000,
206 PCISM_tae_b = 13,
207 PCISM_tae_m = 0x00002000,
208 PCISM_rle_b = 14,
209 PCISM_rle_m = 0x00004000,
210 PCISM_bme_b = 15,
211 PCISM_bme_m = 0x00008000,
212 PCISM_prd_b = 16,
213 PCISM_prd_m = 0x00010000,
214 PCISM_rip_b = 17,
215 PCISM_rip_m = 0x00020000,
216 } ;
217
218 /*******************************************************************************
219 *
220 * PCI Configuration Address Register
221 *
222 ******************************************************************************/
223 enum {
224 PCICFGA_reg_b = 2,
225 PCICFGA_reg_m = 0x000000fc,
226 PCICFGA_reg_id_v = 0x00>>2, //use PCFGID_
227 PCICFGA_reg_04_v = 0x04>>2, //use PCFG04_
228 PCICFGA_reg_08_v = 0x08>>2, //use PCFG08_
229 PCICFGA_reg_0C_v = 0x0C>>2, //use PCFG0C_
230 PCICFGA_reg_pba0_v = 0x10>>2, //use PCIPBA_
231 PCICFGA_reg_pba1_v = 0x14>>2, //use PCIPBA_
232 PCICFGA_reg_pba2_v = 0x18>>2, //use PCIPBA_
233 PCICFGA_reg_pba3_v = 0x1c>>2, //use PCIPBA_
234 PCICFGA_reg_subsystem_v = 0x2c>>2, //use PCFGSS_
235 PCICFGA_reg_3C_v = 0x3C>>2, //use PCFG3C_
236 PCICFGA_reg_pba0c_v = 0x44>>2, //use PCIPBAC_
237 PCICFGA_reg_pba0m_v = 0x48>>2,
238 PCICFGA_reg_pba1c_v = 0x4c>>2, //use PCIPBAC_
239 PCICFGA_reg_pba1m_v = 0x50>>2,
240 PCICFGA_reg_pba2c_v = 0x54>>2, //use PCIPBAC_
241 PCICFGA_reg_pba2m_v = 0x58>>2,
242 PCICFGA_reg_pba3c_v = 0x5c>>2, //use PCIPBAC_
243 PCICFGA_reg_pba3m_v = 0x60>>2,
244 PCICFGA_reg_pmgt_v = 0x64>>2,
245 PCICFGA_func_b = 8,
246 PCICFGA_func_m = 0x00000700,
247 PCICFGA_dev_b = 11,
248 PCICFGA_dev_m = 0x0000f800,
249 PCICFGA_dev_internal_v = 0,
250 PCICFGA_bus_b = 16,
251 PCICFGA_bus_m = 0x00ff0000,
252 PCICFGA_bus_type0_v = 0, //local bus
253 PCICFGA_en_b = 31, // read only
254 PCICFGA_en_m = 0x80000000,
255 } ;
256
257 enum {
258 PCFGID_vendor_b = 0,
259 PCFGID_vendor_m = 0x0000ffff,
260 PCFGID_vendor_IDT_v = 0x111d,
261 PCFGID_device_b = 16,
262 PCFGID_device_m = 0xffff0000,
263 PCFGID_device_Korinade_v = 0x0214,
264
265 PCFG04_command_ioena_b = 1,
266 PCFG04_command_ioena_m = 0x00000001,
267 PCFG04_command_memena_b = 2,
268 PCFG04_command_memena_m = 0x00000002,
269 PCFG04_command_bmena_b = 3,
270 PCFG04_command_bmena_m = 0x00000004,
271 PCFG04_command_mwinv_b = 5,
272 PCFG04_command_mwinv_m = 0x00000010,
273 PCFG04_command_parena_b = 7,
274 PCFG04_command_parena_m = 0x00000040,
275 PCFG04_command_serrena_b = 9,
276 PCFG04_command_serrena_m = 0x00000100,
277 PCFG04_command_fastbbena_b = 10,
278 PCFG04_command_fastbbena_m = 0x00000200,
279 PCFG04_status_b = 16,
280 PCFG04_status_m = 0xffff0000,
281 PCFG04_status_66MHz_b = 21, // 66 MHz enable
282 PCFG04_status_66MHz_m = 0x00200000,
283 PCFG04_status_fbb_b = 23,
284 PCFG04_status_fbb_m = 0x00800000,
285 PCFG04_status_mdpe_b = 24,
286 PCFG04_status_mdpe_m = 0x01000000,
287 PCFG04_status_dst_b = 25,
288 PCFG04_status_dst_m = 0x06000000,
289 PCFG04_status_sta_b = 27,
290 PCFG04_status_sta_m = 0x08000000,
291 PCFG04_status_rta_b = 28,
292 PCFG04_status_rta_m = 0x10000000,
293 PCFG04_status_rma_b = 29,
294 PCFG04_status_rma_m = 0x20000000,
295 PCFG04_status_sse_b = 30,
296 PCFG04_status_sse_m = 0x40000000,
297 PCFG04_status_pe_b = 31,
298 PCFG04_status_pe_m = 0x40000000,
299
300 PCFG08_revId_b = 0,
301 PCFG08_revId_m = 0x000000ff,
302 PCFG08_classCode_b = 0,
303 PCFG08_classCode_m = 0xffffff00,
304 PCFG08_classCode_bridge_v = 06,
305 PCFG08_classCode_proc_v = 0x0b3000, // processor-MIPS
306 PCFG0C_cacheline_b = 0,
307 PCFG0C_cacheline_m = 0x000000ff,
308 PCFG0C_masterLatency_b = 8,
309 PCFG0C_masterLatency_m = 0x0000ff00,
310 PCFG0C_headerType_b = 16,
311 PCFG0C_headerType_m = 0x00ff0000,
312 PCFG0C_bist_b = 24,
313 PCFG0C_bist_m = 0xff000000,
314
315 PCIPBA_msi_b = 0,
316 PCIPBA_msi_m = 0x00000001,
317 PCIPBA_p_b = 3,
318 PCIPBA_p_m = 0x00000004,
319 PCIPBA_baddr_b = 8,
320 PCIPBA_baddr_m = 0xffffff00,
321
322 PCFGSS_vendorId_b = 0,
323 PCFGSS_vendorId_m = 0x0000ffff,
324 PCFGSS_id_b = 16,
325 PCFGSS_id_m = 0xffff0000,
326
327 PCFG3C_interruptLine_b = 0,
328 PCFG3C_interruptLine_m = 0x000000ff,
329 PCFG3C_interruptPin_b = 8,
330 PCFG3C_interruptPin_m = 0x0000ff00,
331 PCFG3C_minGrant_b = 16,
332 PCFG3C_minGrant_m = 0x00ff0000,
333 PCFG3C_maxLat_b = 24,
334 PCFG3C_maxLat_m = 0xff000000,
335
336 PCIPBAC_msi_b = 0,
337 PCIPBAC_msi_m = 0x00000001,
338 PCIPBAC_p_b = 1,
339 PCIPBAC_p_m = 0x00000002,
340 PCIPBAC_size_b = 2,
341 PCIPBAC_size_m = 0x0000007c,
342 PCIPBAC_sb_b = 7,
343 PCIPBAC_sb_m = 0x00000080,
344 PCIPBAC_pp_b = 8,
345 PCIPBAC_pp_m = 0x00000100,
346 PCIPBAC_mr_b = 9,
347 PCIPBAC_mr_m = 0x00000600,
348 PCIPBAC_mr_read_v =0, //no prefetching
349 PCIPBAC_mr_readLine_v =1,
350 PCIPBAC_mr_readMult_v =2,
351 PCIPBAC_mrl_b = 11,
352 PCIPBAC_mrl_m = 0x00000800,
353 PCIPBAC_mrm_b = 12,
354 PCIPBAC_mrm_m = 0x00001000,
355 PCIPBAC_trp_b = 13,
356 PCIPBAC_trp_m = 0x00002000,
357
358 PCFG40_trdyTimeout_b = 0,
359 PCFG40_trdyTimeout_m = 0x000000ff,
360 PCFG40_retryLim_b = 8,
361 PCFG40_retryLim_m = 0x0000ff00,
362 };
363
364 /*******************************************************************************
365 *
366 * PCI Local Base Address [0|1|2|3] Register
367 *
368 ******************************************************************************/
369 enum {
370 PCILBA_baddr_b = 0, // In PCI_t -> pcilba [] .a
371 PCILBA_baddr_m = 0xffffff00,
372 } ;
373 /*******************************************************************************
374 *
375 * PCI Local Base Address Control Register
376 *
377 ******************************************************************************/
378 enum {
379 PCILBAC_msi_b = 0, // In pPci->pcilba[i].c
380 PCILBAC_msi_m = 0x00000001,
381 PCILBAC_msi_mem_v = 0,
382 PCILBAC_msi_io_v = 1,
383 PCILBAC_size_b = 2, // In pPci->pcilba[i].c
384 PCILBAC_size_m = 0x0000007c,
385 PCILBAC_sb_b = 7, // In pPci->pcilba[i].c
386 PCILBAC_sb_m = 0x00000080,
387 PCILBAC_rt_b = 8, // In pPci->pcilba[i].c
388 PCILBAC_rt_m = 0x00000100,
389 PCILBAC_rt_noprefetch_v = 0, // mem read
390 PCILBAC_rt_prefetch_v = 1, // mem readline
391 } ;
392
393 /*******************************************************************************
394 *
395 * PCI Local Base Address [0|1|2|3] Mapping Register
396 *
397 ******************************************************************************/
398 enum {
399 PCILBAM_maddr_b = 8,
400 PCILBAM_maddr_m = 0xffffff00,
401 } ;
402
403 /*******************************************************************************
404 *
405 * PCI Decoupled Access Control Register
406 *
407 ******************************************************************************/
408 enum {
409 PCIDAC_den_b = 0,
410 PCIDAC_den_m = 0x00000001,
411 } ;
412
413 /*******************************************************************************
414 *
415 * PCI Decoupled Access Status Register
416 *
417 ******************************************************************************/
418 enum {
419 PCIDAS_d_b = 0,
420 PCIDAS_d_m = 0x00000001,
421 PCIDAS_b_b = 1,
422 PCIDAS_b_m = 0x00000002,
423 PCIDAS_e_b = 2,
424 PCIDAS_e_m = 0x00000004,
425 PCIDAS_ofe_b = 3,
426 PCIDAS_ofe_m = 0x00000008,
427 PCIDAS_off_b = 4,
428 PCIDAS_off_m = 0x00000010,
429 PCIDAS_ife_b = 5,
430 PCIDAS_ife_m = 0x00000020,
431 PCIDAS_iff_b = 6,
432 PCIDAS_iff_m = 0x00000040,
433 } ;
434
435 /*******************************************************************************
436 *
437 * PCI DMA Channel 8 Configuration Register
438 *
439 ******************************************************************************/
440 enum
441 {
442 PCIDMA8C_mbs_b = 0, // Maximum Burst Size.
443 PCIDMA8C_mbs_m = 0x00000fff, // { pcidma8c }
444 PCIDMA8C_our_b = 12, // Optimize Unaligned Burst Reads.
445 PCIDMA8C_our_m = 0x00001000, // { pcidma8c }
446 } ;
447
448 /*******************************************************************************
449 *
450 * PCI DMA Channel 9 Configuration Register
451 *
452 ******************************************************************************/
453 enum
454 {
455 PCIDMA9C_mbs_b = 0, // Maximum Burst Size.
456 PCIDMA9C_mbs_m = 0x00000fff, // { pcidma9c }
457 } ;
458
459 /*******************************************************************************
460 *
461 * PCI to Memory(DMA Channel 8) AND Memory to PCI DMA(DMA Channel 9)Descriptors
462 *
463 ******************************************************************************/
464 enum {
465 PCIDMAD_pt_b = 22, // in DEVCMD field (descriptor)
466 PCIDMAD_pt_m = 0x00c00000, // preferred transaction field
467 // These are for reads (DMA channel 8)
468 PCIDMAD_devcmd_mr_v = 0, //memory read
469 PCIDMAD_devcmd_mrl_v = 1, //memory read line
470 PCIDMAD_devcmd_mrm_v = 2, //memory read multiple
471 PCIDMAD_devcmd_ior_v = 3, //I/O read
472 // These are for writes (DMA channel 9)
473 PCIDMAD_devcmd_mw_v = 0, //memory write
474 PCIDMAD_devcmd_mwi_v = 1, //memory write invalidate
475 PCIDMAD_devcmd_iow_v = 3, //I/O write
476
477 // Swap byte field applies to both DMA channel 8 and 9
478 PCIDMAD_sb_b = 24, // in DEVCMD field (descriptor)
479 PCIDMAD_sb_m = 0x01000000, // swap byte field
480 } ;
481
482
483 /*******************************************************************************
484 *
485 * PCI Target Control Register
486 *
487 ******************************************************************************/
488 enum
489 {
490 PCITC_rtimer_b = 0, // In PCITC_t -> pcitc
491 PCITC_rtimer_m = 0x000000ff,
492 PCITC_dtimer_b = 8, // In PCITC_t -> pcitc
493 PCITC_dtimer_m = 0x0000ff00,
494 PCITC_rdr_b = 18, // In PCITC_t -> pcitc
495 PCITC_rdr_m = 0x00040000,
496 PCITC_ddt_b = 19, // In PCITC_t -> pcitc
497 PCITC_ddt_m = 0x00080000,
498 } ;
499 /*******************************************************************************
500 *
501 * PCI messaging unit [applies to both inbound and outbound registers ]
502 *
503 ******************************************************************************/
504 enum
505 {
506 PCIM_m0_b = 0, // In PCIM_t -> {pci{iic,iim,ioic,ioim}}
507 PCIM_m0_m = 0x00000001, // inbound or outbound message 0
508 PCIM_m1_b = 1, // In PCIM_t -> {pci{iic,iim,ioic,ioim}}
509 PCIM_m1_m = 0x00000002, // inbound or outbound message 1
510 PCIM_db_b = 2, // In PCIM_t -> {pci{iic,iim,ioic,ioim}}
511 PCIM_db_m = 0x00000004, // inbound or outbound doorbell
512 };
513
514
515
516
517
518
519 #define PCI_MSG_VirtualAddress 0xB8088010
520 #define rc32434_pci ((volatile PCI_t) PCI0_VirtualAddress)
521 #define rc32434_pci_msg ((volatile PCIM_t) PCI_MSG_VirtualAddress)
522
523 #define PCIM_SHFT 0x6
524 #define PCIM_BIT_LEN 0x7
525 #define PCIM_H_EA 0x3
526 #define PCIM_H_IA_FIX 0x4
527 #define PCIM_H_IA_RR 0x5
528
529 #define PCI_ADDR_START 0x50000000
530
531 #define CPUTOPCI_MEM_WIN 0x02000000
532 #define CPUTOPCI_IO_WIN 0x00100000
533 #define PCILBA_SIZE_SHFT 2
534 #define PCILBA_SIZE_MASK 0x1F
535 #define SIZE_256MB 0x1C
536 #define SIZE_128MB 0x1B
537 #define SIZE_64MB 0x1A
538 #define SIZE_32MB 0x19
539 #define SIZE_16MB 0x18
540 #define SIZE_4MB 0x16
541 #define SIZE_2MB 0x15
542 #define SIZE_1MB 0x14
543 #define KORINA_CONFIG0_ADDR 0x80000000
544 #define KORINA_CONFIG1_ADDR 0x80000004
545 #define KORINA_CONFIG2_ADDR 0x80000008
546 #define KORINA_CONFIG3_ADDR 0x8000000C
547 #define KORINA_CONFIG4_ADDR 0x80000010
548 #define KORINA_CONFIG5_ADDR 0x80000014
549 #define KORINA_CONFIG6_ADDR 0x80000018
550 #define KORINA_CONFIG7_ADDR 0x8000001C
551 #define KORINA_CONFIG8_ADDR 0x80000020
552 #define KORINA_CONFIG9_ADDR 0x80000024
553 #define KORINA_CONFIG10_ADDR 0x80000028
554 #define KORINA_CONFIG11_ADDR 0x8000002C
555 #define KORINA_CONFIG12_ADDR 0x80000030
556 #define KORINA_CONFIG13_ADDR 0x80000034
557 #define KORINA_CONFIG14_ADDR 0x80000038
558 #define KORINA_CONFIG15_ADDR 0x8000003C
559 #define KORINA_CONFIG16_ADDR 0x80000040
560 #define KORINA_CONFIG17_ADDR 0x80000044
561 #define KORINA_CONFIG18_ADDR 0x80000048
562 #define KORINA_CONFIG19_ADDR 0x8000004C
563 #define KORINA_CONFIG20_ADDR 0x80000050
564 #define KORINA_CONFIG21_ADDR 0x80000054
565 #define KORINA_CONFIG22_ADDR 0x80000058
566 #define KORINA_CONFIG23_ADDR 0x8000005C
567 #define KORINA_CONFIG24_ADDR 0x80000060
568 #define KORINA_CONFIG25_ADDR 0x80000064
569 #define KORINA_CMD (PCFG04_command_ioena_m | \
570 PCFG04_command_memena_m | \
571 PCFG04_command_bmena_m | \
572 PCFG04_command_mwinv_m | \
573 PCFG04_command_parena_m | \
574 PCFG04_command_serrena_m )
575
576 #define KORINA_STAT (PCFG04_status_mdpe_m | \
577 PCFG04_status_sta_m | \
578 PCFG04_status_rta_m | \
579 PCFG04_status_rma_m | \
580 PCFG04_status_sse_m | \
581 PCFG04_status_pe_m)
582
583 #define KORINA_CNFG1 ((KORINA_STAT<<16)|KORINA_CMD)
584
585 #define KORINA_REVID 0
586 #define KORINA_CLASS_CODE 0
587 #define KORINA_CNFG2 ((KORINA_CLASS_CODE<<8) | \
588 KORINA_REVID)
589
590 #define KORINA_CACHE_LINE_SIZE 4
591 #define KORINA_MASTER_LAT 0x3c
592 #define KORINA_HEADER_TYPE 0
593 #define KORINA_BIST 0
594
595 #define KORINA_CNFG3 ((KORINA_BIST << 24) | \
596 (KORINA_HEADER_TYPE<<16) | \
597 (KORINA_MASTER_LAT<<8) | \
598 KORINA_CACHE_LINE_SIZE )
599
600 #define KORINA_BAR0 0x00000008 /* 128 MB Memory */
601 #define KORINA_BAR1 0x18800001 /* 1 MB IO */
602 #define KORINA_BAR2 0x18000001 /* 2 MB IO window for Korina
603 internal Registers */
604 #define KORINA_BAR3 0x48000008 /* Spare 128 MB Memory */
605
606 #define KORINA_CNFG4 KORINA_BAR0
607 #define KORINA_CNFG5 KORINA_BAR1
608 #define KORINA_CNFG6 KORINA_BAR2
609 #define KORINA_CNFG7 KORINA_BAR3
610
611 #define KORINA_SUBSYS_VENDOR_ID 0x011d
612 #define KORINA_SUBSYSTEM_ID 0x0214
613 #define KORINA_CNFG8 0
614 #define KORINA_CNFG9 0
615 #define KORINA_CNFG10 0
616 #define KORINA_CNFG11 ((KORINA_SUBSYS_VENDOR_ID<<16) | \
617 KORINA_SUBSYSTEM_ID)
618 #define KORINA_INT_LINE 1
619 #define KORINA_INT_PIN 1
620 #define KORINA_MIN_GNT 8
621 #define KORINA_MAX_LAT 0x38
622 #define KORINA_CNFG12 0
623 #define KORINA_CNFG13 0
624 #define KORINA_CNFG14 0
625 #define KORINA_CNFG15 ((KORINA_MAX_LAT<<24) | \
626 (KORINA_MIN_GNT<<16) | \
627 (KORINA_INT_PIN<<8) | \
628 KORINA_INT_LINE)
629 #define KORINA_RETRY_LIMIT 0x80
630 #define KORINA_TRDY_LIMIT 0x80
631 #define KORINA_CNFG16 ((KORINA_RETRY_LIMIT<<8) | \
632 KORINA_TRDY_LIMIT)
633 #define PCI_PBAxC_R 0x0
634 #define PCI_PBAxC_RL 0x1
635 #define PCI_PBAxC_RM 0x2
636 #define SIZE_SHFT 2
637
638 #if defined(__MIPSEB__)
639 #define KORINA_PBA0C ( PCIPBAC_mrl_m | PCIPBAC_sb_m | \
640 ((PCI_PBAxC_RM &0x3) << PCIPBAC_mr_b) | \
641 PCIPBAC_pp_m | \
642 (SIZE_128MB<<SIZE_SHFT) | \
643 PCIPBAC_p_m)
644 #else
645 #define KORINA_PBA0C ( PCIPBAC_mrl_m | \
646 ((PCI_PBAxC_RM &0x3) << PCIPBAC_mr_b) | \
647 PCIPBAC_pp_m | \
648 (SIZE_128MB<<SIZE_SHFT) | \
649 PCIPBAC_p_m)
650 #endif
651 #define KORINA_CNFG17 KORINA_PBA0C
652 #define KORINA_PBA0M 0x0
653 #define KORINA_CNFG18 KORINA_PBA0M
654
655 #if defined(__MIPSEB__)
656 #define KORINA_PBA1C ((SIZE_1MB<<SIZE_SHFT) | PCIPBAC_sb_m | \
657 PCIPBAC_msi_m)
658 #else
659 #define KORINA_PBA1C ((SIZE_1MB<<SIZE_SHFT) | \
660 PCIPBAC_msi_m)
661 #endif
662 #define KORINA_CNFG19 KORINA_PBA1C
663 #define KORINA_PBA1M 0x0
664 #define KORINA_CNFG20 KORINA_PBA1M
665
666 #if defined(__MIPSEB__)
667 #define KORINA_PBA2C ((SIZE_2MB<<SIZE_SHFT) | PCIPBAC_sb_m | \
668 PCIPBAC_msi_m)
669 #else
670 #define KORINA_PBA2C ((SIZE_2MB<<SIZE_SHFT) | \
671 PCIPBAC_msi_m)
672 #endif
673 #define KORINA_CNFG21 KORINA_PBA2C
674 #define KORINA_PBA2M 0x18000000
675 #define KORINA_CNFG22 KORINA_PBA2M
676 #define KORINA_PBA3C 0
677 #define KORINA_CNFG23 KORINA_PBA3C
678 #define KORINA_PBA3M 0
679 #define KORINA_CNFG24 KORINA_PBA3M
680
681
682
683 #define PCITC_DTIMER_VAL 8
684 #define PCITC_RTIMER_VAL 0x10
685
686
687
688
689 #endif // __IDT_PCI_H__
690
691
692
This page took 0.073647 seconds and 5 git commands to generate.