2 * arch/ppc/syslib/mv64x60_win.c
4 * Tables with info on how to manipulate the 32 & 64 bit windows on the
5 * various types of Marvell bridge chips.
7 * Author: Mark A. Greer <mgreer@mvista.com>
9 * 2004 (c) MontaVista, Software, Inc. This file is licensed under
10 * the terms of the GNU General Public License version 2. This program
11 * is licensed "as is" without any warranty of any kind, whether express
14 #include <linux/kernel.h>
15 #include <linux/init.h>
16 #include <linux/pci.h>
17 #include <linux/slab.h>
18 #include <linux/module.h>
19 #include <linux/string.h>
20 #include <linux/bootmem.h>
21 #include <linux/mv643xx.h>
23 #include <asm/byteorder.h>
26 #include <asm/uaccess.h>
27 #include <asm/machdep.h>
28 #include <asm/pci-bridge.h>
29 #include <asm/delay.h>
30 #include <asm/mv64x60.h>
34 *****************************************************************************
36 * Tables describing how to set up windows on each type of bridge
38 *****************************************************************************
40 struct mv64x60_32bit_window
41 gt64260_32bit_windows[MV64x60_32BIT_WIN_COUNT] __initdata = {
42 /* CPU->MEM Windows */
43 [MV64x60_CPU2MEM_0_WIN] = {
44 .base_reg = MV64x60_CPU2MEM_0_BASE,
45 .size_reg = MV64x60_CPU2MEM_0_SIZE,
48 .get_from_field = mv64x60_shift_left,
49 .map_to_field = mv64x60_shift_right,
51 [MV64x60_CPU2MEM_1_WIN] = {
52 .base_reg = MV64x60_CPU2MEM_1_BASE,
53 .size_reg = MV64x60_CPU2MEM_1_SIZE,
56 .get_from_field = mv64x60_shift_left,
57 .map_to_field = mv64x60_shift_right,
59 [MV64x60_CPU2MEM_2_WIN] = {
60 .base_reg = MV64x60_CPU2MEM_2_BASE,
61 .size_reg = MV64x60_CPU2MEM_2_SIZE,
64 .get_from_field = mv64x60_shift_left,
65 .map_to_field = mv64x60_shift_right,
67 [MV64x60_CPU2MEM_3_WIN] = {
68 .base_reg = MV64x60_CPU2MEM_3_BASE,
69 .size_reg = MV64x60_CPU2MEM_3_SIZE,
72 .get_from_field = mv64x60_shift_left,
73 .map_to_field = mv64x60_shift_right,
75 /* CPU->Device Windows */
76 [MV64x60_CPU2DEV_0_WIN] = {
77 .base_reg = MV64x60_CPU2DEV_0_BASE,
78 .size_reg = MV64x60_CPU2DEV_0_SIZE,
81 .get_from_field = mv64x60_shift_left,
82 .map_to_field = mv64x60_shift_right,
84 [MV64x60_CPU2DEV_1_WIN] = {
85 .base_reg = MV64x60_CPU2DEV_1_BASE,
86 .size_reg = MV64x60_CPU2DEV_1_SIZE,
89 .get_from_field = mv64x60_shift_left,
90 .map_to_field = mv64x60_shift_right,
92 [MV64x60_CPU2DEV_2_WIN] = {
93 .base_reg = MV64x60_CPU2DEV_2_BASE,
94 .size_reg = MV64x60_CPU2DEV_2_SIZE,
97 .get_from_field = mv64x60_shift_left,
98 .map_to_field = mv64x60_shift_right,
100 [MV64x60_CPU2DEV_3_WIN] = {
101 .base_reg = MV64x60_CPU2DEV_3_BASE,
102 .size_reg = MV64x60_CPU2DEV_3_SIZE,
105 .get_from_field = mv64x60_shift_left,
106 .map_to_field = mv64x60_shift_right,
108 /* CPU->Boot Window */
109 [MV64x60_CPU2BOOT_WIN] = {
110 .base_reg = MV64x60_CPU2BOOT_0_BASE,
111 .size_reg = MV64x60_CPU2BOOT_0_SIZE,
114 .get_from_field = mv64x60_shift_left,
115 .map_to_field = mv64x60_shift_right,
117 /* CPU->PCI 0 Windows */
118 [MV64x60_CPU2PCI0_IO_WIN] = {
119 .base_reg = MV64x60_CPU2PCI0_IO_BASE,
120 .size_reg = MV64x60_CPU2PCI0_IO_SIZE,
123 .get_from_field = mv64x60_shift_left,
124 .map_to_field = mv64x60_shift_right,
126 [MV64x60_CPU2PCI0_MEM_0_WIN] = {
127 .base_reg = MV64x60_CPU2PCI0_MEM_0_BASE,
128 .size_reg = MV64x60_CPU2PCI0_MEM_0_SIZE,
131 .get_from_field = mv64x60_shift_left,
132 .map_to_field = mv64x60_shift_right,
134 [MV64x60_CPU2PCI0_MEM_1_WIN] = {
135 .base_reg = MV64x60_CPU2PCI0_MEM_1_BASE,
136 .size_reg = MV64x60_CPU2PCI0_MEM_1_SIZE,
139 .get_from_field = mv64x60_shift_left,
140 .map_to_field = mv64x60_shift_right,
142 [MV64x60_CPU2PCI0_MEM_2_WIN] = {
143 .base_reg = MV64x60_CPU2PCI0_MEM_2_BASE,
144 .size_reg = MV64x60_CPU2PCI0_MEM_2_SIZE,
147 .get_from_field = mv64x60_shift_left,
148 .map_to_field = mv64x60_shift_right,
150 [MV64x60_CPU2PCI0_MEM_3_WIN] = {
151 .base_reg = MV64x60_CPU2PCI0_MEM_3_BASE,
152 .size_reg = MV64x60_CPU2PCI0_MEM_3_SIZE,
155 .get_from_field = mv64x60_shift_left,
156 .map_to_field = mv64x60_shift_right,
158 /* CPU->PCI 1 Windows */
159 [MV64x60_CPU2PCI1_IO_WIN] = {
160 .base_reg = MV64x60_CPU2PCI1_IO_BASE,
161 .size_reg = MV64x60_CPU2PCI1_IO_SIZE,
164 .get_from_field = mv64x60_shift_left,
165 .map_to_field = mv64x60_shift_right,
167 [MV64x60_CPU2PCI1_MEM_0_WIN] = {
168 .base_reg = MV64x60_CPU2PCI1_MEM_0_BASE,
169 .size_reg = MV64x60_CPU2PCI1_MEM_0_SIZE,
172 .get_from_field = mv64x60_shift_left,
173 .map_to_field = mv64x60_shift_right,
175 [MV64x60_CPU2PCI1_MEM_1_WIN] = {
176 .base_reg = MV64x60_CPU2PCI1_MEM_1_BASE,
177 .size_reg = MV64x60_CPU2PCI1_MEM_1_SIZE,
180 .get_from_field = mv64x60_shift_left,
181 .map_to_field = mv64x60_shift_right,
183 [MV64x60_CPU2PCI1_MEM_2_WIN] = {
184 .base_reg = MV64x60_CPU2PCI1_MEM_2_BASE,
185 .size_reg = MV64x60_CPU2PCI1_MEM_2_SIZE,
188 .get_from_field = mv64x60_shift_left,
189 .map_to_field = mv64x60_shift_right,
191 [MV64x60_CPU2PCI1_MEM_3_WIN] = {
192 .base_reg = MV64x60_CPU2PCI1_MEM_3_BASE,
193 .size_reg = MV64x60_CPU2PCI1_MEM_3_SIZE,
196 .get_from_field = mv64x60_shift_left,
197 .map_to_field = mv64x60_shift_right,
199 /* CPU->SRAM Window (64260 has no integrated SRAM) */
200 /* CPU->PCI 0 Remap I/O Window */
201 [MV64x60_CPU2PCI0_IO_REMAP_WIN] = {
202 .base_reg = MV64x60_CPU2PCI0_IO_REMAP,
206 .get_from_field = mv64x60_shift_left,
207 .map_to_field = mv64x60_shift_right,
209 /* CPU->PCI 1 Remap I/O Window */
210 [MV64x60_CPU2PCI1_IO_REMAP_WIN] = {
211 .base_reg = MV64x60_CPU2PCI1_IO_REMAP,
215 .get_from_field = mv64x60_shift_left,
216 .map_to_field = mv64x60_shift_right,
218 /* CPU Memory Protection Windows */
219 [MV64x60_CPU_PROT_0_WIN] = {
220 .base_reg = MV64x60_CPU_PROT_BASE_0,
221 .size_reg = MV64x60_CPU_PROT_SIZE_0,
224 .get_from_field = mv64x60_shift_left,
225 .map_to_field = mv64x60_shift_right,
227 [MV64x60_CPU_PROT_1_WIN] = {
228 .base_reg = MV64x60_CPU_PROT_BASE_1,
229 .size_reg = MV64x60_CPU_PROT_SIZE_1,
232 .get_from_field = mv64x60_shift_left,
233 .map_to_field = mv64x60_shift_right,
235 [MV64x60_CPU_PROT_2_WIN] = {
236 .base_reg = MV64x60_CPU_PROT_BASE_2,
237 .size_reg = MV64x60_CPU_PROT_SIZE_2,
240 .get_from_field = mv64x60_shift_left,
241 .map_to_field = mv64x60_shift_right,
243 [MV64x60_CPU_PROT_3_WIN] = {
244 .base_reg = MV64x60_CPU_PROT_BASE_3,
245 .size_reg = MV64x60_CPU_PROT_SIZE_3,
248 .get_from_field = mv64x60_shift_left,
249 .map_to_field = mv64x60_shift_right,
251 /* CPU Snoop Windows */
252 [MV64x60_CPU_SNOOP_0_WIN] = {
253 .base_reg = GT64260_CPU_SNOOP_BASE_0,
254 .size_reg = GT64260_CPU_SNOOP_SIZE_0,
257 .get_from_field = mv64x60_shift_left,
258 .map_to_field = mv64x60_shift_right,
260 [MV64x60_CPU_SNOOP_1_WIN] = {
261 .base_reg = GT64260_CPU_SNOOP_BASE_1,
262 .size_reg = GT64260_CPU_SNOOP_SIZE_1,
265 .get_from_field = mv64x60_shift_left,
266 .map_to_field = mv64x60_shift_right,
268 [MV64x60_CPU_SNOOP_2_WIN] = {
269 .base_reg = GT64260_CPU_SNOOP_BASE_2,
270 .size_reg = GT64260_CPU_SNOOP_SIZE_2,
273 .get_from_field = mv64x60_shift_left,
274 .map_to_field = mv64x60_shift_right,
276 [MV64x60_CPU_SNOOP_3_WIN] = {
277 .base_reg = GT64260_CPU_SNOOP_BASE_3,
278 .size_reg = GT64260_CPU_SNOOP_SIZE_3,
281 .get_from_field = mv64x60_shift_left,
282 .map_to_field = mv64x60_shift_right,
284 /* PCI 0->System Memory Remap Windows */
285 [MV64x60_PCI02MEM_REMAP_0_WIN] = {
286 .base_reg = MV64x60_PCI0_SLAVE_MEM_0_REMAP,
290 .get_from_field = mv64x60_mask,
291 .map_to_field = mv64x60_mask,
293 [MV64x60_PCI02MEM_REMAP_1_WIN] = {
294 .base_reg = MV64x60_PCI0_SLAVE_MEM_1_REMAP,
298 .get_from_field = mv64x60_mask,
299 .map_to_field = mv64x60_mask,
301 [MV64x60_PCI02MEM_REMAP_2_WIN] = {
302 .base_reg = MV64x60_PCI0_SLAVE_MEM_1_REMAP,
306 .get_from_field = mv64x60_mask,
307 .map_to_field = mv64x60_mask,
309 [MV64x60_PCI02MEM_REMAP_3_WIN] = {
310 .base_reg = MV64x60_PCI0_SLAVE_MEM_1_REMAP,
314 .get_from_field = mv64x60_mask,
315 .map_to_field = mv64x60_mask,
317 /* PCI 1->System Memory Remap Windows */
318 [MV64x60_PCI12MEM_REMAP_0_WIN] = {
319 .base_reg = MV64x60_PCI1_SLAVE_MEM_0_REMAP,
323 .get_from_field = mv64x60_mask,
324 .map_to_field = mv64x60_mask,
326 [MV64x60_PCI12MEM_REMAP_1_WIN] = {
327 .base_reg = MV64x60_PCI1_SLAVE_MEM_1_REMAP,
331 .get_from_field = mv64x60_mask,
332 .map_to_field = mv64x60_mask,
334 [MV64x60_PCI12MEM_REMAP_2_WIN] = {
335 .base_reg = MV64x60_PCI1_SLAVE_MEM_1_REMAP,
339 .get_from_field = mv64x60_mask,
340 .map_to_field = mv64x60_mask,
342 [MV64x60_PCI12MEM_REMAP_3_WIN] = {
343 .base_reg = MV64x60_PCI1_SLAVE_MEM_1_REMAP,
347 .get_from_field = mv64x60_mask,
348 .map_to_field = mv64x60_mask,
350 /* ENET->SRAM Window (64260 doesn't have separate windows) */
351 /* MPSC->SRAM Window (64260 doesn't have separate windows) */
352 /* IDMA->SRAM Window (64260 doesn't have separate windows) */
355 struct mv64x60_64bit_window
356 gt64260_64bit_windows[MV64x60_64BIT_WIN_COUNT] __initdata = {
357 /* CPU->PCI 0 MEM Remap Windows */
358 [MV64x60_CPU2PCI0_MEM_0_REMAP_WIN] = {
359 .base_hi_reg = MV64x60_CPU2PCI0_MEM_0_REMAP_HI,
360 .base_lo_reg = MV64x60_CPU2PCI0_MEM_0_REMAP_LO,
364 .get_from_field = mv64x60_shift_left,
365 .map_to_field = mv64x60_shift_right,
367 [MV64x60_CPU2PCI0_MEM_1_REMAP_WIN] = {
368 .base_hi_reg = MV64x60_CPU2PCI0_MEM_1_REMAP_HI,
369 .base_lo_reg = MV64x60_CPU2PCI0_MEM_1_REMAP_LO,
373 .get_from_field = mv64x60_shift_left,
374 .map_to_field = mv64x60_shift_right,
376 [MV64x60_CPU2PCI0_MEM_2_REMAP_WIN] = {
377 .base_hi_reg = MV64x60_CPU2PCI0_MEM_2_REMAP_HI,
378 .base_lo_reg = MV64x60_CPU2PCI0_MEM_2_REMAP_LO,
382 .get_from_field = mv64x60_shift_left,
383 .map_to_field = mv64x60_shift_right,
385 [MV64x60_CPU2PCI0_MEM_3_REMAP_WIN] = {
386 .base_hi_reg = MV64x60_CPU2PCI0_MEM_3_REMAP_HI,
387 .base_lo_reg = MV64x60_CPU2PCI0_MEM_3_REMAP_LO,
391 .get_from_field = mv64x60_shift_left,
392 .map_to_field = mv64x60_shift_right,
394 /* CPU->PCI 1 MEM Remap Windows */
395 [MV64x60_CPU2PCI1_MEM_0_REMAP_WIN] = {
396 .base_hi_reg = MV64x60_CPU2PCI1_MEM_0_REMAP_HI,
397 .base_lo_reg = MV64x60_CPU2PCI1_MEM_0_REMAP_LO,
401 .get_from_field = mv64x60_shift_left,
402 .map_to_field = mv64x60_shift_right,
404 [MV64x60_CPU2PCI1_MEM_1_REMAP_WIN] = {
405 .base_hi_reg = MV64x60_CPU2PCI1_MEM_1_REMAP_HI,
406 .base_lo_reg = MV64x60_CPU2PCI1_MEM_1_REMAP_LO,
410 .get_from_field = mv64x60_shift_left,
411 .map_to_field = mv64x60_shift_right,
413 [MV64x60_CPU2PCI1_MEM_2_REMAP_WIN] = {
414 .base_hi_reg = MV64x60_CPU2PCI1_MEM_2_REMAP_HI,
415 .base_lo_reg = MV64x60_CPU2PCI1_MEM_2_REMAP_LO,
419 .get_from_field = mv64x60_shift_left,
420 .map_to_field = mv64x60_shift_right,
422 [MV64x60_CPU2PCI1_MEM_3_REMAP_WIN] = {
423 .base_hi_reg = MV64x60_CPU2PCI1_MEM_3_REMAP_HI,
424 .base_lo_reg = MV64x60_CPU2PCI1_MEM_3_REMAP_LO,
428 .get_from_field = mv64x60_shift_left,
429 .map_to_field = mv64x60_shift_right,
431 /* PCI 0->MEM Access Control Windows */
432 [MV64x60_PCI02MEM_ACC_CNTL_0_WIN] = {
433 .base_hi_reg = MV64x60_PCI0_ACC_CNTL_0_BASE_HI,
434 .base_lo_reg = MV64x60_PCI0_ACC_CNTL_0_BASE_LO,
435 .size_reg = MV64x60_PCI0_ACC_CNTL_0_SIZE,
438 .get_from_field = mv64x60_shift_left,
439 .map_to_field = mv64x60_shift_right,
441 [MV64x60_PCI02MEM_ACC_CNTL_1_WIN] = {
442 .base_hi_reg = MV64x60_PCI0_ACC_CNTL_1_BASE_HI,
443 .base_lo_reg = MV64x60_PCI0_ACC_CNTL_1_BASE_LO,
444 .size_reg = MV64x60_PCI0_ACC_CNTL_1_SIZE,
447 .get_from_field = mv64x60_shift_left,
448 .map_to_field = mv64x60_shift_right,
450 [MV64x60_PCI02MEM_ACC_CNTL_2_WIN] = {
451 .base_hi_reg = MV64x60_PCI0_ACC_CNTL_2_BASE_HI,
452 .base_lo_reg = MV64x60_PCI0_ACC_CNTL_2_BASE_LO,
453 .size_reg = MV64x60_PCI0_ACC_CNTL_2_SIZE,
456 .get_from_field = mv64x60_shift_left,
457 .map_to_field = mv64x60_shift_right,
459 [MV64x60_PCI02MEM_ACC_CNTL_3_WIN] = {
460 .base_hi_reg = MV64x60_PCI0_ACC_CNTL_3_BASE_HI,
461 .base_lo_reg = MV64x60_PCI0_ACC_CNTL_3_BASE_LO,
462 .size_reg = MV64x60_PCI0_ACC_CNTL_3_SIZE,
465 .get_from_field = mv64x60_shift_left,
466 .map_to_field = mv64x60_shift_right,
468 /* PCI 1->MEM Access Control Windows */
469 [MV64x60_PCI12MEM_ACC_CNTL_0_WIN] = {
470 .base_hi_reg = MV64x60_PCI1_ACC_CNTL_0_BASE_HI,
471 .base_lo_reg = MV64x60_PCI1_ACC_CNTL_0_BASE_LO,
472 .size_reg = MV64x60_PCI1_ACC_CNTL_0_SIZE,
475 .get_from_field = mv64x60_shift_left,
476 .map_to_field = mv64x60_shift_right,
478 [MV64x60_PCI12MEM_ACC_CNTL_1_WIN] = {
479 .base_hi_reg = MV64x60_PCI1_ACC_CNTL_1_BASE_HI,
480 .base_lo_reg = MV64x60_PCI1_ACC_CNTL_1_BASE_LO,
481 .size_reg = MV64x60_PCI1_ACC_CNTL_1_SIZE,
484 .get_from_field = mv64x60_shift_left,
485 .map_to_field = mv64x60_shift_right,
487 [MV64x60_PCI12MEM_ACC_CNTL_2_WIN] = {
488 .base_hi_reg = MV64x60_PCI1_ACC_CNTL_2_BASE_HI,
489 .base_lo_reg = MV64x60_PCI1_ACC_CNTL_2_BASE_LO,
490 .size_reg = MV64x60_PCI1_ACC_CNTL_2_SIZE,
493 .get_from_field = mv64x60_shift_left,
494 .map_to_field = mv64x60_shift_right,
496 [MV64x60_PCI12MEM_ACC_CNTL_3_WIN] = {
497 .base_hi_reg = MV64x60_PCI1_ACC_CNTL_3_BASE_HI,
498 .base_lo_reg = MV64x60_PCI1_ACC_CNTL_3_BASE_LO,
499 .size_reg = MV64x60_PCI1_ACC_CNTL_3_SIZE,
502 .get_from_field = mv64x60_shift_left,
503 .map_to_field = mv64x60_shift_right,
505 /* PCI 0->MEM Snoop Windows */
506 [MV64x60_PCI02MEM_SNOOP_0_WIN] = {
507 .base_hi_reg = GT64260_PCI0_SNOOP_0_BASE_HI,
508 .base_lo_reg = GT64260_PCI0_SNOOP_0_BASE_LO,
509 .size_reg = GT64260_PCI0_SNOOP_0_SIZE,
512 .get_from_field = mv64x60_shift_left,
513 .map_to_field = mv64x60_shift_right,
515 [MV64x60_PCI02MEM_SNOOP_1_WIN] = {
516 .base_hi_reg = GT64260_PCI0_SNOOP_1_BASE_HI,
517 .base_lo_reg = GT64260_PCI0_SNOOP_1_BASE_LO,
518 .size_reg = GT64260_PCI0_SNOOP_1_SIZE,
521 .get_from_field = mv64x60_shift_left,
522 .map_to_field = mv64x60_shift_right,
524 [MV64x60_PCI02MEM_SNOOP_2_WIN] = {
525 .base_hi_reg = GT64260_PCI0_SNOOP_2_BASE_HI,
526 .base_lo_reg = GT64260_PCI0_SNOOP_2_BASE_LO,
527 .size_reg = GT64260_PCI0_SNOOP_2_SIZE,
530 .get_from_field = mv64x60_shift_left,
531 .map_to_field = mv64x60_shift_right,
533 [MV64x60_PCI02MEM_SNOOP_3_WIN] = {
534 .base_hi_reg = GT64260_PCI0_SNOOP_3_BASE_HI,
535 .base_lo_reg = GT64260_PCI0_SNOOP_3_BASE_LO,
536 .size_reg = GT64260_PCI0_SNOOP_3_SIZE,
539 .get_from_field = mv64x60_shift_left,
540 .map_to_field = mv64x60_shift_right,
542 /* PCI 1->MEM Snoop Windows */
543 [MV64x60_PCI12MEM_SNOOP_0_WIN] = {
544 .base_hi_reg = GT64260_PCI1_SNOOP_0_BASE_HI,
545 .base_lo_reg = GT64260_PCI1_SNOOP_0_BASE_LO,
546 .size_reg = GT64260_PCI1_SNOOP_0_SIZE,
549 .get_from_field = mv64x60_shift_left,
550 .map_to_field = mv64x60_shift_right,
552 [MV64x60_PCI12MEM_SNOOP_1_WIN] = {
553 .base_hi_reg = GT64260_PCI1_SNOOP_1_BASE_HI,
554 .base_lo_reg = GT64260_PCI1_SNOOP_1_BASE_LO,
555 .size_reg = GT64260_PCI1_SNOOP_1_SIZE,
558 .get_from_field = mv64x60_shift_left,
559 .map_to_field = mv64x60_shift_right,
561 [MV64x60_PCI12MEM_SNOOP_2_WIN] = {
562 .base_hi_reg = GT64260_PCI1_SNOOP_2_BASE_HI,
563 .base_lo_reg = GT64260_PCI1_SNOOP_2_BASE_LO,
564 .size_reg = GT64260_PCI1_SNOOP_2_SIZE,
567 .get_from_field = mv64x60_shift_left,
568 .map_to_field = mv64x60_shift_right,
570 [MV64x60_PCI12MEM_SNOOP_3_WIN] = {
571 .base_hi_reg = GT64260_PCI1_SNOOP_3_BASE_HI,
572 .base_lo_reg = GT64260_PCI1_SNOOP_3_BASE_LO,
573 .size_reg = GT64260_PCI1_SNOOP_3_SIZE,
576 .get_from_field = mv64x60_shift_left,
577 .map_to_field = mv64x60_shift_right,
581 struct mv64x60_32bit_window
582 mv64360_32bit_windows[MV64x60_32BIT_WIN_COUNT] __initdata = {
583 /* CPU->MEM Windows */
584 [MV64x60_CPU2MEM_0_WIN] = {
585 .base_reg = MV64x60_CPU2MEM_0_BASE,
586 .size_reg = MV64x60_CPU2MEM_0_SIZE,
589 .get_from_field = mv64x60_shift_left,
590 .map_to_field = mv64x60_shift_right,
591 .extra = MV64x60_EXTRA_CPUWIN_ENAB | 0 },
592 [MV64x60_CPU2MEM_1_WIN] = {
593 .base_reg = MV64x60_CPU2MEM_1_BASE,
594 .size_reg = MV64x60_CPU2MEM_1_SIZE,
597 .get_from_field = mv64x60_shift_left,
598 .map_to_field = mv64x60_shift_right,
599 .extra = MV64x60_EXTRA_CPUWIN_ENAB | 1 },
600 [MV64x60_CPU2MEM_2_WIN] = {
601 .base_reg = MV64x60_CPU2MEM_2_BASE,
602 .size_reg = MV64x60_CPU2MEM_2_SIZE,
605 .get_from_field = mv64x60_shift_left,
606 .map_to_field = mv64x60_shift_right,
607 .extra = MV64x60_EXTRA_CPUWIN_ENAB | 2 },
608 [MV64x60_CPU2MEM_3_WIN] = {
609 .base_reg = MV64x60_CPU2MEM_3_BASE,
610 .size_reg = MV64x60_CPU2MEM_3_SIZE,
613 .get_from_field = mv64x60_shift_left,
614 .map_to_field = mv64x60_shift_right,
615 .extra = MV64x60_EXTRA_CPUWIN_ENAB | 3 },
616 /* CPU->Device Windows */
617 [MV64x60_CPU2DEV_0_WIN] = {
618 .base_reg = MV64x60_CPU2DEV_0_BASE,
619 .size_reg = MV64x60_CPU2DEV_0_SIZE,
622 .get_from_field = mv64x60_shift_left,
623 .map_to_field = mv64x60_shift_right,
624 .extra = MV64x60_EXTRA_CPUWIN_ENAB | 4 },
625 [MV64x60_CPU2DEV_1_WIN] = {
626 .base_reg = MV64x60_CPU2DEV_1_BASE,
627 .size_reg = MV64x60_CPU2DEV_1_SIZE,
630 .get_from_field = mv64x60_shift_left,
631 .map_to_field = mv64x60_shift_right,
632 .extra = MV64x60_EXTRA_CPUWIN_ENAB | 5 },
633 [MV64x60_CPU2DEV_2_WIN] = {
634 .base_reg = MV64x60_CPU2DEV_2_BASE,
635 .size_reg = MV64x60_CPU2DEV_2_SIZE,
638 .get_from_field = mv64x60_shift_left,
639 .map_to_field = mv64x60_shift_right,
640 .extra = MV64x60_EXTRA_CPUWIN_ENAB | 6 },
641 [MV64x60_CPU2DEV_3_WIN] = {
642 .base_reg = MV64x60_CPU2DEV_3_BASE,
643 .size_reg = MV64x60_CPU2DEV_3_SIZE,
646 .get_from_field = mv64x60_shift_left,
647 .map_to_field = mv64x60_shift_right,
648 .extra = MV64x60_EXTRA_CPUWIN_ENAB | 7 },
649 /* CPU->Boot Window */
650 [MV64x60_CPU2BOOT_WIN] = {
651 .base_reg = MV64x60_CPU2BOOT_0_BASE,
652 .size_reg = MV64x60_CPU2BOOT_0_SIZE,
655 .get_from_field = mv64x60_shift_left,
656 .map_to_field = mv64x60_shift_right,
657 .extra = MV64x60_EXTRA_CPUWIN_ENAB | 8 },
658 /* CPU->PCI 0 Windows */
659 [MV64x60_CPU2PCI0_IO_WIN] = {
660 .base_reg = MV64x60_CPU2PCI0_IO_BASE,
661 .size_reg = MV64x60_CPU2PCI0_IO_SIZE,
664 .get_from_field = mv64x60_shift_left,
665 .map_to_field = mv64x60_shift_right,
666 .extra = MV64x60_EXTRA_CPUWIN_ENAB | 9 },
667 [MV64x60_CPU2PCI0_MEM_0_WIN] = {
668 .base_reg = MV64x60_CPU2PCI0_MEM_0_BASE,
669 .size_reg = MV64x60_CPU2PCI0_MEM_0_SIZE,
672 .get_from_field = mv64x60_shift_left,
673 .map_to_field = mv64x60_shift_right,
674 .extra = MV64x60_EXTRA_CPUWIN_ENAB | 10 },
675 [MV64x60_CPU2PCI0_MEM_1_WIN] = {
676 .base_reg = MV64x60_CPU2PCI0_MEM_1_BASE,
677 .size_reg = MV64x60_CPU2PCI0_MEM_1_SIZE,
680 .get_from_field = mv64x60_shift_left,
681 .map_to_field = mv64x60_shift_right,
682 .extra = MV64x60_EXTRA_CPUWIN_ENAB | 11 },
683 [MV64x60_CPU2PCI0_MEM_2_WIN] = {
684 .base_reg = MV64x60_CPU2PCI0_MEM_2_BASE,
685 .size_reg = MV64x60_CPU2PCI0_MEM_2_SIZE,
688 .get_from_field = mv64x60_shift_left,
689 .map_to_field = mv64x60_shift_right,
690 .extra = MV64x60_EXTRA_CPUWIN_ENAB | 12 },
691 [MV64x60_CPU2PCI0_MEM_3_WIN] = {
692 .base_reg = MV64x60_CPU2PCI0_MEM_3_BASE,
693 .size_reg = MV64x60_CPU2PCI0_MEM_3_SIZE,
696 .get_from_field = mv64x60_shift_left,
697 .map_to_field = mv64x60_shift_right,
698 .extra = MV64x60_EXTRA_CPUWIN_ENAB | 13 },
699 /* CPU->PCI 1 Windows */
700 [MV64x60_CPU2PCI1_IO_WIN] = {
701 .base_reg = MV64x60_CPU2PCI1_IO_BASE,
702 .size_reg = MV64x60_CPU2PCI1_IO_SIZE,
705 .get_from_field = mv64x60_shift_left,
706 .map_to_field = mv64x60_shift_right,
707 .extra = MV64x60_EXTRA_CPUWIN_ENAB | 14 },
708 [MV64x60_CPU2PCI1_MEM_0_WIN] = {
709 .base_reg = MV64x60_CPU2PCI1_MEM_0_BASE,
710 .size_reg = MV64x60_CPU2PCI1_MEM_0_SIZE,
713 .get_from_field = mv64x60_shift_left,
714 .map_to_field = mv64x60_shift_right,
715 .extra = MV64x60_EXTRA_CPUWIN_ENAB | 15 },
716 [MV64x60_CPU2PCI1_MEM_1_WIN] = {
717 .base_reg = MV64x60_CPU2PCI1_MEM_1_BASE,
718 .size_reg = MV64x60_CPU2PCI1_MEM_1_SIZE,
721 .get_from_field = mv64x60_shift_left,
722 .map_to_field = mv64x60_shift_right,
723 .extra = MV64x60_EXTRA_CPUWIN_ENAB | 16 },
724 [MV64x60_CPU2PCI1_MEM_2_WIN] = {
725 .base_reg = MV64x60_CPU2PCI1_MEM_2_BASE,
726 .size_reg = MV64x60_CPU2PCI1_MEM_2_SIZE,
729 .get_from_field = mv64x60_shift_left,
730 .map_to_field = mv64x60_shift_right,
731 .extra = MV64x60_EXTRA_CPUWIN_ENAB | 17 },
732 [MV64x60_CPU2PCI1_MEM_3_WIN] = {
733 .base_reg = MV64x60_CPU2PCI1_MEM_3_BASE,
734 .size_reg = MV64x60_CPU2PCI1_MEM_3_SIZE,
737 .get_from_field = mv64x60_shift_left,
738 .map_to_field = mv64x60_shift_right,
739 .extra = MV64x60_EXTRA_CPUWIN_ENAB | 18 },
740 /* CPU->SRAM Window */
741 [MV64x60_CPU2SRAM_WIN] = {
742 .base_reg = MV64360_CPU2SRAM_BASE,
746 .get_from_field = mv64x60_shift_left,
747 .map_to_field = mv64x60_shift_right,
748 .extra = MV64x60_EXTRA_CPUWIN_ENAB | 19 },
749 /* CPU->PCI 0 Remap I/O Window */
750 [MV64x60_CPU2PCI0_IO_REMAP_WIN] = {
751 .base_reg = MV64x60_CPU2PCI0_IO_REMAP,
755 .get_from_field = mv64x60_shift_left,
756 .map_to_field = mv64x60_shift_right,
758 /* CPU->PCI 1 Remap I/O Window */
759 [MV64x60_CPU2PCI1_IO_REMAP_WIN] = {
760 .base_reg = MV64x60_CPU2PCI1_IO_REMAP,
764 .get_from_field = mv64x60_shift_left,
765 .map_to_field = mv64x60_shift_right,
767 /* CPU Memory Protection Windows */
768 [MV64x60_CPU_PROT_0_WIN] = {
769 .base_reg = MV64x60_CPU_PROT_BASE_0,
770 .size_reg = MV64x60_CPU_PROT_SIZE_0,
773 .get_from_field = mv64x60_shift_left,
774 .map_to_field = mv64x60_shift_right,
775 .extra = MV64x60_EXTRA_CPUPROT_ENAB | 31 },
776 [MV64x60_CPU_PROT_1_WIN] = {
777 .base_reg = MV64x60_CPU_PROT_BASE_1,
778 .size_reg = MV64x60_CPU_PROT_SIZE_1,
781 .get_from_field = mv64x60_shift_left,
782 .map_to_field = mv64x60_shift_right,
783 .extra = MV64x60_EXTRA_CPUPROT_ENAB | 31 },
784 [MV64x60_CPU_PROT_2_WIN] = {
785 .base_reg = MV64x60_CPU_PROT_BASE_2,
786 .size_reg = MV64x60_CPU_PROT_SIZE_2,
789 .get_from_field = mv64x60_shift_left,
790 .map_to_field = mv64x60_shift_right,
791 .extra = MV64x60_EXTRA_CPUPROT_ENAB | 31 },
792 [MV64x60_CPU_PROT_3_WIN] = {
793 .base_reg = MV64x60_CPU_PROT_BASE_3,
794 .size_reg = MV64x60_CPU_PROT_SIZE_3,
797 .get_from_field = mv64x60_shift_left,
798 .map_to_field = mv64x60_shift_right,
799 .extra = MV64x60_EXTRA_CPUPROT_ENAB | 31 },
800 /* CPU Snoop Windows -- don't exist on 64360 */
801 /* PCI 0->System Memory Remap Windows */
802 [MV64x60_PCI02MEM_REMAP_0_WIN] = {
803 .base_reg = MV64x60_PCI0_SLAVE_MEM_0_REMAP,
807 .get_from_field = mv64x60_mask,
808 .map_to_field = mv64x60_mask,
810 [MV64x60_PCI02MEM_REMAP_1_WIN] = {
811 .base_reg = MV64x60_PCI0_SLAVE_MEM_1_REMAP,
815 .get_from_field = mv64x60_mask,
816 .map_to_field = mv64x60_mask,
818 [MV64x60_PCI02MEM_REMAP_2_WIN] = {
819 .base_reg = MV64x60_PCI0_SLAVE_MEM_1_REMAP,
823 .get_from_field = mv64x60_mask,
824 .map_to_field = mv64x60_mask,
826 [MV64x60_PCI02MEM_REMAP_3_WIN] = {
827 .base_reg = MV64x60_PCI0_SLAVE_MEM_1_REMAP,
831 .get_from_field = mv64x60_mask,
832 .map_to_field = mv64x60_mask,
834 /* PCI 1->System Memory Remap Windows */
835 [MV64x60_PCI12MEM_REMAP_0_WIN] = {
836 .base_reg = MV64x60_PCI1_SLAVE_MEM_0_REMAP,
840 .get_from_field = mv64x60_mask,
841 .map_to_field = mv64x60_mask,
843 [MV64x60_PCI12MEM_REMAP_1_WIN] = {
844 .base_reg = MV64x60_PCI1_SLAVE_MEM_1_REMAP,
848 .get_from_field = mv64x60_mask,
849 .map_to_field = mv64x60_mask,
851 [MV64x60_PCI12MEM_REMAP_2_WIN] = {
852 .base_reg = MV64x60_PCI1_SLAVE_MEM_1_REMAP,
856 .get_from_field = mv64x60_mask,
857 .map_to_field = mv64x60_mask,
859 [MV64x60_PCI12MEM_REMAP_3_WIN] = {
860 .base_reg = MV64x60_PCI1_SLAVE_MEM_1_REMAP,
864 .get_from_field = mv64x60_mask,
865 .map_to_field = mv64x60_mask,
867 /* ENET->System Memory Windows */
868 [MV64x60_ENET2MEM_0_WIN] = {
869 .base_reg = MV64360_ENET2MEM_0_BASE,
870 .size_reg = MV64360_ENET2MEM_0_SIZE,
873 .get_from_field = mv64x60_mask,
874 .map_to_field = mv64x60_mask,
875 .extra = MV64x60_EXTRA_ENET_ENAB | 0 },
876 [MV64x60_ENET2MEM_1_WIN] = {
877 .base_reg = MV64360_ENET2MEM_1_BASE,
878 .size_reg = MV64360_ENET2MEM_1_SIZE,
881 .get_from_field = mv64x60_mask,
882 .map_to_field = mv64x60_mask,
883 .extra = MV64x60_EXTRA_ENET_ENAB | 1 },
884 [MV64x60_ENET2MEM_2_WIN] = {
885 .base_reg = MV64360_ENET2MEM_2_BASE,
886 .size_reg = MV64360_ENET2MEM_2_SIZE,
889 .get_from_field = mv64x60_mask,
890 .map_to_field = mv64x60_mask,
891 .extra = MV64x60_EXTRA_ENET_ENAB | 2 },
892 [MV64x60_ENET2MEM_3_WIN] = {
893 .base_reg = MV64360_ENET2MEM_3_BASE,
894 .size_reg = MV64360_ENET2MEM_3_SIZE,
897 .get_from_field = mv64x60_mask,
898 .map_to_field = mv64x60_mask,
899 .extra = MV64x60_EXTRA_ENET_ENAB | 3 },
900 [MV64x60_ENET2MEM_4_WIN] = {
901 .base_reg = MV64360_ENET2MEM_4_BASE,
902 .size_reg = MV64360_ENET2MEM_4_SIZE,
905 .get_from_field = mv64x60_mask,
906 .map_to_field = mv64x60_mask,
907 .extra = MV64x60_EXTRA_ENET_ENAB | 4 },
908 [MV64x60_ENET2MEM_5_WIN] = {
909 .base_reg = MV64360_ENET2MEM_5_BASE,
910 .size_reg = MV64360_ENET2MEM_5_SIZE,
913 .get_from_field = mv64x60_mask,
914 .map_to_field = mv64x60_mask,
915 .extra = MV64x60_EXTRA_ENET_ENAB | 5 },
916 /* MPSC->System Memory Windows */
917 [MV64x60_MPSC2MEM_0_WIN] = {
918 .base_reg = MV64360_MPSC2MEM_0_BASE,
919 .size_reg = MV64360_MPSC2MEM_0_SIZE,
922 .get_from_field = mv64x60_mask,
923 .map_to_field = mv64x60_mask,
924 .extra = MV64x60_EXTRA_MPSC_ENAB | 0 },
925 [MV64x60_MPSC2MEM_1_WIN] = {
926 .base_reg = MV64360_MPSC2MEM_1_BASE,
927 .size_reg = MV64360_MPSC2MEM_1_SIZE,
930 .get_from_field = mv64x60_mask,
931 .map_to_field = mv64x60_mask,
932 .extra = MV64x60_EXTRA_MPSC_ENAB | 1 },
933 [MV64x60_MPSC2MEM_2_WIN] = {
934 .base_reg = MV64360_MPSC2MEM_2_BASE,
935 .size_reg = MV64360_MPSC2MEM_2_SIZE,
938 .get_from_field = mv64x60_mask,
939 .map_to_field = mv64x60_mask,
940 .extra = MV64x60_EXTRA_MPSC_ENAB | 2 },
941 [MV64x60_MPSC2MEM_3_WIN] = {
942 .base_reg = MV64360_MPSC2MEM_3_BASE,
943 .size_reg = MV64360_MPSC2MEM_3_SIZE,
946 .get_from_field = mv64x60_mask,
947 .map_to_field = mv64x60_mask,
948 .extra = MV64x60_EXTRA_MPSC_ENAB | 3 },
949 /* IDMA->System Memory Windows */
950 [MV64x60_IDMA2MEM_0_WIN] = {
951 .base_reg = MV64360_IDMA2MEM_0_BASE,
952 .size_reg = MV64360_IDMA2MEM_0_SIZE,
955 .get_from_field = mv64x60_mask,
956 .map_to_field = mv64x60_mask,
957 .extra = MV64x60_EXTRA_IDMA_ENAB | 0 },
958 [MV64x60_IDMA2MEM_1_WIN] = {
959 .base_reg = MV64360_IDMA2MEM_1_BASE,
960 .size_reg = MV64360_IDMA2MEM_1_SIZE,
963 .get_from_field = mv64x60_mask,
964 .map_to_field = mv64x60_mask,
965 .extra = MV64x60_EXTRA_IDMA_ENAB | 1 },
966 [MV64x60_IDMA2MEM_2_WIN] = {
967 .base_reg = MV64360_IDMA2MEM_2_BASE,
968 .size_reg = MV64360_IDMA2MEM_2_SIZE,
971 .get_from_field = mv64x60_mask,
972 .map_to_field = mv64x60_mask,
973 .extra = MV64x60_EXTRA_IDMA_ENAB | 2 },
974 [MV64x60_IDMA2MEM_3_WIN] = {
975 .base_reg = MV64360_IDMA2MEM_3_BASE,
976 .size_reg = MV64360_IDMA2MEM_3_SIZE,
979 .get_from_field = mv64x60_mask,
980 .map_to_field = mv64x60_mask,
981 .extra = MV64x60_EXTRA_IDMA_ENAB | 3 },
982 [MV64x60_IDMA2MEM_4_WIN] = {
983 .base_reg = MV64360_IDMA2MEM_4_BASE,
984 .size_reg = MV64360_IDMA2MEM_4_SIZE,
987 .get_from_field = mv64x60_mask,
988 .map_to_field = mv64x60_mask,
989 .extra = MV64x60_EXTRA_IDMA_ENAB | 4 },
990 [MV64x60_IDMA2MEM_5_WIN] = {
991 .base_reg = MV64360_IDMA2MEM_5_BASE,
992 .size_reg = MV64360_IDMA2MEM_5_SIZE,
995 .get_from_field = mv64x60_mask,
996 .map_to_field = mv64x60_mask,
997 .extra = MV64x60_EXTRA_IDMA_ENAB | 5 },
998 [MV64x60_IDMA2MEM_6_WIN] = {
999 .base_reg = MV64360_IDMA2MEM_6_BASE,
1000 .size_reg = MV64360_IDMA2MEM_6_SIZE,
1003 .get_from_field = mv64x60_mask,
1004 .map_to_field = mv64x60_mask,
1005 .extra = MV64x60_EXTRA_IDMA_ENAB | 6 },
1006 [MV64x60_IDMA2MEM_7_WIN] = {
1007 .base_reg = MV64360_IDMA2MEM_7_BASE,
1008 .size_reg = MV64360_IDMA2MEM_7_SIZE,
1011 .get_from_field = mv64x60_mask,
1012 .map_to_field = mv64x60_mask,
1013 .extra = MV64x60_EXTRA_IDMA_ENAB | 7 },
1016 struct mv64x60_64bit_window
1017 mv64360_64bit_windows[MV64x60_64BIT_WIN_COUNT] __initdata = {
1018 /* CPU->PCI 0 MEM Remap Windows */
1019 [MV64x60_CPU2PCI0_MEM_0_REMAP_WIN] = {
1020 .base_hi_reg = MV64x60_CPU2PCI0_MEM_0_REMAP_HI,
1021 .base_lo_reg = MV64x60_CPU2PCI0_MEM_0_REMAP_LO,
1025 .get_from_field = mv64x60_shift_left,
1026 .map_to_field = mv64x60_shift_right,
1028 [MV64x60_CPU2PCI0_MEM_1_REMAP_WIN] = {
1029 .base_hi_reg = MV64x60_CPU2PCI0_MEM_1_REMAP_HI,
1030 .base_lo_reg = MV64x60_CPU2PCI0_MEM_1_REMAP_LO,
1034 .get_from_field = mv64x60_shift_left,
1035 .map_to_field = mv64x60_shift_right,
1037 [MV64x60_CPU2PCI0_MEM_2_REMAP_WIN] = {
1038 .base_hi_reg = MV64x60_CPU2PCI0_MEM_2_REMAP_HI,
1039 .base_lo_reg = MV64x60_CPU2PCI0_MEM_2_REMAP_LO,
1043 .get_from_field = mv64x60_shift_left,
1044 .map_to_field = mv64x60_shift_right,
1046 [MV64x60_CPU2PCI0_MEM_3_REMAP_WIN] = {
1047 .base_hi_reg = MV64x60_CPU2PCI0_MEM_3_REMAP_HI,
1048 .base_lo_reg = MV64x60_CPU2PCI0_MEM_3_REMAP_LO,
1052 .get_from_field = mv64x60_shift_left,
1053 .map_to_field = mv64x60_shift_right,
1055 /* CPU->PCI 1 MEM Remap Windows */
1056 [MV64x60_CPU2PCI1_MEM_0_REMAP_WIN] = {
1057 .base_hi_reg = MV64x60_CPU2PCI1_MEM_0_REMAP_HI,
1058 .base_lo_reg = MV64x60_CPU2PCI1_MEM_0_REMAP_LO,
1062 .get_from_field = mv64x60_shift_left,
1063 .map_to_field = mv64x60_shift_right,
1065 [MV64x60_CPU2PCI1_MEM_1_REMAP_WIN] = {
1066 .base_hi_reg = MV64x60_CPU2PCI1_MEM_1_REMAP_HI,
1067 .base_lo_reg = MV64x60_CPU2PCI1_MEM_1_REMAP_LO,
1071 .get_from_field = mv64x60_shift_left,
1072 .map_to_field = mv64x60_shift_right,
1074 [MV64x60_CPU2PCI1_MEM_2_REMAP_WIN] = {
1075 .base_hi_reg = MV64x60_CPU2PCI1_MEM_2_REMAP_HI,
1076 .base_lo_reg = MV64x60_CPU2PCI1_MEM_2_REMAP_LO,
1080 .get_from_field = mv64x60_shift_left,
1081 .map_to_field = mv64x60_shift_right,
1083 [MV64x60_CPU2PCI1_MEM_3_REMAP_WIN] = {
1084 .base_hi_reg = MV64x60_CPU2PCI1_MEM_3_REMAP_HI,
1085 .base_lo_reg = MV64x60_CPU2PCI1_MEM_3_REMAP_LO,
1089 .get_from_field = mv64x60_shift_left,
1090 .map_to_field = mv64x60_shift_right,
1092 /* PCI 0->MEM Access Control Windows */
1093 [MV64x60_PCI02MEM_ACC_CNTL_0_WIN] = {
1094 .base_hi_reg = MV64x60_PCI0_ACC_CNTL_0_BASE_HI,
1095 .base_lo_reg = MV64x60_PCI0_ACC_CNTL_0_BASE_LO,
1096 .size_reg = MV64x60_PCI0_ACC_CNTL_0_SIZE,
1099 .get_from_field = mv64x60_mask,
1100 .map_to_field = mv64x60_mask,
1101 .extra = MV64x60_EXTRA_PCIACC_ENAB | 0 },
1102 [MV64x60_PCI02MEM_ACC_CNTL_1_WIN] = {
1103 .base_hi_reg = MV64x60_PCI0_ACC_CNTL_1_BASE_HI,
1104 .base_lo_reg = MV64x60_PCI0_ACC_CNTL_1_BASE_LO,
1105 .size_reg = MV64x60_PCI0_ACC_CNTL_1_SIZE,
1108 .get_from_field = mv64x60_mask,
1109 .map_to_field = mv64x60_mask,
1110 .extra = MV64x60_EXTRA_PCIACC_ENAB | 0 },
1111 [MV64x60_PCI02MEM_ACC_CNTL_2_WIN] = {
1112 .base_hi_reg = MV64x60_PCI0_ACC_CNTL_2_BASE_HI,
1113 .base_lo_reg = MV64x60_PCI0_ACC_CNTL_2_BASE_LO,
1114 .size_reg = MV64x60_PCI0_ACC_CNTL_2_SIZE,
1117 .get_from_field = mv64x60_mask,
1118 .map_to_field = mv64x60_mask,
1119 .extra = MV64x60_EXTRA_PCIACC_ENAB | 0 },
1120 [MV64x60_PCI02MEM_ACC_CNTL_3_WIN] = {
1121 .base_hi_reg = MV64x60_PCI0_ACC_CNTL_3_BASE_HI,
1122 .base_lo_reg = MV64x60_PCI0_ACC_CNTL_3_BASE_LO,
1123 .size_reg = MV64x60_PCI0_ACC_CNTL_3_SIZE,
1126 .get_from_field = mv64x60_mask,
1127 .map_to_field = mv64x60_mask,
1128 .extra = MV64x60_EXTRA_PCIACC_ENAB | 0 },
1129 /* PCI 1->MEM Access Control Windows */
1130 [MV64x60_PCI12MEM_ACC_CNTL_0_WIN] = {
1131 .base_hi_reg = MV64x60_PCI1_ACC_CNTL_0_BASE_HI,
1132 .base_lo_reg = MV64x60_PCI1_ACC_CNTL_0_BASE_LO,
1133 .size_reg = MV64x60_PCI1_ACC_CNTL_0_SIZE,
1136 .get_from_field = mv64x60_mask,
1137 .map_to_field = mv64x60_mask,
1138 .extra = MV64x60_EXTRA_PCIACC_ENAB | 0 },
1139 [MV64x60_PCI12MEM_ACC_CNTL_1_WIN] = {
1140 .base_hi_reg = MV64x60_PCI1_ACC_CNTL_1_BASE_HI,
1141 .base_lo_reg = MV64x60_PCI1_ACC_CNTL_1_BASE_LO,
1142 .size_reg = MV64x60_PCI1_ACC_CNTL_1_SIZE,
1145 .get_from_field = mv64x60_mask,
1146 .map_to_field = mv64x60_mask,
1147 .extra = MV64x60_EXTRA_PCIACC_ENAB | 0 },
1148 [MV64x60_PCI12MEM_ACC_CNTL_2_WIN] = {
1149 .base_hi_reg = MV64x60_PCI1_ACC_CNTL_2_BASE_HI,
1150 .base_lo_reg = MV64x60_PCI1_ACC_CNTL_2_BASE_LO,
1151 .size_reg = MV64x60_PCI1_ACC_CNTL_2_SIZE,
1154 .get_from_field = mv64x60_mask,
1155 .map_to_field = mv64x60_mask,
1156 .extra = MV64x60_EXTRA_PCIACC_ENAB | 0 },
1157 [MV64x60_PCI12MEM_ACC_CNTL_3_WIN] = {
1158 .base_hi_reg = MV64x60_PCI1_ACC_CNTL_3_BASE_HI,
1159 .base_lo_reg = MV64x60_PCI1_ACC_CNTL_3_BASE_LO,
1160 .size_reg = MV64x60_PCI1_ACC_CNTL_3_SIZE,
1163 .get_from_field = mv64x60_mask,
1164 .map_to_field = mv64x60_mask,
1165 .extra = MV64x60_EXTRA_PCIACC_ENAB | 0 },
1166 /* PCI 0->MEM Snoop Windows -- don't exist on 64360 */
1167 /* PCI 1->MEM Snoop Windows -- don't exist on 64360 */