2 * Tables with info on how to manipulate the 32 & 64 bit windows on the
3 * various types of Marvell bridge chips.
5 * Author: Mark A. Greer <mgreer@mvista.com>
7 * 2004 (c) MontaVista, Software, Inc. This file is licensed under
8 * the terms of the GNU General Public License version 2. This program
9 * is licensed "as is" without any warranty of any kind, whether express
12 #include <linux/kernel.h>
13 #include <linux/init.h>
14 #include <linux/pci.h>
15 #include <linux/slab.h>
16 #include <linux/module.h>
17 #include <linux/string.h>
18 #include <linux/mv643xx.h>
20 #include <asm/byteorder.h>
23 #include <asm/uaccess.h>
24 #include <asm/machdep.h>
25 #include <asm/pci-bridge.h>
26 #include <asm/delay.h>
27 #include <asm/mv64x60.h>
31 *****************************************************************************
33 * Tables describing how to set up windows on each type of bridge
35 *****************************************************************************
37 struct mv64x60_32bit_window
38 gt64260_32bit_windows
[MV64x60_32BIT_WIN_COUNT
] __initdata
= {
39 /* CPU->MEM Windows */
40 [MV64x60_CPU2MEM_0_WIN
] = {
41 .base_reg
= MV64x60_CPU2MEM_0_BASE
,
42 .size_reg
= MV64x60_CPU2MEM_0_SIZE
,
45 .get_from_field
= mv64x60_shift_left
,
46 .map_to_field
= mv64x60_shift_right
,
48 [MV64x60_CPU2MEM_1_WIN
] = {
49 .base_reg
= MV64x60_CPU2MEM_1_BASE
,
50 .size_reg
= MV64x60_CPU2MEM_1_SIZE
,
53 .get_from_field
= mv64x60_shift_left
,
54 .map_to_field
= mv64x60_shift_right
,
56 [MV64x60_CPU2MEM_2_WIN
] = {
57 .base_reg
= MV64x60_CPU2MEM_2_BASE
,
58 .size_reg
= MV64x60_CPU2MEM_2_SIZE
,
61 .get_from_field
= mv64x60_shift_left
,
62 .map_to_field
= mv64x60_shift_right
,
64 [MV64x60_CPU2MEM_3_WIN
] = {
65 .base_reg
= MV64x60_CPU2MEM_3_BASE
,
66 .size_reg
= MV64x60_CPU2MEM_3_SIZE
,
69 .get_from_field
= mv64x60_shift_left
,
70 .map_to_field
= mv64x60_shift_right
,
72 /* CPU->Device Windows */
73 [MV64x60_CPU2DEV_0_WIN
] = {
74 .base_reg
= MV64x60_CPU2DEV_0_BASE
,
75 .size_reg
= MV64x60_CPU2DEV_0_SIZE
,
78 .get_from_field
= mv64x60_shift_left
,
79 .map_to_field
= mv64x60_shift_right
,
81 [MV64x60_CPU2DEV_1_WIN
] = {
82 .base_reg
= MV64x60_CPU2DEV_1_BASE
,
83 .size_reg
= MV64x60_CPU2DEV_1_SIZE
,
86 .get_from_field
= mv64x60_shift_left
,
87 .map_to_field
= mv64x60_shift_right
,
89 [MV64x60_CPU2DEV_2_WIN
] = {
90 .base_reg
= MV64x60_CPU2DEV_2_BASE
,
91 .size_reg
= MV64x60_CPU2DEV_2_SIZE
,
94 .get_from_field
= mv64x60_shift_left
,
95 .map_to_field
= mv64x60_shift_right
,
97 [MV64x60_CPU2DEV_3_WIN
] = {
98 .base_reg
= MV64x60_CPU2DEV_3_BASE
,
99 .size_reg
= MV64x60_CPU2DEV_3_SIZE
,
102 .get_from_field
= mv64x60_shift_left
,
103 .map_to_field
= mv64x60_shift_right
,
105 /* CPU->Boot Window */
106 [MV64x60_CPU2BOOT_WIN
] = {
107 .base_reg
= MV64x60_CPU2BOOT_0_BASE
,
108 .size_reg
= MV64x60_CPU2BOOT_0_SIZE
,
111 .get_from_field
= mv64x60_shift_left
,
112 .map_to_field
= mv64x60_shift_right
,
114 /* CPU->PCI 0 Windows */
115 [MV64x60_CPU2PCI0_IO_WIN
] = {
116 .base_reg
= MV64x60_CPU2PCI0_IO_BASE
,
117 .size_reg
= MV64x60_CPU2PCI0_IO_SIZE
,
120 .get_from_field
= mv64x60_shift_left
,
121 .map_to_field
= mv64x60_shift_right
,
123 [MV64x60_CPU2PCI0_MEM_0_WIN
] = {
124 .base_reg
= MV64x60_CPU2PCI0_MEM_0_BASE
,
125 .size_reg
= MV64x60_CPU2PCI0_MEM_0_SIZE
,
128 .get_from_field
= mv64x60_shift_left
,
129 .map_to_field
= mv64x60_shift_right
,
131 [MV64x60_CPU2PCI0_MEM_1_WIN
] = {
132 .base_reg
= MV64x60_CPU2PCI0_MEM_1_BASE
,
133 .size_reg
= MV64x60_CPU2PCI0_MEM_1_SIZE
,
136 .get_from_field
= mv64x60_shift_left
,
137 .map_to_field
= mv64x60_shift_right
,
139 [MV64x60_CPU2PCI0_MEM_2_WIN
] = {
140 .base_reg
= MV64x60_CPU2PCI0_MEM_2_BASE
,
141 .size_reg
= MV64x60_CPU2PCI0_MEM_2_SIZE
,
144 .get_from_field
= mv64x60_shift_left
,
145 .map_to_field
= mv64x60_shift_right
,
147 [MV64x60_CPU2PCI0_MEM_3_WIN
] = {
148 .base_reg
= MV64x60_CPU2PCI0_MEM_3_BASE
,
149 .size_reg
= MV64x60_CPU2PCI0_MEM_3_SIZE
,
152 .get_from_field
= mv64x60_shift_left
,
153 .map_to_field
= mv64x60_shift_right
,
155 /* CPU->PCI 1 Windows */
156 [MV64x60_CPU2PCI1_IO_WIN
] = {
157 .base_reg
= MV64x60_CPU2PCI1_IO_BASE
,
158 .size_reg
= MV64x60_CPU2PCI1_IO_SIZE
,
161 .get_from_field
= mv64x60_shift_left
,
162 .map_to_field
= mv64x60_shift_right
,
164 [MV64x60_CPU2PCI1_MEM_0_WIN
] = {
165 .base_reg
= MV64x60_CPU2PCI1_MEM_0_BASE
,
166 .size_reg
= MV64x60_CPU2PCI1_MEM_0_SIZE
,
169 .get_from_field
= mv64x60_shift_left
,
170 .map_to_field
= mv64x60_shift_right
,
172 [MV64x60_CPU2PCI1_MEM_1_WIN
] = {
173 .base_reg
= MV64x60_CPU2PCI1_MEM_1_BASE
,
174 .size_reg
= MV64x60_CPU2PCI1_MEM_1_SIZE
,
177 .get_from_field
= mv64x60_shift_left
,
178 .map_to_field
= mv64x60_shift_right
,
180 [MV64x60_CPU2PCI1_MEM_2_WIN
] = {
181 .base_reg
= MV64x60_CPU2PCI1_MEM_2_BASE
,
182 .size_reg
= MV64x60_CPU2PCI1_MEM_2_SIZE
,
185 .get_from_field
= mv64x60_shift_left
,
186 .map_to_field
= mv64x60_shift_right
,
188 [MV64x60_CPU2PCI1_MEM_3_WIN
] = {
189 .base_reg
= MV64x60_CPU2PCI1_MEM_3_BASE
,
190 .size_reg
= MV64x60_CPU2PCI1_MEM_3_SIZE
,
193 .get_from_field
= mv64x60_shift_left
,
194 .map_to_field
= mv64x60_shift_right
,
196 /* CPU->SRAM Window (64260 has no integrated SRAM) */
197 /* CPU->PCI 0 Remap I/O Window */
198 [MV64x60_CPU2PCI0_IO_REMAP_WIN
] = {
199 .base_reg
= MV64x60_CPU2PCI0_IO_REMAP
,
203 .get_from_field
= mv64x60_shift_left
,
204 .map_to_field
= mv64x60_shift_right
,
206 /* CPU->PCI 1 Remap I/O Window */
207 [MV64x60_CPU2PCI1_IO_REMAP_WIN
] = {
208 .base_reg
= MV64x60_CPU2PCI1_IO_REMAP
,
212 .get_from_field
= mv64x60_shift_left
,
213 .map_to_field
= mv64x60_shift_right
,
215 /* CPU Memory Protection Windows */
216 [MV64x60_CPU_PROT_0_WIN
] = {
217 .base_reg
= MV64x60_CPU_PROT_BASE_0
,
218 .size_reg
= MV64x60_CPU_PROT_SIZE_0
,
221 .get_from_field
= mv64x60_shift_left
,
222 .map_to_field
= mv64x60_shift_right
,
224 [MV64x60_CPU_PROT_1_WIN
] = {
225 .base_reg
= MV64x60_CPU_PROT_BASE_1
,
226 .size_reg
= MV64x60_CPU_PROT_SIZE_1
,
229 .get_from_field
= mv64x60_shift_left
,
230 .map_to_field
= mv64x60_shift_right
,
232 [MV64x60_CPU_PROT_2_WIN
] = {
233 .base_reg
= MV64x60_CPU_PROT_BASE_2
,
234 .size_reg
= MV64x60_CPU_PROT_SIZE_2
,
237 .get_from_field
= mv64x60_shift_left
,
238 .map_to_field
= mv64x60_shift_right
,
240 [MV64x60_CPU_PROT_3_WIN
] = {
241 .base_reg
= MV64x60_CPU_PROT_BASE_3
,
242 .size_reg
= MV64x60_CPU_PROT_SIZE_3
,
245 .get_from_field
= mv64x60_shift_left
,
246 .map_to_field
= mv64x60_shift_right
,
248 /* CPU Snoop Windows */
249 [MV64x60_CPU_SNOOP_0_WIN
] = {
250 .base_reg
= GT64260_CPU_SNOOP_BASE_0
,
251 .size_reg
= GT64260_CPU_SNOOP_SIZE_0
,
254 .get_from_field
= mv64x60_shift_left
,
255 .map_to_field
= mv64x60_shift_right
,
257 [MV64x60_CPU_SNOOP_1_WIN
] = {
258 .base_reg
= GT64260_CPU_SNOOP_BASE_1
,
259 .size_reg
= GT64260_CPU_SNOOP_SIZE_1
,
262 .get_from_field
= mv64x60_shift_left
,
263 .map_to_field
= mv64x60_shift_right
,
265 [MV64x60_CPU_SNOOP_2_WIN
] = {
266 .base_reg
= GT64260_CPU_SNOOP_BASE_2
,
267 .size_reg
= GT64260_CPU_SNOOP_SIZE_2
,
270 .get_from_field
= mv64x60_shift_left
,
271 .map_to_field
= mv64x60_shift_right
,
273 [MV64x60_CPU_SNOOP_3_WIN
] = {
274 .base_reg
= GT64260_CPU_SNOOP_BASE_3
,
275 .size_reg
= GT64260_CPU_SNOOP_SIZE_3
,
278 .get_from_field
= mv64x60_shift_left
,
279 .map_to_field
= mv64x60_shift_right
,
281 /* PCI 0->System Memory Remap Windows */
282 [MV64x60_PCI02MEM_REMAP_0_WIN
] = {
283 .base_reg
= MV64x60_PCI0_SLAVE_MEM_0_REMAP
,
287 .get_from_field
= mv64x60_mask
,
288 .map_to_field
= mv64x60_mask
,
290 [MV64x60_PCI02MEM_REMAP_1_WIN
] = {
291 .base_reg
= MV64x60_PCI0_SLAVE_MEM_1_REMAP
,
295 .get_from_field
= mv64x60_mask
,
296 .map_to_field
= mv64x60_mask
,
298 [MV64x60_PCI02MEM_REMAP_2_WIN
] = {
299 .base_reg
= MV64x60_PCI0_SLAVE_MEM_1_REMAP
,
303 .get_from_field
= mv64x60_mask
,
304 .map_to_field
= mv64x60_mask
,
306 [MV64x60_PCI02MEM_REMAP_3_WIN
] = {
307 .base_reg
= MV64x60_PCI0_SLAVE_MEM_1_REMAP
,
311 .get_from_field
= mv64x60_mask
,
312 .map_to_field
= mv64x60_mask
,
314 /* PCI 1->System Memory Remap Windows */
315 [MV64x60_PCI12MEM_REMAP_0_WIN
] = {
316 .base_reg
= MV64x60_PCI1_SLAVE_MEM_0_REMAP
,
320 .get_from_field
= mv64x60_mask
,
321 .map_to_field
= mv64x60_mask
,
323 [MV64x60_PCI12MEM_REMAP_1_WIN
] = {
324 .base_reg
= MV64x60_PCI1_SLAVE_MEM_1_REMAP
,
328 .get_from_field
= mv64x60_mask
,
329 .map_to_field
= mv64x60_mask
,
331 [MV64x60_PCI12MEM_REMAP_2_WIN
] = {
332 .base_reg
= MV64x60_PCI1_SLAVE_MEM_1_REMAP
,
336 .get_from_field
= mv64x60_mask
,
337 .map_to_field
= mv64x60_mask
,
339 [MV64x60_PCI12MEM_REMAP_3_WIN
] = {
340 .base_reg
= MV64x60_PCI1_SLAVE_MEM_1_REMAP
,
344 .get_from_field
= mv64x60_mask
,
345 .map_to_field
= mv64x60_mask
,
347 /* ENET->SRAM Window (64260 doesn't have separate windows) */
348 /* MPSC->SRAM Window (64260 doesn't have separate windows) */
349 /* IDMA->SRAM Window (64260 doesn't have separate windows) */
352 struct mv64x60_64bit_window
353 gt64260_64bit_windows
[MV64x60_64BIT_WIN_COUNT
] __initdata
= {
354 /* CPU->PCI 0 MEM Remap Windows */
355 [MV64x60_CPU2PCI0_MEM_0_REMAP_WIN
] = {
356 .base_hi_reg
= MV64x60_CPU2PCI0_MEM_0_REMAP_HI
,
357 .base_lo_reg
= MV64x60_CPU2PCI0_MEM_0_REMAP_LO
,
361 .get_from_field
= mv64x60_shift_left
,
362 .map_to_field
= mv64x60_shift_right
,
364 [MV64x60_CPU2PCI0_MEM_1_REMAP_WIN
] = {
365 .base_hi_reg
= MV64x60_CPU2PCI0_MEM_1_REMAP_HI
,
366 .base_lo_reg
= MV64x60_CPU2PCI0_MEM_1_REMAP_LO
,
370 .get_from_field
= mv64x60_shift_left
,
371 .map_to_field
= mv64x60_shift_right
,
373 [MV64x60_CPU2PCI0_MEM_2_REMAP_WIN
] = {
374 .base_hi_reg
= MV64x60_CPU2PCI0_MEM_2_REMAP_HI
,
375 .base_lo_reg
= MV64x60_CPU2PCI0_MEM_2_REMAP_LO
,
379 .get_from_field
= mv64x60_shift_left
,
380 .map_to_field
= mv64x60_shift_right
,
382 [MV64x60_CPU2PCI0_MEM_3_REMAP_WIN
] = {
383 .base_hi_reg
= MV64x60_CPU2PCI0_MEM_3_REMAP_HI
,
384 .base_lo_reg
= MV64x60_CPU2PCI0_MEM_3_REMAP_LO
,
388 .get_from_field
= mv64x60_shift_left
,
389 .map_to_field
= mv64x60_shift_right
,
391 /* CPU->PCI 1 MEM Remap Windows */
392 [MV64x60_CPU2PCI1_MEM_0_REMAP_WIN
] = {
393 .base_hi_reg
= MV64x60_CPU2PCI1_MEM_0_REMAP_HI
,
394 .base_lo_reg
= MV64x60_CPU2PCI1_MEM_0_REMAP_LO
,
398 .get_from_field
= mv64x60_shift_left
,
399 .map_to_field
= mv64x60_shift_right
,
401 [MV64x60_CPU2PCI1_MEM_1_REMAP_WIN
] = {
402 .base_hi_reg
= MV64x60_CPU2PCI1_MEM_1_REMAP_HI
,
403 .base_lo_reg
= MV64x60_CPU2PCI1_MEM_1_REMAP_LO
,
407 .get_from_field
= mv64x60_shift_left
,
408 .map_to_field
= mv64x60_shift_right
,
410 [MV64x60_CPU2PCI1_MEM_2_REMAP_WIN
] = {
411 .base_hi_reg
= MV64x60_CPU2PCI1_MEM_2_REMAP_HI
,
412 .base_lo_reg
= MV64x60_CPU2PCI1_MEM_2_REMAP_LO
,
416 .get_from_field
= mv64x60_shift_left
,
417 .map_to_field
= mv64x60_shift_right
,
419 [MV64x60_CPU2PCI1_MEM_3_REMAP_WIN
] = {
420 .base_hi_reg
= MV64x60_CPU2PCI1_MEM_3_REMAP_HI
,
421 .base_lo_reg
= MV64x60_CPU2PCI1_MEM_3_REMAP_LO
,
425 .get_from_field
= mv64x60_shift_left
,
426 .map_to_field
= mv64x60_shift_right
,
428 /* PCI 0->MEM Access Control Windows */
429 [MV64x60_PCI02MEM_ACC_CNTL_0_WIN
] = {
430 .base_hi_reg
= MV64x60_PCI0_ACC_CNTL_0_BASE_HI
,
431 .base_lo_reg
= MV64x60_PCI0_ACC_CNTL_0_BASE_LO
,
432 .size_reg
= MV64x60_PCI0_ACC_CNTL_0_SIZE
,
435 .get_from_field
= mv64x60_shift_left
,
436 .map_to_field
= mv64x60_shift_right
,
438 [MV64x60_PCI02MEM_ACC_CNTL_1_WIN
] = {
439 .base_hi_reg
= MV64x60_PCI0_ACC_CNTL_1_BASE_HI
,
440 .base_lo_reg
= MV64x60_PCI0_ACC_CNTL_1_BASE_LO
,
441 .size_reg
= MV64x60_PCI0_ACC_CNTL_1_SIZE
,
444 .get_from_field
= mv64x60_shift_left
,
445 .map_to_field
= mv64x60_shift_right
,
447 [MV64x60_PCI02MEM_ACC_CNTL_2_WIN
] = {
448 .base_hi_reg
= MV64x60_PCI0_ACC_CNTL_2_BASE_HI
,
449 .base_lo_reg
= MV64x60_PCI0_ACC_CNTL_2_BASE_LO
,
450 .size_reg
= MV64x60_PCI0_ACC_CNTL_2_SIZE
,
453 .get_from_field
= mv64x60_shift_left
,
454 .map_to_field
= mv64x60_shift_right
,
456 [MV64x60_PCI02MEM_ACC_CNTL_3_WIN
] = {
457 .base_hi_reg
= MV64x60_PCI0_ACC_CNTL_3_BASE_HI
,
458 .base_lo_reg
= MV64x60_PCI0_ACC_CNTL_3_BASE_LO
,
459 .size_reg
= MV64x60_PCI0_ACC_CNTL_3_SIZE
,
462 .get_from_field
= mv64x60_shift_left
,
463 .map_to_field
= mv64x60_shift_right
,
465 /* PCI 1->MEM Access Control Windows */
466 [MV64x60_PCI12MEM_ACC_CNTL_0_WIN
] = {
467 .base_hi_reg
= MV64x60_PCI1_ACC_CNTL_0_BASE_HI
,
468 .base_lo_reg
= MV64x60_PCI1_ACC_CNTL_0_BASE_LO
,
469 .size_reg
= MV64x60_PCI1_ACC_CNTL_0_SIZE
,
472 .get_from_field
= mv64x60_shift_left
,
473 .map_to_field
= mv64x60_shift_right
,
475 [MV64x60_PCI12MEM_ACC_CNTL_1_WIN
] = {
476 .base_hi_reg
= MV64x60_PCI1_ACC_CNTL_1_BASE_HI
,
477 .base_lo_reg
= MV64x60_PCI1_ACC_CNTL_1_BASE_LO
,
478 .size_reg
= MV64x60_PCI1_ACC_CNTL_1_SIZE
,
481 .get_from_field
= mv64x60_shift_left
,
482 .map_to_field
= mv64x60_shift_right
,
484 [MV64x60_PCI12MEM_ACC_CNTL_2_WIN
] = {
485 .base_hi_reg
= MV64x60_PCI1_ACC_CNTL_2_BASE_HI
,
486 .base_lo_reg
= MV64x60_PCI1_ACC_CNTL_2_BASE_LO
,
487 .size_reg
= MV64x60_PCI1_ACC_CNTL_2_SIZE
,
490 .get_from_field
= mv64x60_shift_left
,
491 .map_to_field
= mv64x60_shift_right
,
493 [MV64x60_PCI12MEM_ACC_CNTL_3_WIN
] = {
494 .base_hi_reg
= MV64x60_PCI1_ACC_CNTL_3_BASE_HI
,
495 .base_lo_reg
= MV64x60_PCI1_ACC_CNTL_3_BASE_LO
,
496 .size_reg
= MV64x60_PCI1_ACC_CNTL_3_SIZE
,
499 .get_from_field
= mv64x60_shift_left
,
500 .map_to_field
= mv64x60_shift_right
,
502 /* PCI 0->MEM Snoop Windows */
503 [MV64x60_PCI02MEM_SNOOP_0_WIN
] = {
504 .base_hi_reg
= GT64260_PCI0_SNOOP_0_BASE_HI
,
505 .base_lo_reg
= GT64260_PCI0_SNOOP_0_BASE_LO
,
506 .size_reg
= GT64260_PCI0_SNOOP_0_SIZE
,
509 .get_from_field
= mv64x60_shift_left
,
510 .map_to_field
= mv64x60_shift_right
,
512 [MV64x60_PCI02MEM_SNOOP_1_WIN
] = {
513 .base_hi_reg
= GT64260_PCI0_SNOOP_1_BASE_HI
,
514 .base_lo_reg
= GT64260_PCI0_SNOOP_1_BASE_LO
,
515 .size_reg
= GT64260_PCI0_SNOOP_1_SIZE
,
518 .get_from_field
= mv64x60_shift_left
,
519 .map_to_field
= mv64x60_shift_right
,
521 [MV64x60_PCI02MEM_SNOOP_2_WIN
] = {
522 .base_hi_reg
= GT64260_PCI0_SNOOP_2_BASE_HI
,
523 .base_lo_reg
= GT64260_PCI0_SNOOP_2_BASE_LO
,
524 .size_reg
= GT64260_PCI0_SNOOP_2_SIZE
,
527 .get_from_field
= mv64x60_shift_left
,
528 .map_to_field
= mv64x60_shift_right
,
530 [MV64x60_PCI02MEM_SNOOP_3_WIN
] = {
531 .base_hi_reg
= GT64260_PCI0_SNOOP_3_BASE_HI
,
532 .base_lo_reg
= GT64260_PCI0_SNOOP_3_BASE_LO
,
533 .size_reg
= GT64260_PCI0_SNOOP_3_SIZE
,
536 .get_from_field
= mv64x60_shift_left
,
537 .map_to_field
= mv64x60_shift_right
,
539 /* PCI 1->MEM Snoop Windows */
540 [MV64x60_PCI12MEM_SNOOP_0_WIN
] = {
541 .base_hi_reg
= GT64260_PCI1_SNOOP_0_BASE_HI
,
542 .base_lo_reg
= GT64260_PCI1_SNOOP_0_BASE_LO
,
543 .size_reg
= GT64260_PCI1_SNOOP_0_SIZE
,
546 .get_from_field
= mv64x60_shift_left
,
547 .map_to_field
= mv64x60_shift_right
,
549 [MV64x60_PCI12MEM_SNOOP_1_WIN
] = {
550 .base_hi_reg
= GT64260_PCI1_SNOOP_1_BASE_HI
,
551 .base_lo_reg
= GT64260_PCI1_SNOOP_1_BASE_LO
,
552 .size_reg
= GT64260_PCI1_SNOOP_1_SIZE
,
555 .get_from_field
= mv64x60_shift_left
,
556 .map_to_field
= mv64x60_shift_right
,
558 [MV64x60_PCI12MEM_SNOOP_2_WIN
] = {
559 .base_hi_reg
= GT64260_PCI1_SNOOP_2_BASE_HI
,
560 .base_lo_reg
= GT64260_PCI1_SNOOP_2_BASE_LO
,
561 .size_reg
= GT64260_PCI1_SNOOP_2_SIZE
,
564 .get_from_field
= mv64x60_shift_left
,
565 .map_to_field
= mv64x60_shift_right
,
567 [MV64x60_PCI12MEM_SNOOP_3_WIN
] = {
568 .base_hi_reg
= GT64260_PCI1_SNOOP_3_BASE_HI
,
569 .base_lo_reg
= GT64260_PCI1_SNOOP_3_BASE_LO
,
570 .size_reg
= GT64260_PCI1_SNOOP_3_SIZE
,
573 .get_from_field
= mv64x60_shift_left
,
574 .map_to_field
= mv64x60_shift_right
,
578 struct mv64x60_32bit_window
579 mv64360_32bit_windows
[MV64x60_32BIT_WIN_COUNT
] __initdata
= {
580 /* CPU->MEM Windows */
581 [MV64x60_CPU2MEM_0_WIN
] = {
582 .base_reg
= MV64x60_CPU2MEM_0_BASE
,
583 .size_reg
= MV64x60_CPU2MEM_0_SIZE
,
586 .get_from_field
= mv64x60_shift_left
,
587 .map_to_field
= mv64x60_shift_right
,
588 .extra
= MV64x60_EXTRA_CPUWIN_ENAB
| 0 },
589 [MV64x60_CPU2MEM_1_WIN
] = {
590 .base_reg
= MV64x60_CPU2MEM_1_BASE
,
591 .size_reg
= MV64x60_CPU2MEM_1_SIZE
,
594 .get_from_field
= mv64x60_shift_left
,
595 .map_to_field
= mv64x60_shift_right
,
596 .extra
= MV64x60_EXTRA_CPUWIN_ENAB
| 1 },
597 [MV64x60_CPU2MEM_2_WIN
] = {
598 .base_reg
= MV64x60_CPU2MEM_2_BASE
,
599 .size_reg
= MV64x60_CPU2MEM_2_SIZE
,
602 .get_from_field
= mv64x60_shift_left
,
603 .map_to_field
= mv64x60_shift_right
,
604 .extra
= MV64x60_EXTRA_CPUWIN_ENAB
| 2 },
605 [MV64x60_CPU2MEM_3_WIN
] = {
606 .base_reg
= MV64x60_CPU2MEM_3_BASE
,
607 .size_reg
= MV64x60_CPU2MEM_3_SIZE
,
610 .get_from_field
= mv64x60_shift_left
,
611 .map_to_field
= mv64x60_shift_right
,
612 .extra
= MV64x60_EXTRA_CPUWIN_ENAB
| 3 },
613 /* CPU->Device Windows */
614 [MV64x60_CPU2DEV_0_WIN
] = {
615 .base_reg
= MV64x60_CPU2DEV_0_BASE
,
616 .size_reg
= MV64x60_CPU2DEV_0_SIZE
,
619 .get_from_field
= mv64x60_shift_left
,
620 .map_to_field
= mv64x60_shift_right
,
621 .extra
= MV64x60_EXTRA_CPUWIN_ENAB
| 4 },
622 [MV64x60_CPU2DEV_1_WIN
] = {
623 .base_reg
= MV64x60_CPU2DEV_1_BASE
,
624 .size_reg
= MV64x60_CPU2DEV_1_SIZE
,
627 .get_from_field
= mv64x60_shift_left
,
628 .map_to_field
= mv64x60_shift_right
,
629 .extra
= MV64x60_EXTRA_CPUWIN_ENAB
| 5 },
630 [MV64x60_CPU2DEV_2_WIN
] = {
631 .base_reg
= MV64x60_CPU2DEV_2_BASE
,
632 .size_reg
= MV64x60_CPU2DEV_2_SIZE
,
635 .get_from_field
= mv64x60_shift_left
,
636 .map_to_field
= mv64x60_shift_right
,
637 .extra
= MV64x60_EXTRA_CPUWIN_ENAB
| 6 },
638 [MV64x60_CPU2DEV_3_WIN
] = {
639 .base_reg
= MV64x60_CPU2DEV_3_BASE
,
640 .size_reg
= MV64x60_CPU2DEV_3_SIZE
,
643 .get_from_field
= mv64x60_shift_left
,
644 .map_to_field
= mv64x60_shift_right
,
645 .extra
= MV64x60_EXTRA_CPUWIN_ENAB
| 7 },
646 /* CPU->Boot Window */
647 [MV64x60_CPU2BOOT_WIN
] = {
648 .base_reg
= MV64x60_CPU2BOOT_0_BASE
,
649 .size_reg
= MV64x60_CPU2BOOT_0_SIZE
,
652 .get_from_field
= mv64x60_shift_left
,
653 .map_to_field
= mv64x60_shift_right
,
654 .extra
= MV64x60_EXTRA_CPUWIN_ENAB
| 8 },
655 /* CPU->PCI 0 Windows */
656 [MV64x60_CPU2PCI0_IO_WIN
] = {
657 .base_reg
= MV64x60_CPU2PCI0_IO_BASE
,
658 .size_reg
= MV64x60_CPU2PCI0_IO_SIZE
,
661 .get_from_field
= mv64x60_shift_left
,
662 .map_to_field
= mv64x60_shift_right
,
663 .extra
= MV64x60_EXTRA_CPUWIN_ENAB
| 9 },
664 [MV64x60_CPU2PCI0_MEM_0_WIN
] = {
665 .base_reg
= MV64x60_CPU2PCI0_MEM_0_BASE
,
666 .size_reg
= MV64x60_CPU2PCI0_MEM_0_SIZE
,
669 .get_from_field
= mv64x60_shift_left
,
670 .map_to_field
= mv64x60_shift_right
,
671 .extra
= MV64x60_EXTRA_CPUWIN_ENAB
| 10 },
672 [MV64x60_CPU2PCI0_MEM_1_WIN
] = {
673 .base_reg
= MV64x60_CPU2PCI0_MEM_1_BASE
,
674 .size_reg
= MV64x60_CPU2PCI0_MEM_1_SIZE
,
677 .get_from_field
= mv64x60_shift_left
,
678 .map_to_field
= mv64x60_shift_right
,
679 .extra
= MV64x60_EXTRA_CPUWIN_ENAB
| 11 },
680 [MV64x60_CPU2PCI0_MEM_2_WIN
] = {
681 .base_reg
= MV64x60_CPU2PCI0_MEM_2_BASE
,
682 .size_reg
= MV64x60_CPU2PCI0_MEM_2_SIZE
,
685 .get_from_field
= mv64x60_shift_left
,
686 .map_to_field
= mv64x60_shift_right
,
687 .extra
= MV64x60_EXTRA_CPUWIN_ENAB
| 12 },
688 [MV64x60_CPU2PCI0_MEM_3_WIN
] = {
689 .base_reg
= MV64x60_CPU2PCI0_MEM_3_BASE
,
690 .size_reg
= MV64x60_CPU2PCI0_MEM_3_SIZE
,
693 .get_from_field
= mv64x60_shift_left
,
694 .map_to_field
= mv64x60_shift_right
,
695 .extra
= MV64x60_EXTRA_CPUWIN_ENAB
| 13 },
696 /* CPU->PCI 1 Windows */
697 [MV64x60_CPU2PCI1_IO_WIN
] = {
698 .base_reg
= MV64x60_CPU2PCI1_IO_BASE
,
699 .size_reg
= MV64x60_CPU2PCI1_IO_SIZE
,
702 .get_from_field
= mv64x60_shift_left
,
703 .map_to_field
= mv64x60_shift_right
,
704 .extra
= MV64x60_EXTRA_CPUWIN_ENAB
| 14 },
705 [MV64x60_CPU2PCI1_MEM_0_WIN
] = {
706 .base_reg
= MV64x60_CPU2PCI1_MEM_0_BASE
,
707 .size_reg
= MV64x60_CPU2PCI1_MEM_0_SIZE
,
710 .get_from_field
= mv64x60_shift_left
,
711 .map_to_field
= mv64x60_shift_right
,
712 .extra
= MV64x60_EXTRA_CPUWIN_ENAB
| 15 },
713 [MV64x60_CPU2PCI1_MEM_1_WIN
] = {
714 .base_reg
= MV64x60_CPU2PCI1_MEM_1_BASE
,
715 .size_reg
= MV64x60_CPU2PCI1_MEM_1_SIZE
,
718 .get_from_field
= mv64x60_shift_left
,
719 .map_to_field
= mv64x60_shift_right
,
720 .extra
= MV64x60_EXTRA_CPUWIN_ENAB
| 16 },
721 [MV64x60_CPU2PCI1_MEM_2_WIN
] = {
722 .base_reg
= MV64x60_CPU2PCI1_MEM_2_BASE
,
723 .size_reg
= MV64x60_CPU2PCI1_MEM_2_SIZE
,
726 .get_from_field
= mv64x60_shift_left
,
727 .map_to_field
= mv64x60_shift_right
,
728 .extra
= MV64x60_EXTRA_CPUWIN_ENAB
| 17 },
729 [MV64x60_CPU2PCI1_MEM_3_WIN
] = {
730 .base_reg
= MV64x60_CPU2PCI1_MEM_3_BASE
,
731 .size_reg
= MV64x60_CPU2PCI1_MEM_3_SIZE
,
734 .get_from_field
= mv64x60_shift_left
,
735 .map_to_field
= mv64x60_shift_right
,
736 .extra
= MV64x60_EXTRA_CPUWIN_ENAB
| 18 },
737 /* CPU->SRAM Window */
738 [MV64x60_CPU2SRAM_WIN
] = {
739 .base_reg
= MV64360_CPU2SRAM_BASE
,
743 .get_from_field
= mv64x60_shift_left
,
744 .map_to_field
= mv64x60_shift_right
,
745 .extra
= MV64x60_EXTRA_CPUWIN_ENAB
| 19 },
746 /* CPU->PCI 0 Remap I/O Window */
747 [MV64x60_CPU2PCI0_IO_REMAP_WIN
] = {
748 .base_reg
= MV64x60_CPU2PCI0_IO_REMAP
,
752 .get_from_field
= mv64x60_shift_left
,
753 .map_to_field
= mv64x60_shift_right
,
755 /* CPU->PCI 1 Remap I/O Window */
756 [MV64x60_CPU2PCI1_IO_REMAP_WIN
] = {
757 .base_reg
= MV64x60_CPU2PCI1_IO_REMAP
,
761 .get_from_field
= mv64x60_shift_left
,
762 .map_to_field
= mv64x60_shift_right
,
764 /* CPU Memory Protection Windows */
765 [MV64x60_CPU_PROT_0_WIN
] = {
766 .base_reg
= MV64x60_CPU_PROT_BASE_0
,
767 .size_reg
= MV64x60_CPU_PROT_SIZE_0
,
770 .get_from_field
= mv64x60_shift_left
,
771 .map_to_field
= mv64x60_shift_right
,
772 .extra
= MV64x60_EXTRA_CPUPROT_ENAB
| 31 },
773 [MV64x60_CPU_PROT_1_WIN
] = {
774 .base_reg
= MV64x60_CPU_PROT_BASE_1
,
775 .size_reg
= MV64x60_CPU_PROT_SIZE_1
,
778 .get_from_field
= mv64x60_shift_left
,
779 .map_to_field
= mv64x60_shift_right
,
780 .extra
= MV64x60_EXTRA_CPUPROT_ENAB
| 31 },
781 [MV64x60_CPU_PROT_2_WIN
] = {
782 .base_reg
= MV64x60_CPU_PROT_BASE_2
,
783 .size_reg
= MV64x60_CPU_PROT_SIZE_2
,
786 .get_from_field
= mv64x60_shift_left
,
787 .map_to_field
= mv64x60_shift_right
,
788 .extra
= MV64x60_EXTRA_CPUPROT_ENAB
| 31 },
789 [MV64x60_CPU_PROT_3_WIN
] = {
790 .base_reg
= MV64x60_CPU_PROT_BASE_3
,
791 .size_reg
= MV64x60_CPU_PROT_SIZE_3
,
794 .get_from_field
= mv64x60_shift_left
,
795 .map_to_field
= mv64x60_shift_right
,
796 .extra
= MV64x60_EXTRA_CPUPROT_ENAB
| 31 },
797 /* CPU Snoop Windows -- don't exist on 64360 */
798 /* PCI 0->System Memory Remap Windows */
799 [MV64x60_PCI02MEM_REMAP_0_WIN
] = {
800 .base_reg
= MV64x60_PCI0_SLAVE_MEM_0_REMAP
,
804 .get_from_field
= mv64x60_mask
,
805 .map_to_field
= mv64x60_mask
,
807 [MV64x60_PCI02MEM_REMAP_1_WIN
] = {
808 .base_reg
= MV64x60_PCI0_SLAVE_MEM_1_REMAP
,
812 .get_from_field
= mv64x60_mask
,
813 .map_to_field
= mv64x60_mask
,
815 [MV64x60_PCI02MEM_REMAP_2_WIN
] = {
816 .base_reg
= MV64x60_PCI0_SLAVE_MEM_1_REMAP
,
820 .get_from_field
= mv64x60_mask
,
821 .map_to_field
= mv64x60_mask
,
823 [MV64x60_PCI02MEM_REMAP_3_WIN
] = {
824 .base_reg
= MV64x60_PCI0_SLAVE_MEM_1_REMAP
,
828 .get_from_field
= mv64x60_mask
,
829 .map_to_field
= mv64x60_mask
,
831 /* PCI 1->System Memory Remap Windows */
832 [MV64x60_PCI12MEM_REMAP_0_WIN
] = {
833 .base_reg
= MV64x60_PCI1_SLAVE_MEM_0_REMAP
,
837 .get_from_field
= mv64x60_mask
,
838 .map_to_field
= mv64x60_mask
,
840 [MV64x60_PCI12MEM_REMAP_1_WIN
] = {
841 .base_reg
= MV64x60_PCI1_SLAVE_MEM_1_REMAP
,
845 .get_from_field
= mv64x60_mask
,
846 .map_to_field
= mv64x60_mask
,
848 [MV64x60_PCI12MEM_REMAP_2_WIN
] = {
849 .base_reg
= MV64x60_PCI1_SLAVE_MEM_1_REMAP
,
853 .get_from_field
= mv64x60_mask
,
854 .map_to_field
= mv64x60_mask
,
856 [MV64x60_PCI12MEM_REMAP_3_WIN
] = {
857 .base_reg
= MV64x60_PCI1_SLAVE_MEM_1_REMAP
,
861 .get_from_field
= mv64x60_mask
,
862 .map_to_field
= mv64x60_mask
,
864 /* ENET->System Memory Windows */
865 [MV64x60_ENET2MEM_0_WIN
] = {
866 .base_reg
= MV64360_ENET2MEM_0_BASE
,
867 .size_reg
= MV64360_ENET2MEM_0_SIZE
,
870 .get_from_field
= mv64x60_mask
,
871 .map_to_field
= mv64x60_mask
,
872 .extra
= MV64x60_EXTRA_ENET_ENAB
| 0 },
873 [MV64x60_ENET2MEM_1_WIN
] = {
874 .base_reg
= MV64360_ENET2MEM_1_BASE
,
875 .size_reg
= MV64360_ENET2MEM_1_SIZE
,
878 .get_from_field
= mv64x60_mask
,
879 .map_to_field
= mv64x60_mask
,
880 .extra
= MV64x60_EXTRA_ENET_ENAB
| 1 },
881 [MV64x60_ENET2MEM_2_WIN
] = {
882 .base_reg
= MV64360_ENET2MEM_2_BASE
,
883 .size_reg
= MV64360_ENET2MEM_2_SIZE
,
886 .get_from_field
= mv64x60_mask
,
887 .map_to_field
= mv64x60_mask
,
888 .extra
= MV64x60_EXTRA_ENET_ENAB
| 2 },
889 [MV64x60_ENET2MEM_3_WIN
] = {
890 .base_reg
= MV64360_ENET2MEM_3_BASE
,
891 .size_reg
= MV64360_ENET2MEM_3_SIZE
,
894 .get_from_field
= mv64x60_mask
,
895 .map_to_field
= mv64x60_mask
,
896 .extra
= MV64x60_EXTRA_ENET_ENAB
| 3 },
897 [MV64x60_ENET2MEM_4_WIN
] = {
898 .base_reg
= MV64360_ENET2MEM_4_BASE
,
899 .size_reg
= MV64360_ENET2MEM_4_SIZE
,
902 .get_from_field
= mv64x60_mask
,
903 .map_to_field
= mv64x60_mask
,
904 .extra
= MV64x60_EXTRA_ENET_ENAB
| 4 },
905 [MV64x60_ENET2MEM_5_WIN
] = {
906 .base_reg
= MV64360_ENET2MEM_5_BASE
,
907 .size_reg
= MV64360_ENET2MEM_5_SIZE
,
910 .get_from_field
= mv64x60_mask
,
911 .map_to_field
= mv64x60_mask
,
912 .extra
= MV64x60_EXTRA_ENET_ENAB
| 5 },
913 /* MPSC->System Memory Windows */
914 [MV64x60_MPSC2MEM_0_WIN
] = {
915 .base_reg
= MV64360_MPSC2MEM_0_BASE
,
916 .size_reg
= MV64360_MPSC2MEM_0_SIZE
,
919 .get_from_field
= mv64x60_mask
,
920 .map_to_field
= mv64x60_mask
,
921 .extra
= MV64x60_EXTRA_MPSC_ENAB
| 0 },
922 [MV64x60_MPSC2MEM_1_WIN
] = {
923 .base_reg
= MV64360_MPSC2MEM_1_BASE
,
924 .size_reg
= MV64360_MPSC2MEM_1_SIZE
,
927 .get_from_field
= mv64x60_mask
,
928 .map_to_field
= mv64x60_mask
,
929 .extra
= MV64x60_EXTRA_MPSC_ENAB
| 1 },
930 [MV64x60_MPSC2MEM_2_WIN
] = {
931 .base_reg
= MV64360_MPSC2MEM_2_BASE
,
932 .size_reg
= MV64360_MPSC2MEM_2_SIZE
,
935 .get_from_field
= mv64x60_mask
,
936 .map_to_field
= mv64x60_mask
,
937 .extra
= MV64x60_EXTRA_MPSC_ENAB
| 2 },
938 [MV64x60_MPSC2MEM_3_WIN
] = {
939 .base_reg
= MV64360_MPSC2MEM_3_BASE
,
940 .size_reg
= MV64360_MPSC2MEM_3_SIZE
,
943 .get_from_field
= mv64x60_mask
,
944 .map_to_field
= mv64x60_mask
,
945 .extra
= MV64x60_EXTRA_MPSC_ENAB
| 3 },
946 /* IDMA->System Memory Windows */
947 [MV64x60_IDMA2MEM_0_WIN
] = {
948 .base_reg
= MV64360_IDMA2MEM_0_BASE
,
949 .size_reg
= MV64360_IDMA2MEM_0_SIZE
,
952 .get_from_field
= mv64x60_mask
,
953 .map_to_field
= mv64x60_mask
,
954 .extra
= MV64x60_EXTRA_IDMA_ENAB
| 0 },
955 [MV64x60_IDMA2MEM_1_WIN
] = {
956 .base_reg
= MV64360_IDMA2MEM_1_BASE
,
957 .size_reg
= MV64360_IDMA2MEM_1_SIZE
,
960 .get_from_field
= mv64x60_mask
,
961 .map_to_field
= mv64x60_mask
,
962 .extra
= MV64x60_EXTRA_IDMA_ENAB
| 1 },
963 [MV64x60_IDMA2MEM_2_WIN
] = {
964 .base_reg
= MV64360_IDMA2MEM_2_BASE
,
965 .size_reg
= MV64360_IDMA2MEM_2_SIZE
,
968 .get_from_field
= mv64x60_mask
,
969 .map_to_field
= mv64x60_mask
,
970 .extra
= MV64x60_EXTRA_IDMA_ENAB
| 2 },
971 [MV64x60_IDMA2MEM_3_WIN
] = {
972 .base_reg
= MV64360_IDMA2MEM_3_BASE
,
973 .size_reg
= MV64360_IDMA2MEM_3_SIZE
,
976 .get_from_field
= mv64x60_mask
,
977 .map_to_field
= mv64x60_mask
,
978 .extra
= MV64x60_EXTRA_IDMA_ENAB
| 3 },
979 [MV64x60_IDMA2MEM_4_WIN
] = {
980 .base_reg
= MV64360_IDMA2MEM_4_BASE
,
981 .size_reg
= MV64360_IDMA2MEM_4_SIZE
,
984 .get_from_field
= mv64x60_mask
,
985 .map_to_field
= mv64x60_mask
,
986 .extra
= MV64x60_EXTRA_IDMA_ENAB
| 4 },
987 [MV64x60_IDMA2MEM_5_WIN
] = {
988 .base_reg
= MV64360_IDMA2MEM_5_BASE
,
989 .size_reg
= MV64360_IDMA2MEM_5_SIZE
,
992 .get_from_field
= mv64x60_mask
,
993 .map_to_field
= mv64x60_mask
,
994 .extra
= MV64x60_EXTRA_IDMA_ENAB
| 5 },
995 [MV64x60_IDMA2MEM_6_WIN
] = {
996 .base_reg
= MV64360_IDMA2MEM_6_BASE
,
997 .size_reg
= MV64360_IDMA2MEM_6_SIZE
,
1000 .get_from_field
= mv64x60_mask
,
1001 .map_to_field
= mv64x60_mask
,
1002 .extra
= MV64x60_EXTRA_IDMA_ENAB
| 6 },
1003 [MV64x60_IDMA2MEM_7_WIN
] = {
1004 .base_reg
= MV64360_IDMA2MEM_7_BASE
,
1005 .size_reg
= MV64360_IDMA2MEM_7_SIZE
,
1008 .get_from_field
= mv64x60_mask
,
1009 .map_to_field
= mv64x60_mask
,
1010 .extra
= MV64x60_EXTRA_IDMA_ENAB
| 7 },
1013 struct mv64x60_64bit_window
1014 mv64360_64bit_windows
[MV64x60_64BIT_WIN_COUNT
] __initdata
= {
1015 /* CPU->PCI 0 MEM Remap Windows */
1016 [MV64x60_CPU2PCI0_MEM_0_REMAP_WIN
] = {
1017 .base_hi_reg
= MV64x60_CPU2PCI0_MEM_0_REMAP_HI
,
1018 .base_lo_reg
= MV64x60_CPU2PCI0_MEM_0_REMAP_LO
,
1022 .get_from_field
= mv64x60_shift_left
,
1023 .map_to_field
= mv64x60_shift_right
,
1025 [MV64x60_CPU2PCI0_MEM_1_REMAP_WIN
] = {
1026 .base_hi_reg
= MV64x60_CPU2PCI0_MEM_1_REMAP_HI
,
1027 .base_lo_reg
= MV64x60_CPU2PCI0_MEM_1_REMAP_LO
,
1031 .get_from_field
= mv64x60_shift_left
,
1032 .map_to_field
= mv64x60_shift_right
,
1034 [MV64x60_CPU2PCI0_MEM_2_REMAP_WIN
] = {
1035 .base_hi_reg
= MV64x60_CPU2PCI0_MEM_2_REMAP_HI
,
1036 .base_lo_reg
= MV64x60_CPU2PCI0_MEM_2_REMAP_LO
,
1040 .get_from_field
= mv64x60_shift_left
,
1041 .map_to_field
= mv64x60_shift_right
,
1043 [MV64x60_CPU2PCI0_MEM_3_REMAP_WIN
] = {
1044 .base_hi_reg
= MV64x60_CPU2PCI0_MEM_3_REMAP_HI
,
1045 .base_lo_reg
= MV64x60_CPU2PCI0_MEM_3_REMAP_LO
,
1049 .get_from_field
= mv64x60_shift_left
,
1050 .map_to_field
= mv64x60_shift_right
,
1052 /* CPU->PCI 1 MEM Remap Windows */
1053 [MV64x60_CPU2PCI1_MEM_0_REMAP_WIN
] = {
1054 .base_hi_reg
= MV64x60_CPU2PCI1_MEM_0_REMAP_HI
,
1055 .base_lo_reg
= MV64x60_CPU2PCI1_MEM_0_REMAP_LO
,
1059 .get_from_field
= mv64x60_shift_left
,
1060 .map_to_field
= mv64x60_shift_right
,
1062 [MV64x60_CPU2PCI1_MEM_1_REMAP_WIN
] = {
1063 .base_hi_reg
= MV64x60_CPU2PCI1_MEM_1_REMAP_HI
,
1064 .base_lo_reg
= MV64x60_CPU2PCI1_MEM_1_REMAP_LO
,
1068 .get_from_field
= mv64x60_shift_left
,
1069 .map_to_field
= mv64x60_shift_right
,
1071 [MV64x60_CPU2PCI1_MEM_2_REMAP_WIN
] = {
1072 .base_hi_reg
= MV64x60_CPU2PCI1_MEM_2_REMAP_HI
,
1073 .base_lo_reg
= MV64x60_CPU2PCI1_MEM_2_REMAP_LO
,
1077 .get_from_field
= mv64x60_shift_left
,
1078 .map_to_field
= mv64x60_shift_right
,
1080 [MV64x60_CPU2PCI1_MEM_3_REMAP_WIN
] = {
1081 .base_hi_reg
= MV64x60_CPU2PCI1_MEM_3_REMAP_HI
,
1082 .base_lo_reg
= MV64x60_CPU2PCI1_MEM_3_REMAP_LO
,
1086 .get_from_field
= mv64x60_shift_left
,
1087 .map_to_field
= mv64x60_shift_right
,
1089 /* PCI 0->MEM Access Control Windows */
1090 [MV64x60_PCI02MEM_ACC_CNTL_0_WIN
] = {
1091 .base_hi_reg
= MV64x60_PCI0_ACC_CNTL_0_BASE_HI
,
1092 .base_lo_reg
= MV64x60_PCI0_ACC_CNTL_0_BASE_LO
,
1093 .size_reg
= MV64x60_PCI0_ACC_CNTL_0_SIZE
,
1096 .get_from_field
= mv64x60_mask
,
1097 .map_to_field
= mv64x60_mask
,
1098 .extra
= MV64x60_EXTRA_PCIACC_ENAB
| 0 },
1099 [MV64x60_PCI02MEM_ACC_CNTL_1_WIN
] = {
1100 .base_hi_reg
= MV64x60_PCI0_ACC_CNTL_1_BASE_HI
,
1101 .base_lo_reg
= MV64x60_PCI0_ACC_CNTL_1_BASE_LO
,
1102 .size_reg
= MV64x60_PCI0_ACC_CNTL_1_SIZE
,
1105 .get_from_field
= mv64x60_mask
,
1106 .map_to_field
= mv64x60_mask
,
1107 .extra
= MV64x60_EXTRA_PCIACC_ENAB
| 0 },
1108 [MV64x60_PCI02MEM_ACC_CNTL_2_WIN
] = {
1109 .base_hi_reg
= MV64x60_PCI0_ACC_CNTL_2_BASE_HI
,
1110 .base_lo_reg
= MV64x60_PCI0_ACC_CNTL_2_BASE_LO
,
1111 .size_reg
= MV64x60_PCI0_ACC_CNTL_2_SIZE
,
1114 .get_from_field
= mv64x60_mask
,
1115 .map_to_field
= mv64x60_mask
,
1116 .extra
= MV64x60_EXTRA_PCIACC_ENAB
| 0 },
1117 [MV64x60_PCI02MEM_ACC_CNTL_3_WIN
] = {
1118 .base_hi_reg
= MV64x60_PCI0_ACC_CNTL_3_BASE_HI
,
1119 .base_lo_reg
= MV64x60_PCI0_ACC_CNTL_3_BASE_LO
,
1120 .size_reg
= MV64x60_PCI0_ACC_CNTL_3_SIZE
,
1123 .get_from_field
= mv64x60_mask
,
1124 .map_to_field
= mv64x60_mask
,
1125 .extra
= MV64x60_EXTRA_PCIACC_ENAB
| 0 },
1126 /* PCI 1->MEM Access Control Windows */
1127 [MV64x60_PCI12MEM_ACC_CNTL_0_WIN
] = {
1128 .base_hi_reg
= MV64x60_PCI1_ACC_CNTL_0_BASE_HI
,
1129 .base_lo_reg
= MV64x60_PCI1_ACC_CNTL_0_BASE_LO
,
1130 .size_reg
= MV64x60_PCI1_ACC_CNTL_0_SIZE
,
1133 .get_from_field
= mv64x60_mask
,
1134 .map_to_field
= mv64x60_mask
,
1135 .extra
= MV64x60_EXTRA_PCIACC_ENAB
| 0 },
1136 [MV64x60_PCI12MEM_ACC_CNTL_1_WIN
] = {
1137 .base_hi_reg
= MV64x60_PCI1_ACC_CNTL_1_BASE_HI
,
1138 .base_lo_reg
= MV64x60_PCI1_ACC_CNTL_1_BASE_LO
,
1139 .size_reg
= MV64x60_PCI1_ACC_CNTL_1_SIZE
,
1142 .get_from_field
= mv64x60_mask
,
1143 .map_to_field
= mv64x60_mask
,
1144 .extra
= MV64x60_EXTRA_PCIACC_ENAB
| 0 },
1145 [MV64x60_PCI12MEM_ACC_CNTL_2_WIN
] = {
1146 .base_hi_reg
= MV64x60_PCI1_ACC_CNTL_2_BASE_HI
,
1147 .base_lo_reg
= MV64x60_PCI1_ACC_CNTL_2_BASE_LO
,
1148 .size_reg
= MV64x60_PCI1_ACC_CNTL_2_SIZE
,
1151 .get_from_field
= mv64x60_mask
,
1152 .map_to_field
= mv64x60_mask
,
1153 .extra
= MV64x60_EXTRA_PCIACC_ENAB
| 0 },
1154 [MV64x60_PCI12MEM_ACC_CNTL_3_WIN
] = {
1155 .base_hi_reg
= MV64x60_PCI1_ACC_CNTL_3_BASE_HI
,
1156 .base_lo_reg
= MV64x60_PCI1_ACC_CNTL_3_BASE_LO
,
1157 .size_reg
= MV64x60_PCI1_ACC_CNTL_3_SIZE
,
1160 .get_from_field
= mv64x60_mask
,
1161 .map_to_field
= mv64x60_mask
,
1162 .extra
= MV64x60_EXTRA_PCIACC_ENAB
| 0 },
1163 /* PCI 0->MEM Snoop Windows -- don't exist on 64360 */
1164 /* PCI 1->MEM Snoop Windows -- don't exist on 64360 */