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 */