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/mv643xx.h>
22 #include <asm/byteorder.h>
25 #include <asm/uaccess.h>
26 #include <asm/machdep.h>
27 #include <asm/pci-bridge.h>
28 #include <asm/delay.h>
29 #include <asm/mv64x60.h>
33 *****************************************************************************
35 * Tables describing how to set up windows on each type of bridge
37 *****************************************************************************
39 struct mv64x60_32bit_window
40 gt64260_32bit_windows[MV64x60_32BIT_WIN_COUNT] __initdata = {
41 /* CPU->MEM Windows */
42 [MV64x60_CPU2MEM_0_WIN] = {
43 .base_reg = MV64x60_CPU2MEM_0_BASE,
44 .size_reg = MV64x60_CPU2MEM_0_SIZE,
47 .get_from_field = mv64x60_shift_left,
48 .map_to_field = mv64x60_shift_right,
50 [MV64x60_CPU2MEM_1_WIN] = {
51 .base_reg = MV64x60_CPU2MEM_1_BASE,
52 .size_reg = MV64x60_CPU2MEM_1_SIZE,
55 .get_from_field = mv64x60_shift_left,
56 .map_to_field = mv64x60_shift_right,
58 [MV64x60_CPU2MEM_2_WIN] = {
59 .base_reg = MV64x60_CPU2MEM_2_BASE,
60 .size_reg = MV64x60_CPU2MEM_2_SIZE,
63 .get_from_field = mv64x60_shift_left,
64 .map_to_field = mv64x60_shift_right,
66 [MV64x60_CPU2MEM_3_WIN] = {
67 .base_reg = MV64x60_CPU2MEM_3_BASE,
68 .size_reg = MV64x60_CPU2MEM_3_SIZE,
71 .get_from_field = mv64x60_shift_left,
72 .map_to_field = mv64x60_shift_right,
74 /* CPU->Device Windows */
75 [MV64x60_CPU2DEV_0_WIN] = {
76 .base_reg = MV64x60_CPU2DEV_0_BASE,
77 .size_reg = MV64x60_CPU2DEV_0_SIZE,
80 .get_from_field = mv64x60_shift_left,
81 .map_to_field = mv64x60_shift_right,
83 [MV64x60_CPU2DEV_1_WIN] = {
84 .base_reg = MV64x60_CPU2DEV_1_BASE,
85 .size_reg = MV64x60_CPU2DEV_1_SIZE,
88 .get_from_field = mv64x60_shift_left,
89 .map_to_field = mv64x60_shift_right,
91 [MV64x60_CPU2DEV_2_WIN] = {
92 .base_reg = MV64x60_CPU2DEV_2_BASE,
93 .size_reg = MV64x60_CPU2DEV_2_SIZE,
96 .get_from_field = mv64x60_shift_left,
97 .map_to_field = mv64x60_shift_right,
99 [MV64x60_CPU2DEV_3_WIN] = {
100 .base_reg = MV64x60_CPU2DEV_3_BASE,
101 .size_reg = MV64x60_CPU2DEV_3_SIZE,
104 .get_from_field = mv64x60_shift_left,
105 .map_to_field = mv64x60_shift_right,
107 /* CPU->Boot Window */
108 [MV64x60_CPU2BOOT_WIN] = {
109 .base_reg = MV64x60_CPU2BOOT_0_BASE,
110 .size_reg = MV64x60_CPU2BOOT_0_SIZE,
113 .get_from_field = mv64x60_shift_left,
114 .map_to_field = mv64x60_shift_right,
116 /* CPU->PCI 0 Windows */
117 [MV64x60_CPU2PCI0_IO_WIN] = {
118 .base_reg = MV64x60_CPU2PCI0_IO_BASE,
119 .size_reg = MV64x60_CPU2PCI0_IO_SIZE,
122 .get_from_field = mv64x60_shift_left,
123 .map_to_field = mv64x60_shift_right,
125 [MV64x60_CPU2PCI0_MEM_0_WIN] = {
126 .base_reg = MV64x60_CPU2PCI0_MEM_0_BASE,
127 .size_reg = MV64x60_CPU2PCI0_MEM_0_SIZE,
130 .get_from_field = mv64x60_shift_left,
131 .map_to_field = mv64x60_shift_right,
133 [MV64x60_CPU2PCI0_MEM_1_WIN] = {
134 .base_reg = MV64x60_CPU2PCI0_MEM_1_BASE,
135 .size_reg = MV64x60_CPU2PCI0_MEM_1_SIZE,
138 .get_from_field = mv64x60_shift_left,
139 .map_to_field = mv64x60_shift_right,
141 [MV64x60_CPU2PCI0_MEM_2_WIN] = {
142 .base_reg = MV64x60_CPU2PCI0_MEM_2_BASE,
143 .size_reg = MV64x60_CPU2PCI0_MEM_2_SIZE,
146 .get_from_field = mv64x60_shift_left,
147 .map_to_field = mv64x60_shift_right,
149 [MV64x60_CPU2PCI0_MEM_3_WIN] = {
150 .base_reg = MV64x60_CPU2PCI0_MEM_3_BASE,
151 .size_reg = MV64x60_CPU2PCI0_MEM_3_SIZE,
154 .get_from_field = mv64x60_shift_left,
155 .map_to_field = mv64x60_shift_right,
157 /* CPU->PCI 1 Windows */
158 [MV64x60_CPU2PCI1_IO_WIN] = {
159 .base_reg = MV64x60_CPU2PCI1_IO_BASE,
160 .size_reg = MV64x60_CPU2PCI1_IO_SIZE,
163 .get_from_field = mv64x60_shift_left,
164 .map_to_field = mv64x60_shift_right,
166 [MV64x60_CPU2PCI1_MEM_0_WIN] = {
167 .base_reg = MV64x60_CPU2PCI1_MEM_0_BASE,
168 .size_reg = MV64x60_CPU2PCI1_MEM_0_SIZE,
171 .get_from_field = mv64x60_shift_left,
172 .map_to_field = mv64x60_shift_right,
174 [MV64x60_CPU2PCI1_MEM_1_WIN] = {
175 .base_reg = MV64x60_CPU2PCI1_MEM_1_BASE,
176 .size_reg = MV64x60_CPU2PCI1_MEM_1_SIZE,
179 .get_from_field = mv64x60_shift_left,
180 .map_to_field = mv64x60_shift_right,
182 [MV64x60_CPU2PCI1_MEM_2_WIN] = {
183 .base_reg = MV64x60_CPU2PCI1_MEM_2_BASE,
184 .size_reg = MV64x60_CPU2PCI1_MEM_2_SIZE,
187 .get_from_field = mv64x60_shift_left,
188 .map_to_field = mv64x60_shift_right,
190 [MV64x60_CPU2PCI1_MEM_3_WIN] = {
191 .base_reg = MV64x60_CPU2PCI1_MEM_3_BASE,
192 .size_reg = MV64x60_CPU2PCI1_MEM_3_SIZE,
195 .get_from_field = mv64x60_shift_left,
196 .map_to_field = mv64x60_shift_right,
198 /* CPU->SRAM Window (64260 has no integrated SRAM) */
199 /* CPU->PCI 0 Remap I/O Window */
200 [MV64x60_CPU2PCI0_IO_REMAP_WIN] = {
201 .base_reg = MV64x60_CPU2PCI0_IO_REMAP,
205 .get_from_field = mv64x60_shift_left,
206 .map_to_field = mv64x60_shift_right,
208 /* CPU->PCI 1 Remap I/O Window */
209 [MV64x60_CPU2PCI1_IO_REMAP_WIN] = {
210 .base_reg = MV64x60_CPU2PCI1_IO_REMAP,
214 .get_from_field = mv64x60_shift_left,
215 .map_to_field = mv64x60_shift_right,
217 /* CPU Memory Protection Windows */
218 [MV64x60_CPU_PROT_0_WIN] = {
219 .base_reg = MV64x60_CPU_PROT_BASE_0,
220 .size_reg = MV64x60_CPU_PROT_SIZE_0,
223 .get_from_field = mv64x60_shift_left,
224 .map_to_field = mv64x60_shift_right,
226 [MV64x60_CPU_PROT_1_WIN] = {
227 .base_reg = MV64x60_CPU_PROT_BASE_1,
228 .size_reg = MV64x60_CPU_PROT_SIZE_1,
231 .get_from_field = mv64x60_shift_left,
232 .map_to_field = mv64x60_shift_right,
234 [MV64x60_CPU_PROT_2_WIN] = {
235 .base_reg = MV64x60_CPU_PROT_BASE_2,
236 .size_reg = MV64x60_CPU_PROT_SIZE_2,
239 .get_from_field = mv64x60_shift_left,
240 .map_to_field = mv64x60_shift_right,
242 [MV64x60_CPU_PROT_3_WIN] = {
243 .base_reg = MV64x60_CPU_PROT_BASE_3,
244 .size_reg = MV64x60_CPU_PROT_SIZE_3,
247 .get_from_field = mv64x60_shift_left,
248 .map_to_field = mv64x60_shift_right,
250 /* CPU Snoop Windows */
251 [MV64x60_CPU_SNOOP_0_WIN] = {
252 .base_reg = GT64260_CPU_SNOOP_BASE_0,
253 .size_reg = GT64260_CPU_SNOOP_SIZE_0,
256 .get_from_field = mv64x60_shift_left,
257 .map_to_field = mv64x60_shift_right,
259 [MV64x60_CPU_SNOOP_1_WIN] = {
260 .base_reg = GT64260_CPU_SNOOP_BASE_1,
261 .size_reg = GT64260_CPU_SNOOP_SIZE_1,
264 .get_from_field = mv64x60_shift_left,
265 .map_to_field = mv64x60_shift_right,
267 [MV64x60_CPU_SNOOP_2_WIN] = {
268 .base_reg = GT64260_CPU_SNOOP_BASE_2,
269 .size_reg = GT64260_CPU_SNOOP_SIZE_2,
272 .get_from_field = mv64x60_shift_left,
273 .map_to_field = mv64x60_shift_right,
275 [MV64x60_CPU_SNOOP_3_WIN] = {
276 .base_reg = GT64260_CPU_SNOOP_BASE_3,
277 .size_reg = GT64260_CPU_SNOOP_SIZE_3,
280 .get_from_field = mv64x60_shift_left,
281 .map_to_field = mv64x60_shift_right,
283 /* PCI 0->System Memory Remap Windows */
284 [MV64x60_PCI02MEM_REMAP_0_WIN] = {
285 .base_reg = MV64x60_PCI0_SLAVE_MEM_0_REMAP,
289 .get_from_field = mv64x60_mask,
290 .map_to_field = mv64x60_mask,
292 [MV64x60_PCI02MEM_REMAP_1_WIN] = {
293 .base_reg = MV64x60_PCI0_SLAVE_MEM_1_REMAP,
297 .get_from_field = mv64x60_mask,
298 .map_to_field = mv64x60_mask,
300 [MV64x60_PCI02MEM_REMAP_2_WIN] = {
301 .base_reg = MV64x60_PCI0_SLAVE_MEM_1_REMAP,
305 .get_from_field = mv64x60_mask,
306 .map_to_field = mv64x60_mask,
308 [MV64x60_PCI02MEM_REMAP_3_WIN] = {
309 .base_reg = MV64x60_PCI0_SLAVE_MEM_1_REMAP,
313 .get_from_field = mv64x60_mask,
314 .map_to_field = mv64x60_mask,
316 /* PCI 1->System Memory Remap Windows */
317 [MV64x60_PCI12MEM_REMAP_0_WIN] = {
318 .base_reg = MV64x60_PCI1_SLAVE_MEM_0_REMAP,
322 .get_from_field = mv64x60_mask,
323 .map_to_field = mv64x60_mask,
325 [MV64x60_PCI12MEM_REMAP_1_WIN] = {
326 .base_reg = MV64x60_PCI1_SLAVE_MEM_1_REMAP,
330 .get_from_field = mv64x60_mask,
331 .map_to_field = mv64x60_mask,
333 [MV64x60_PCI12MEM_REMAP_2_WIN] = {
334 .base_reg = MV64x60_PCI1_SLAVE_MEM_1_REMAP,
338 .get_from_field = mv64x60_mask,
339 .map_to_field = mv64x60_mask,
341 [MV64x60_PCI12MEM_REMAP_3_WIN] = {
342 .base_reg = MV64x60_PCI1_SLAVE_MEM_1_REMAP,
346 .get_from_field = mv64x60_mask,
347 .map_to_field = mv64x60_mask,
349 /* ENET->SRAM Window (64260 doesn't have separate windows) */
350 /* MPSC->SRAM Window (64260 doesn't have separate windows) */
351 /* IDMA->SRAM Window (64260 doesn't have separate windows) */
354 struct mv64x60_64bit_window
355 gt64260_64bit_windows[MV64x60_64BIT_WIN_COUNT] __initdata = {
356 /* CPU->PCI 0 MEM Remap Windows */
357 [MV64x60_CPU2PCI0_MEM_0_REMAP_WIN] = {
358 .base_hi_reg = MV64x60_CPU2PCI0_MEM_0_REMAP_HI,
359 .base_lo_reg = MV64x60_CPU2PCI0_MEM_0_REMAP_LO,
363 .get_from_field = mv64x60_shift_left,
364 .map_to_field = mv64x60_shift_right,
366 [MV64x60_CPU2PCI0_MEM_1_REMAP_WIN] = {
367 .base_hi_reg = MV64x60_CPU2PCI0_MEM_1_REMAP_HI,
368 .base_lo_reg = MV64x60_CPU2PCI0_MEM_1_REMAP_LO,
372 .get_from_field = mv64x60_shift_left,
373 .map_to_field = mv64x60_shift_right,
375 [MV64x60_CPU2PCI0_MEM_2_REMAP_WIN] = {
376 .base_hi_reg = MV64x60_CPU2PCI0_MEM_2_REMAP_HI,
377 .base_lo_reg = MV64x60_CPU2PCI0_MEM_2_REMAP_LO,
381 .get_from_field = mv64x60_shift_left,
382 .map_to_field = mv64x60_shift_right,
384 [MV64x60_CPU2PCI0_MEM_3_REMAP_WIN] = {
385 .base_hi_reg = MV64x60_CPU2PCI0_MEM_3_REMAP_HI,
386 .base_lo_reg = MV64x60_CPU2PCI0_MEM_3_REMAP_LO,
390 .get_from_field = mv64x60_shift_left,
391 .map_to_field = mv64x60_shift_right,
393 /* CPU->PCI 1 MEM Remap Windows */
394 [MV64x60_CPU2PCI1_MEM_0_REMAP_WIN] = {
395 .base_hi_reg = MV64x60_CPU2PCI1_MEM_0_REMAP_HI,
396 .base_lo_reg = MV64x60_CPU2PCI1_MEM_0_REMAP_LO,
400 .get_from_field = mv64x60_shift_left,
401 .map_to_field = mv64x60_shift_right,
403 [MV64x60_CPU2PCI1_MEM_1_REMAP_WIN] = {
404 .base_hi_reg = MV64x60_CPU2PCI1_MEM_1_REMAP_HI,
405 .base_lo_reg = MV64x60_CPU2PCI1_MEM_1_REMAP_LO,
409 .get_from_field = mv64x60_shift_left,
410 .map_to_field = mv64x60_shift_right,
412 [MV64x60_CPU2PCI1_MEM_2_REMAP_WIN] = {
413 .base_hi_reg = MV64x60_CPU2PCI1_MEM_2_REMAP_HI,
414 .base_lo_reg = MV64x60_CPU2PCI1_MEM_2_REMAP_LO,
418 .get_from_field = mv64x60_shift_left,
419 .map_to_field = mv64x60_shift_right,
421 [MV64x60_CPU2PCI1_MEM_3_REMAP_WIN] = {
422 .base_hi_reg = MV64x60_CPU2PCI1_MEM_3_REMAP_HI,
423 .base_lo_reg = MV64x60_CPU2PCI1_MEM_3_REMAP_LO,
427 .get_from_field = mv64x60_shift_left,
428 .map_to_field = mv64x60_shift_right,
430 /* PCI 0->MEM Access Control Windows */
431 [MV64x60_PCI02MEM_ACC_CNTL_0_WIN] = {
432 .base_hi_reg = MV64x60_PCI0_ACC_CNTL_0_BASE_HI,
433 .base_lo_reg = MV64x60_PCI0_ACC_CNTL_0_BASE_LO,
434 .size_reg = MV64x60_PCI0_ACC_CNTL_0_SIZE,
437 .get_from_field = mv64x60_shift_left,
438 .map_to_field = mv64x60_shift_right,
440 [MV64x60_PCI02MEM_ACC_CNTL_1_WIN] = {
441 .base_hi_reg = MV64x60_PCI0_ACC_CNTL_1_BASE_HI,
442 .base_lo_reg = MV64x60_PCI0_ACC_CNTL_1_BASE_LO,
443 .size_reg = MV64x60_PCI0_ACC_CNTL_1_SIZE,
446 .get_from_field = mv64x60_shift_left,
447 .map_to_field = mv64x60_shift_right,
449 [MV64x60_PCI02MEM_ACC_CNTL_2_WIN] = {
450 .base_hi_reg = MV64x60_PCI0_ACC_CNTL_2_BASE_HI,
451 .base_lo_reg = MV64x60_PCI0_ACC_CNTL_2_BASE_LO,
452 .size_reg = MV64x60_PCI0_ACC_CNTL_2_SIZE,
455 .get_from_field = mv64x60_shift_left,
456 .map_to_field = mv64x60_shift_right,
458 [MV64x60_PCI02MEM_ACC_CNTL_3_WIN] = {
459 .base_hi_reg = MV64x60_PCI0_ACC_CNTL_3_BASE_HI,
460 .base_lo_reg = MV64x60_PCI0_ACC_CNTL_3_BASE_LO,
461 .size_reg = MV64x60_PCI0_ACC_CNTL_3_SIZE,
464 .get_from_field = mv64x60_shift_left,
465 .map_to_field = mv64x60_shift_right,
467 /* PCI 1->MEM Access Control Windows */
468 [MV64x60_PCI12MEM_ACC_CNTL_0_WIN] = {
469 .base_hi_reg = MV64x60_PCI1_ACC_CNTL_0_BASE_HI,
470 .base_lo_reg = MV64x60_PCI1_ACC_CNTL_0_BASE_LO,
471 .size_reg = MV64x60_PCI1_ACC_CNTL_0_SIZE,
474 .get_from_field = mv64x60_shift_left,
475 .map_to_field = mv64x60_shift_right,
477 [MV64x60_PCI12MEM_ACC_CNTL_1_WIN] = {
478 .base_hi_reg = MV64x60_PCI1_ACC_CNTL_1_BASE_HI,
479 .base_lo_reg = MV64x60_PCI1_ACC_CNTL_1_BASE_LO,
480 .size_reg = MV64x60_PCI1_ACC_CNTL_1_SIZE,
483 .get_from_field = mv64x60_shift_left,
484 .map_to_field = mv64x60_shift_right,
486 [MV64x60_PCI12MEM_ACC_CNTL_2_WIN] = {
487 .base_hi_reg = MV64x60_PCI1_ACC_CNTL_2_BASE_HI,
488 .base_lo_reg = MV64x60_PCI1_ACC_CNTL_2_BASE_LO,
489 .size_reg = MV64x60_PCI1_ACC_CNTL_2_SIZE,
492 .get_from_field = mv64x60_shift_left,
493 .map_to_field = mv64x60_shift_right,
495 [MV64x60_PCI12MEM_ACC_CNTL_3_WIN] = {
496 .base_hi_reg = MV64x60_PCI1_ACC_CNTL_3_BASE_HI,
497 .base_lo_reg = MV64x60_PCI1_ACC_CNTL_3_BASE_LO,
498 .size_reg = MV64x60_PCI1_ACC_CNTL_3_SIZE,
501 .get_from_field = mv64x60_shift_left,
502 .map_to_field = mv64x60_shift_right,
504 /* PCI 0->MEM Snoop Windows */
505 [MV64x60_PCI02MEM_SNOOP_0_WIN] = {
506 .base_hi_reg = GT64260_PCI0_SNOOP_0_BASE_HI,
507 .base_lo_reg = GT64260_PCI0_SNOOP_0_BASE_LO,
508 .size_reg = GT64260_PCI0_SNOOP_0_SIZE,
511 .get_from_field = mv64x60_shift_left,
512 .map_to_field = mv64x60_shift_right,
514 [MV64x60_PCI02MEM_SNOOP_1_WIN] = {
515 .base_hi_reg = GT64260_PCI0_SNOOP_1_BASE_HI,
516 .base_lo_reg = GT64260_PCI0_SNOOP_1_BASE_LO,
517 .size_reg = GT64260_PCI0_SNOOP_1_SIZE,
520 .get_from_field = mv64x60_shift_left,
521 .map_to_field = mv64x60_shift_right,
523 [MV64x60_PCI02MEM_SNOOP_2_WIN] = {
524 .base_hi_reg = GT64260_PCI0_SNOOP_2_BASE_HI,
525 .base_lo_reg = GT64260_PCI0_SNOOP_2_BASE_LO,
526 .size_reg = GT64260_PCI0_SNOOP_2_SIZE,
529 .get_from_field = mv64x60_shift_left,
530 .map_to_field = mv64x60_shift_right,
532 [MV64x60_PCI02MEM_SNOOP_3_WIN] = {
533 .base_hi_reg = GT64260_PCI0_SNOOP_3_BASE_HI,
534 .base_lo_reg = GT64260_PCI0_SNOOP_3_BASE_LO,
535 .size_reg = GT64260_PCI0_SNOOP_3_SIZE,
538 .get_from_field = mv64x60_shift_left,
539 .map_to_field = mv64x60_shift_right,
541 /* PCI 1->MEM Snoop Windows */
542 [MV64x60_PCI12MEM_SNOOP_0_WIN] = {
543 .base_hi_reg = GT64260_PCI1_SNOOP_0_BASE_HI,
544 .base_lo_reg = GT64260_PCI1_SNOOP_0_BASE_LO,
545 .size_reg = GT64260_PCI1_SNOOP_0_SIZE,
548 .get_from_field = mv64x60_shift_left,
549 .map_to_field = mv64x60_shift_right,
551 [MV64x60_PCI12MEM_SNOOP_1_WIN] = {
552 .base_hi_reg = GT64260_PCI1_SNOOP_1_BASE_HI,
553 .base_lo_reg = GT64260_PCI1_SNOOP_1_BASE_LO,
554 .size_reg = GT64260_PCI1_SNOOP_1_SIZE,
557 .get_from_field = mv64x60_shift_left,
558 .map_to_field = mv64x60_shift_right,
560 [MV64x60_PCI12MEM_SNOOP_2_WIN] = {
561 .base_hi_reg = GT64260_PCI1_SNOOP_2_BASE_HI,
562 .base_lo_reg = GT64260_PCI1_SNOOP_2_BASE_LO,
563 .size_reg = GT64260_PCI1_SNOOP_2_SIZE,
566 .get_from_field = mv64x60_shift_left,
567 .map_to_field = mv64x60_shift_right,
569 [MV64x60_PCI12MEM_SNOOP_3_WIN] = {
570 .base_hi_reg = GT64260_PCI1_SNOOP_3_BASE_HI,
571 .base_lo_reg = GT64260_PCI1_SNOOP_3_BASE_LO,
572 .size_reg = GT64260_PCI1_SNOOP_3_SIZE,
575 .get_from_field = mv64x60_shift_left,
576 .map_to_field = mv64x60_shift_right,
580 struct mv64x60_32bit_window
581 mv64360_32bit_windows[MV64x60_32BIT_WIN_COUNT] __initdata = {
582 /* CPU->MEM Windows */
583 [MV64x60_CPU2MEM_0_WIN] = {
584 .base_reg = MV64x60_CPU2MEM_0_BASE,
585 .size_reg = MV64x60_CPU2MEM_0_SIZE,
588 .get_from_field = mv64x60_shift_left,
589 .map_to_field = mv64x60_shift_right,
590 .extra = MV64x60_EXTRA_CPUWIN_ENAB | 0 },
591 [MV64x60_CPU2MEM_1_WIN] = {
592 .base_reg = MV64x60_CPU2MEM_1_BASE,
593 .size_reg = MV64x60_CPU2MEM_1_SIZE,
596 .get_from_field = mv64x60_shift_left,
597 .map_to_field = mv64x60_shift_right,
598 .extra = MV64x60_EXTRA_CPUWIN_ENAB | 1 },
599 [MV64x60_CPU2MEM_2_WIN] = {
600 .base_reg = MV64x60_CPU2MEM_2_BASE,
601 .size_reg = MV64x60_CPU2MEM_2_SIZE,
604 .get_from_field = mv64x60_shift_left,
605 .map_to_field = mv64x60_shift_right,
606 .extra = MV64x60_EXTRA_CPUWIN_ENAB | 2 },
607 [MV64x60_CPU2MEM_3_WIN] = {
608 .base_reg = MV64x60_CPU2MEM_3_BASE,
609 .size_reg = MV64x60_CPU2MEM_3_SIZE,
612 .get_from_field = mv64x60_shift_left,
613 .map_to_field = mv64x60_shift_right,
614 .extra = MV64x60_EXTRA_CPUWIN_ENAB | 3 },
615 /* CPU->Device Windows */
616 [MV64x60_CPU2DEV_0_WIN] = {
617 .base_reg = MV64x60_CPU2DEV_0_BASE,
618 .size_reg = MV64x60_CPU2DEV_0_SIZE,
621 .get_from_field = mv64x60_shift_left,
622 .map_to_field = mv64x60_shift_right,
623 .extra = MV64x60_EXTRA_CPUWIN_ENAB | 4 },
624 [MV64x60_CPU2DEV_1_WIN] = {
625 .base_reg = MV64x60_CPU2DEV_1_BASE,
626 .size_reg = MV64x60_CPU2DEV_1_SIZE,
629 .get_from_field = mv64x60_shift_left,
630 .map_to_field = mv64x60_shift_right,
631 .extra = MV64x60_EXTRA_CPUWIN_ENAB | 5 },
632 [MV64x60_CPU2DEV_2_WIN] = {
633 .base_reg = MV64x60_CPU2DEV_2_BASE,
634 .size_reg = MV64x60_CPU2DEV_2_SIZE,
637 .get_from_field = mv64x60_shift_left,
638 .map_to_field = mv64x60_shift_right,
639 .extra = MV64x60_EXTRA_CPUWIN_ENAB | 6 },
640 [MV64x60_CPU2DEV_3_WIN] = {
641 .base_reg = MV64x60_CPU2DEV_3_BASE,
642 .size_reg = MV64x60_CPU2DEV_3_SIZE,
645 .get_from_field = mv64x60_shift_left,
646 .map_to_field = mv64x60_shift_right,
647 .extra = MV64x60_EXTRA_CPUWIN_ENAB | 7 },
648 /* CPU->Boot Window */
649 [MV64x60_CPU2BOOT_WIN] = {
650 .base_reg = MV64x60_CPU2BOOT_0_BASE,
651 .size_reg = MV64x60_CPU2BOOT_0_SIZE,
654 .get_from_field = mv64x60_shift_left,
655 .map_to_field = mv64x60_shift_right,
656 .extra = MV64x60_EXTRA_CPUWIN_ENAB | 8 },
657 /* CPU->PCI 0 Windows */
658 [MV64x60_CPU2PCI0_IO_WIN] = {
659 .base_reg = MV64x60_CPU2PCI0_IO_BASE,
660 .size_reg = MV64x60_CPU2PCI0_IO_SIZE,
663 .get_from_field = mv64x60_shift_left,
664 .map_to_field = mv64x60_shift_right,
665 .extra = MV64x60_EXTRA_CPUWIN_ENAB | 9 },
666 [MV64x60_CPU2PCI0_MEM_0_WIN] = {
667 .base_reg = MV64x60_CPU2PCI0_MEM_0_BASE,
668 .size_reg = MV64x60_CPU2PCI0_MEM_0_SIZE,
671 .get_from_field = mv64x60_shift_left,
672 .map_to_field = mv64x60_shift_right,
673 .extra = MV64x60_EXTRA_CPUWIN_ENAB | 10 },
674 [MV64x60_CPU2PCI0_MEM_1_WIN] = {
675 .base_reg = MV64x60_CPU2PCI0_MEM_1_BASE,
676 .size_reg = MV64x60_CPU2PCI0_MEM_1_SIZE,
679 .get_from_field = mv64x60_shift_left,
680 .map_to_field = mv64x60_shift_right,
681 .extra = MV64x60_EXTRA_CPUWIN_ENAB | 11 },
682 [MV64x60_CPU2PCI0_MEM_2_WIN] = {
683 .base_reg = MV64x60_CPU2PCI0_MEM_2_BASE,
684 .size_reg = MV64x60_CPU2PCI0_MEM_2_SIZE,
687 .get_from_field = mv64x60_shift_left,
688 .map_to_field = mv64x60_shift_right,
689 .extra = MV64x60_EXTRA_CPUWIN_ENAB | 12 },
690 [MV64x60_CPU2PCI0_MEM_3_WIN] = {
691 .base_reg = MV64x60_CPU2PCI0_MEM_3_BASE,
692 .size_reg = MV64x60_CPU2PCI0_MEM_3_SIZE,
695 .get_from_field = mv64x60_shift_left,
696 .map_to_field = mv64x60_shift_right,
697 .extra = MV64x60_EXTRA_CPUWIN_ENAB | 13 },
698 /* CPU->PCI 1 Windows */
699 [MV64x60_CPU2PCI1_IO_WIN] = {
700 .base_reg = MV64x60_CPU2PCI1_IO_BASE,
701 .size_reg = MV64x60_CPU2PCI1_IO_SIZE,
704 .get_from_field = mv64x60_shift_left,
705 .map_to_field = mv64x60_shift_right,
706 .extra = MV64x60_EXTRA_CPUWIN_ENAB | 14 },
707 [MV64x60_CPU2PCI1_MEM_0_WIN] = {
708 .base_reg = MV64x60_CPU2PCI1_MEM_0_BASE,
709 .size_reg = MV64x60_CPU2PCI1_MEM_0_SIZE,
712 .get_from_field = mv64x60_shift_left,
713 .map_to_field = mv64x60_shift_right,
714 .extra = MV64x60_EXTRA_CPUWIN_ENAB | 15 },
715 [MV64x60_CPU2PCI1_MEM_1_WIN] = {
716 .base_reg = MV64x60_CPU2PCI1_MEM_1_BASE,
717 .size_reg = MV64x60_CPU2PCI1_MEM_1_SIZE,
720 .get_from_field = mv64x60_shift_left,
721 .map_to_field = mv64x60_shift_right,
722 .extra = MV64x60_EXTRA_CPUWIN_ENAB | 16 },
723 [MV64x60_CPU2PCI1_MEM_2_WIN] = {
724 .base_reg = MV64x60_CPU2PCI1_MEM_2_BASE,
725 .size_reg = MV64x60_CPU2PCI1_MEM_2_SIZE,
728 .get_from_field = mv64x60_shift_left,
729 .map_to_field = mv64x60_shift_right,
730 .extra = MV64x60_EXTRA_CPUWIN_ENAB | 17 },
731 [MV64x60_CPU2PCI1_MEM_3_WIN] = {
732 .base_reg = MV64x60_CPU2PCI1_MEM_3_BASE,
733 .size_reg = MV64x60_CPU2PCI1_MEM_3_SIZE,
736 .get_from_field = mv64x60_shift_left,
737 .map_to_field = mv64x60_shift_right,
738 .extra = MV64x60_EXTRA_CPUWIN_ENAB | 18 },
739 /* CPU->SRAM Window */
740 [MV64x60_CPU2SRAM_WIN] = {
741 .base_reg = MV64360_CPU2SRAM_BASE,
745 .get_from_field = mv64x60_shift_left,
746 .map_to_field = mv64x60_shift_right,
747 .extra = MV64x60_EXTRA_CPUWIN_ENAB | 19 },
748 /* CPU->PCI 0 Remap I/O Window */
749 [MV64x60_CPU2PCI0_IO_REMAP_WIN] = {
750 .base_reg = MV64x60_CPU2PCI0_IO_REMAP,
754 .get_from_field = mv64x60_shift_left,
755 .map_to_field = mv64x60_shift_right,
757 /* CPU->PCI 1 Remap I/O Window */
758 [MV64x60_CPU2PCI1_IO_REMAP_WIN] = {
759 .base_reg = MV64x60_CPU2PCI1_IO_REMAP,
763 .get_from_field = mv64x60_shift_left,
764 .map_to_field = mv64x60_shift_right,
766 /* CPU Memory Protection Windows */
767 [MV64x60_CPU_PROT_0_WIN] = {
768 .base_reg = MV64x60_CPU_PROT_BASE_0,
769 .size_reg = MV64x60_CPU_PROT_SIZE_0,
772 .get_from_field = mv64x60_shift_left,
773 .map_to_field = mv64x60_shift_right,
774 .extra = MV64x60_EXTRA_CPUPROT_ENAB | 31 },
775 [MV64x60_CPU_PROT_1_WIN] = {
776 .base_reg = MV64x60_CPU_PROT_BASE_1,
777 .size_reg = MV64x60_CPU_PROT_SIZE_1,
780 .get_from_field = mv64x60_shift_left,
781 .map_to_field = mv64x60_shift_right,
782 .extra = MV64x60_EXTRA_CPUPROT_ENAB | 31 },
783 [MV64x60_CPU_PROT_2_WIN] = {
784 .base_reg = MV64x60_CPU_PROT_BASE_2,
785 .size_reg = MV64x60_CPU_PROT_SIZE_2,
788 .get_from_field = mv64x60_shift_left,
789 .map_to_field = mv64x60_shift_right,
790 .extra = MV64x60_EXTRA_CPUPROT_ENAB | 31 },
791 [MV64x60_CPU_PROT_3_WIN] = {
792 .base_reg = MV64x60_CPU_PROT_BASE_3,
793 .size_reg = MV64x60_CPU_PROT_SIZE_3,
796 .get_from_field = mv64x60_shift_left,
797 .map_to_field = mv64x60_shift_right,
798 .extra = MV64x60_EXTRA_CPUPROT_ENAB | 31 },
799 /* CPU Snoop Windows -- don't exist on 64360 */
800 /* PCI 0->System Memory Remap Windows */
801 [MV64x60_PCI02MEM_REMAP_0_WIN] = {
802 .base_reg = MV64x60_PCI0_SLAVE_MEM_0_REMAP,
806 .get_from_field = mv64x60_mask,
807 .map_to_field = mv64x60_mask,
809 [MV64x60_PCI02MEM_REMAP_1_WIN] = {
810 .base_reg = MV64x60_PCI0_SLAVE_MEM_1_REMAP,
814 .get_from_field = mv64x60_mask,
815 .map_to_field = mv64x60_mask,
817 [MV64x60_PCI02MEM_REMAP_2_WIN] = {
818 .base_reg = MV64x60_PCI0_SLAVE_MEM_1_REMAP,
822 .get_from_field = mv64x60_mask,
823 .map_to_field = mv64x60_mask,
825 [MV64x60_PCI02MEM_REMAP_3_WIN] = {
826 .base_reg = MV64x60_PCI0_SLAVE_MEM_1_REMAP,
830 .get_from_field = mv64x60_mask,
831 .map_to_field = mv64x60_mask,
833 /* PCI 1->System Memory Remap Windows */
834 [MV64x60_PCI12MEM_REMAP_0_WIN] = {
835 .base_reg = MV64x60_PCI1_SLAVE_MEM_0_REMAP,
839 .get_from_field = mv64x60_mask,
840 .map_to_field = mv64x60_mask,
842 [MV64x60_PCI12MEM_REMAP_1_WIN] = {
843 .base_reg = MV64x60_PCI1_SLAVE_MEM_1_REMAP,
847 .get_from_field = mv64x60_mask,
848 .map_to_field = mv64x60_mask,
850 [MV64x60_PCI12MEM_REMAP_2_WIN] = {
851 .base_reg = MV64x60_PCI1_SLAVE_MEM_1_REMAP,
855 .get_from_field = mv64x60_mask,
856 .map_to_field = mv64x60_mask,
858 [MV64x60_PCI12MEM_REMAP_3_WIN] = {
859 .base_reg = MV64x60_PCI1_SLAVE_MEM_1_REMAP,
863 .get_from_field = mv64x60_mask,
864 .map_to_field = mv64x60_mask,
866 /* ENET->System Memory Windows */
867 [MV64x60_ENET2MEM_0_WIN] = {
868 .base_reg = MV64360_ENET2MEM_0_BASE,
869 .size_reg = MV64360_ENET2MEM_0_SIZE,
872 .get_from_field = mv64x60_mask,
873 .map_to_field = mv64x60_mask,
874 .extra = MV64x60_EXTRA_ENET_ENAB | 0 },
875 [MV64x60_ENET2MEM_1_WIN] = {
876 .base_reg = MV64360_ENET2MEM_1_BASE,
877 .size_reg = MV64360_ENET2MEM_1_SIZE,
880 .get_from_field = mv64x60_mask,
881 .map_to_field = mv64x60_mask,
882 .extra = MV64x60_EXTRA_ENET_ENAB | 1 },
883 [MV64x60_ENET2MEM_2_WIN] = {
884 .base_reg = MV64360_ENET2MEM_2_BASE,
885 .size_reg = MV64360_ENET2MEM_2_SIZE,
888 .get_from_field = mv64x60_mask,
889 .map_to_field = mv64x60_mask,
890 .extra = MV64x60_EXTRA_ENET_ENAB | 2 },
891 [MV64x60_ENET2MEM_3_WIN] = {
892 .base_reg = MV64360_ENET2MEM_3_BASE,
893 .size_reg = MV64360_ENET2MEM_3_SIZE,
896 .get_from_field = mv64x60_mask,
897 .map_to_field = mv64x60_mask,
898 .extra = MV64x60_EXTRA_ENET_ENAB | 3 },
899 [MV64x60_ENET2MEM_4_WIN] = {
900 .base_reg = MV64360_ENET2MEM_4_BASE,
901 .size_reg = MV64360_ENET2MEM_4_SIZE,
904 .get_from_field = mv64x60_mask,
905 .map_to_field = mv64x60_mask,
906 .extra = MV64x60_EXTRA_ENET_ENAB | 4 },
907 [MV64x60_ENET2MEM_5_WIN] = {
908 .base_reg = MV64360_ENET2MEM_5_BASE,
909 .size_reg = MV64360_ENET2MEM_5_SIZE,
912 .get_from_field = mv64x60_mask,
913 .map_to_field = mv64x60_mask,
914 .extra = MV64x60_EXTRA_ENET_ENAB | 5 },
915 /* MPSC->System Memory Windows */
916 [MV64x60_MPSC2MEM_0_WIN] = {
917 .base_reg = MV64360_MPSC2MEM_0_BASE,
918 .size_reg = MV64360_MPSC2MEM_0_SIZE,
921 .get_from_field = mv64x60_mask,
922 .map_to_field = mv64x60_mask,
923 .extra = MV64x60_EXTRA_MPSC_ENAB | 0 },
924 [MV64x60_MPSC2MEM_1_WIN] = {
925 .base_reg = MV64360_MPSC2MEM_1_BASE,
926 .size_reg = MV64360_MPSC2MEM_1_SIZE,
929 .get_from_field = mv64x60_mask,
930 .map_to_field = mv64x60_mask,
931 .extra = MV64x60_EXTRA_MPSC_ENAB | 1 },
932 [MV64x60_MPSC2MEM_2_WIN] = {
933 .base_reg = MV64360_MPSC2MEM_2_BASE,
934 .size_reg = MV64360_MPSC2MEM_2_SIZE,
937 .get_from_field = mv64x60_mask,
938 .map_to_field = mv64x60_mask,
939 .extra = MV64x60_EXTRA_MPSC_ENAB | 2 },
940 [MV64x60_MPSC2MEM_3_WIN] = {
941 .base_reg = MV64360_MPSC2MEM_3_BASE,
942 .size_reg = MV64360_MPSC2MEM_3_SIZE,
945 .get_from_field = mv64x60_mask,
946 .map_to_field = mv64x60_mask,
947 .extra = MV64x60_EXTRA_MPSC_ENAB | 3 },
948 /* IDMA->System Memory Windows */
949 [MV64x60_IDMA2MEM_0_WIN] = {
950 .base_reg = MV64360_IDMA2MEM_0_BASE,
951 .size_reg = MV64360_IDMA2MEM_0_SIZE,
954 .get_from_field = mv64x60_mask,
955 .map_to_field = mv64x60_mask,
956 .extra = MV64x60_EXTRA_IDMA_ENAB | 0 },
957 [MV64x60_IDMA2MEM_1_WIN] = {
958 .base_reg = MV64360_IDMA2MEM_1_BASE,
959 .size_reg = MV64360_IDMA2MEM_1_SIZE,
962 .get_from_field = mv64x60_mask,
963 .map_to_field = mv64x60_mask,
964 .extra = MV64x60_EXTRA_IDMA_ENAB | 1 },
965 [MV64x60_IDMA2MEM_2_WIN] = {
966 .base_reg = MV64360_IDMA2MEM_2_BASE,
967 .size_reg = MV64360_IDMA2MEM_2_SIZE,
970 .get_from_field = mv64x60_mask,
971 .map_to_field = mv64x60_mask,
972 .extra = MV64x60_EXTRA_IDMA_ENAB | 2 },
973 [MV64x60_IDMA2MEM_3_WIN] = {
974 .base_reg = MV64360_IDMA2MEM_3_BASE,
975 .size_reg = MV64360_IDMA2MEM_3_SIZE,
978 .get_from_field = mv64x60_mask,
979 .map_to_field = mv64x60_mask,
980 .extra = MV64x60_EXTRA_IDMA_ENAB | 3 },
981 [MV64x60_IDMA2MEM_4_WIN] = {
982 .base_reg = MV64360_IDMA2MEM_4_BASE,
983 .size_reg = MV64360_IDMA2MEM_4_SIZE,
986 .get_from_field = mv64x60_mask,
987 .map_to_field = mv64x60_mask,
988 .extra = MV64x60_EXTRA_IDMA_ENAB | 4 },
989 [MV64x60_IDMA2MEM_5_WIN] = {
990 .base_reg = MV64360_IDMA2MEM_5_BASE,
991 .size_reg = MV64360_IDMA2MEM_5_SIZE,
994 .get_from_field = mv64x60_mask,
995 .map_to_field = mv64x60_mask,
996 .extra = MV64x60_EXTRA_IDMA_ENAB | 5 },
997 [MV64x60_IDMA2MEM_6_WIN] = {
998 .base_reg = MV64360_IDMA2MEM_6_BASE,
999 .size_reg = MV64360_IDMA2MEM_6_SIZE,
1002 .get_from_field = mv64x60_mask,
1003 .map_to_field = mv64x60_mask,
1004 .extra = MV64x60_EXTRA_IDMA_ENAB | 6 },
1005 [MV64x60_IDMA2MEM_7_WIN] = {
1006 .base_reg = MV64360_IDMA2MEM_7_BASE,
1007 .size_reg = MV64360_IDMA2MEM_7_SIZE,
1010 .get_from_field = mv64x60_mask,
1011 .map_to_field = mv64x60_mask,
1012 .extra = MV64x60_EXTRA_IDMA_ENAB | 7 },
1015 struct mv64x60_64bit_window
1016 mv64360_64bit_windows[MV64x60_64BIT_WIN_COUNT] __initdata = {
1017 /* CPU->PCI 0 MEM Remap Windows */
1018 [MV64x60_CPU2PCI0_MEM_0_REMAP_WIN] = {
1019 .base_hi_reg = MV64x60_CPU2PCI0_MEM_0_REMAP_HI,
1020 .base_lo_reg = MV64x60_CPU2PCI0_MEM_0_REMAP_LO,
1024 .get_from_field = mv64x60_shift_left,
1025 .map_to_field = mv64x60_shift_right,
1027 [MV64x60_CPU2PCI0_MEM_1_REMAP_WIN] = {
1028 .base_hi_reg = MV64x60_CPU2PCI0_MEM_1_REMAP_HI,
1029 .base_lo_reg = MV64x60_CPU2PCI0_MEM_1_REMAP_LO,
1033 .get_from_field = mv64x60_shift_left,
1034 .map_to_field = mv64x60_shift_right,
1036 [MV64x60_CPU2PCI0_MEM_2_REMAP_WIN] = {
1037 .base_hi_reg = MV64x60_CPU2PCI0_MEM_2_REMAP_HI,
1038 .base_lo_reg = MV64x60_CPU2PCI0_MEM_2_REMAP_LO,
1042 .get_from_field = mv64x60_shift_left,
1043 .map_to_field = mv64x60_shift_right,
1045 [MV64x60_CPU2PCI0_MEM_3_REMAP_WIN] = {
1046 .base_hi_reg = MV64x60_CPU2PCI0_MEM_3_REMAP_HI,
1047 .base_lo_reg = MV64x60_CPU2PCI0_MEM_3_REMAP_LO,
1051 .get_from_field = mv64x60_shift_left,
1052 .map_to_field = mv64x60_shift_right,
1054 /* CPU->PCI 1 MEM Remap Windows */
1055 [MV64x60_CPU2PCI1_MEM_0_REMAP_WIN] = {
1056 .base_hi_reg = MV64x60_CPU2PCI1_MEM_0_REMAP_HI,
1057 .base_lo_reg = MV64x60_CPU2PCI1_MEM_0_REMAP_LO,
1061 .get_from_field = mv64x60_shift_left,
1062 .map_to_field = mv64x60_shift_right,
1064 [MV64x60_CPU2PCI1_MEM_1_REMAP_WIN] = {
1065 .base_hi_reg = MV64x60_CPU2PCI1_MEM_1_REMAP_HI,
1066 .base_lo_reg = MV64x60_CPU2PCI1_MEM_1_REMAP_LO,
1070 .get_from_field = mv64x60_shift_left,
1071 .map_to_field = mv64x60_shift_right,
1073 [MV64x60_CPU2PCI1_MEM_2_REMAP_WIN] = {
1074 .base_hi_reg = MV64x60_CPU2PCI1_MEM_2_REMAP_HI,
1075 .base_lo_reg = MV64x60_CPU2PCI1_MEM_2_REMAP_LO,
1079 .get_from_field = mv64x60_shift_left,
1080 .map_to_field = mv64x60_shift_right,
1082 [MV64x60_CPU2PCI1_MEM_3_REMAP_WIN] = {
1083 .base_hi_reg = MV64x60_CPU2PCI1_MEM_3_REMAP_HI,
1084 .base_lo_reg = MV64x60_CPU2PCI1_MEM_3_REMAP_LO,
1088 .get_from_field = mv64x60_shift_left,
1089 .map_to_field = mv64x60_shift_right,
1091 /* PCI 0->MEM Access Control Windows */
1092 [MV64x60_PCI02MEM_ACC_CNTL_0_WIN] = {
1093 .base_hi_reg = MV64x60_PCI0_ACC_CNTL_0_BASE_HI,
1094 .base_lo_reg = MV64x60_PCI0_ACC_CNTL_0_BASE_LO,
1095 .size_reg = MV64x60_PCI0_ACC_CNTL_0_SIZE,
1098 .get_from_field = mv64x60_mask,
1099 .map_to_field = mv64x60_mask,
1100 .extra = MV64x60_EXTRA_PCIACC_ENAB | 0 },
1101 [MV64x60_PCI02MEM_ACC_CNTL_1_WIN] = {
1102 .base_hi_reg = MV64x60_PCI0_ACC_CNTL_1_BASE_HI,
1103 .base_lo_reg = MV64x60_PCI0_ACC_CNTL_1_BASE_LO,
1104 .size_reg = MV64x60_PCI0_ACC_CNTL_1_SIZE,
1107 .get_from_field = mv64x60_mask,
1108 .map_to_field = mv64x60_mask,
1109 .extra = MV64x60_EXTRA_PCIACC_ENAB | 0 },
1110 [MV64x60_PCI02MEM_ACC_CNTL_2_WIN] = {
1111 .base_hi_reg = MV64x60_PCI0_ACC_CNTL_2_BASE_HI,
1112 .base_lo_reg = MV64x60_PCI0_ACC_CNTL_2_BASE_LO,
1113 .size_reg = MV64x60_PCI0_ACC_CNTL_2_SIZE,
1116 .get_from_field = mv64x60_mask,
1117 .map_to_field = mv64x60_mask,
1118 .extra = MV64x60_EXTRA_PCIACC_ENAB | 0 },
1119 [MV64x60_PCI02MEM_ACC_CNTL_3_WIN] = {
1120 .base_hi_reg = MV64x60_PCI0_ACC_CNTL_3_BASE_HI,
1121 .base_lo_reg = MV64x60_PCI0_ACC_CNTL_3_BASE_LO,
1122 .size_reg = MV64x60_PCI0_ACC_CNTL_3_SIZE,
1125 .get_from_field = mv64x60_mask,
1126 .map_to_field = mv64x60_mask,
1127 .extra = MV64x60_EXTRA_PCIACC_ENAB | 0 },
1128 /* PCI 1->MEM Access Control Windows */
1129 [MV64x60_PCI12MEM_ACC_CNTL_0_WIN] = {
1130 .base_hi_reg = MV64x60_PCI1_ACC_CNTL_0_BASE_HI,
1131 .base_lo_reg = MV64x60_PCI1_ACC_CNTL_0_BASE_LO,
1132 .size_reg = MV64x60_PCI1_ACC_CNTL_0_SIZE,
1135 .get_from_field = mv64x60_mask,
1136 .map_to_field = mv64x60_mask,
1137 .extra = MV64x60_EXTRA_PCIACC_ENAB | 0 },
1138 [MV64x60_PCI12MEM_ACC_CNTL_1_WIN] = {
1139 .base_hi_reg = MV64x60_PCI1_ACC_CNTL_1_BASE_HI,
1140 .base_lo_reg = MV64x60_PCI1_ACC_CNTL_1_BASE_LO,
1141 .size_reg = MV64x60_PCI1_ACC_CNTL_1_SIZE,
1144 .get_from_field = mv64x60_mask,
1145 .map_to_field = mv64x60_mask,
1146 .extra = MV64x60_EXTRA_PCIACC_ENAB | 0 },
1147 [MV64x60_PCI12MEM_ACC_CNTL_2_WIN] = {
1148 .base_hi_reg = MV64x60_PCI1_ACC_CNTL_2_BASE_HI,
1149 .base_lo_reg = MV64x60_PCI1_ACC_CNTL_2_BASE_LO,
1150 .size_reg = MV64x60_PCI1_ACC_CNTL_2_SIZE,
1153 .get_from_field = mv64x60_mask,
1154 .map_to_field = mv64x60_mask,
1155 .extra = MV64x60_EXTRA_PCIACC_ENAB | 0 },
1156 [MV64x60_PCI12MEM_ACC_CNTL_3_WIN] = {
1157 .base_hi_reg = MV64x60_PCI1_ACC_CNTL_3_BASE_HI,
1158 .base_lo_reg = MV64x60_PCI1_ACC_CNTL_3_BASE_LO,
1159 .size_reg = MV64x60_PCI1_ACC_CNTL_3_SIZE,
1162 .get_from_field = mv64x60_mask,
1163 .map_to_field = mv64x60_mask,
1164 .extra = MV64x60_EXTRA_PCIACC_ENAB | 0 },
1165 /* PCI 0->MEM Snoop Windows -- don't exist on 64360 */
1166 /* PCI 1->MEM Snoop Windows -- don't exist on 64360 */