blob: 5e4f07606ca5e6a4ca5eb8c8d57c21045307a0f6 [file] [log] [blame]
wdenk3a473b22004-01-03 00:43:19 +00001/* mv_gen_reg.h - Internal registers definition file */
2/* Copyright - Galileo technology. */
3
4
5/*******************************************************************************
6* Copyright 2002, GALILEO TECHNOLOGY, LTD. *
7* THIS CODE CONTAINS CONFIDENTIAL INFORMATION OF MARVELL. *
8* NO RIGHTS ARE GRANTED HEREIN UNDER ANY PATENT, MASK WORK RIGHT OR COPYRIGHT *
9* OF MARVELL OR ANY THIRD PARTY. MARVELL RESERVES THE RIGHT AT ITS SOLE *
10* DISCRETION TO REQUEST THAT THIS CODE BE IMMEDIATELY RETURNED TO MARVELL. *
11* THIS CODE IS PROVIDED "AS IS". MARVELL MAKES NO WARRANTIES, EXPRESSED, *
12* IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, COMPLETENESS OR PERFORMANCE. *
13* *
14* MARVELL COMPRISES MARVELL TECHNOLOGY GROUP LTD. (MTGL) AND ITS SUBSIDIARIES, *
15* MARVELL INTERNATIONAL LTD. (MIL), MARVELL TECHNOLOGY, INC. (MTI), MARVELL *
16* SEMICONDUCTOR, INC. (MSI), MARVELL ASIA PTE LTD. (MAPL), MARVELL JAPAN K.K. *
17* (MJKK), GALILEO TECHNOLOGY LTD. (GTL) AND GALILEO TECHNOLOGY, INC. (GTI). *
18********************************************************************************
19* mv_gen_reg.h - Marvell 64360 and 64460 Internal registers definition file.
20*
21* DESCRIPTION:
22* None.
23*
24* DEPENDENCIES:
25* None.
26*
27*******************************************************************************/
28
29#ifndef __INCmv_gen_regh
30#define __INCmv_gen_regh
31
32
33/* Supported by the Atlantis */
34#define INCLUDE_PCI_1
35#define INCLUDE_PCI_0_ARBITER
36#define INCLUDE_PCI_1_ARBITER
37#define INCLUDE_SNOOP_SUPPORT
38#define INCLUDE_P2P
39#define INCLUDE_ETH_PORT_2
40#define INCLUDE_CPU_MAPPING
41#define INCLUDE_MPSC
42
43/* Not supported features */
44#undef INCLUDE_CNTMR_4_7
45#undef INCLUDE_DMA_4_7
46
47
48/****************************************/
49/* Processor Address Space */
50/****************************************/
51/* DDR SDRAM BAR and size registers */
52
53/* Sdram's BAR'S */
54#define SCS_0_LOW_DECODE_ADDRESS 0x008
55#define SCS_0_HIGH_DECODE_ADDRESS 0x010
56#define SCS_1_LOW_DECODE_ADDRESS 0x208
57#define SCS_1_HIGH_DECODE_ADDRESS 0x210
58#define SCS_2_LOW_DECODE_ADDRESS 0x018
59#define SCS_2_HIGH_DECODE_ADDRESS 0x020
60#define SCS_3_LOW_DECODE_ADDRESS 0x218
61#define SCS_3_HIGH_DECODE_ADDRESS 0x220
62
63/* Make it fit the MV64360 and MV64460 Lowlevel driver */
64#define CS_0_BASE_ADDR SCS_0_LOW_DECODE_ADDRESS
65#define CS_0_SIZE SCS_0_HIGH_DECODE_ADDRESS
66#define CS_1_BASE_ADDR SCS_1_LOW_DECODE_ADDRESS
67#define CS_1_SIZE SCS_1_HIGH_DECODE_ADDRESS
68#define CS_2_BASE_ADDR SCS_2_LOW_DECODE_ADDRESS
69#define CS_2_SIZE SCS_2_HIGH_DECODE_ADDRESS
70#define CS_3_BASE_ADDR SCS_3_LOW_DECODE_ADDRESS
71#define CS_3_SIZE SCS_3_HIGH_DECODE_ADDRESS
72
73/* Devices BAR'S */
74#define CS_0_LOW_DECODE_ADDRESS 0x028
75#define CS_0_HIGH_DECODE_ADDRESS 0x030
76#define CS_1_LOW_DECODE_ADDRESS 0x228
77#define CS_1_HIGH_DECODE_ADDRESS 0x230
78#define CS_2_LOW_DECODE_ADDRESS 0x248
79#define CS_2_HIGH_DECODE_ADDRESS 0x250
80#define CS_3_LOW_DECODE_ADDRESS 0x038
81#define CS_3_HIGH_DECODE_ADDRESS 0x040
82#define BOOTCS_LOW_DECODE_ADDRESS 0x238
83#define BOOTCS_HIGH_DECODE_ADDRESS 0x240
84
85/* Make it fit the MV64360 and MV64460 Lowlevel driver */
86/* Devices BAR and size registers */
87
88#define DEV_CS0_BASE_ADDR CS_0_LOW_DECODE_ADDRESS
89#define DEV_CS0_SIZE CS_0_HIGH_DECODE_ADDRESS
90#define DEV_CS1_BASE_ADDR CS_1_LOW_DECODE_ADDRESS
91#define DEV_CS1_SIZE CS_1_HIGH_DECODE_ADDRESS
92#define DEV_CS2_BASE_ADDR CS_2_LOW_DECODE_ADDRESS
93#define DEV_CS2_SIZE CS_2_HIGH_DECODE_ADDRESS
94#define DEV_CS3_BASE_ADDR CS_3_LOW_DECODE_ADDRESS
95#define DEV_CS3_SIZE CS_3_HIGH_DECODE_ADDRESS
96#define BOOTCS_BASE_ADDR BOOTCS_LOW_DECODE_ADDRESS
97#define BOOTCS_SIZE BOOTCS_HIGH_DECODE_ADDRESS
98
99/* PCI 0 BAR and size registers old names of evb64260*/
100
101#define PCI_0I_O_LOW_DECODE_ADDRESS 0x048
102#define PCI_0I_O_HIGH_DECODE_ADDRESS 0x050
103#define PCI_0MEMORY0_LOW_DECODE_ADDRESS 0x058
104#define PCI_0MEMORY0_HIGH_DECODE_ADDRESS 0x060
105#define PCI_0MEMORY1_LOW_DECODE_ADDRESS 0x080
106#define PCI_0MEMORY1_HIGH_DECODE_ADDRESS 0x088
107#define PCI_0MEMORY2_LOW_DECODE_ADDRESS 0x258
108#define PCI_0MEMORY2_HIGH_DECODE_ADDRESS 0x260
109#define PCI_0MEMORY3_LOW_DECODE_ADDRESS 0x280
110#define PCI_0MEMORY3_HIGH_DECODE_ADDRESS 0x288
111
112/* Make it fit the MV64360 and MV64460 Lowlevel driver */
113#define PCI_0_IO_BASE_ADDR 0x048
114#define PCI_0_IO_SIZE 0x050
115#define PCI_0_MEMORY0_BASE_ADDR 0x058
116#define PCI_0_MEMORY0_SIZE 0x060
117#define PCI_0_MEMORY1_BASE_ADDR 0x080
118#define PCI_0_MEMORY1_SIZE 0x088
119#define PCI_0_MEMORY2_BASE_ADDR 0x258
120#define PCI_0_MEMORY2_SIZE 0x260
121#define PCI_0_MEMORY3_BASE_ADDR 0x280
122#define PCI_0_MEMORY3_SIZE 0x288
123
124/* PCI 1 BAR and size registers old names of evb64260*/
125#define PCI_1I_O_LOW_DECODE_ADDRESS 0x090
126#define PCI_1I_O_HIGH_DECODE_ADDRESS 0x098
127#define PCI_1MEMORY0_LOW_DECODE_ADDRESS 0x0a0
128#define PCI_1MEMORY0_HIGH_DECODE_ADDRESS 0x0a8
129#define PCI_1MEMORY1_LOW_DECODE_ADDRESS 0x0b0
130#define PCI_1MEMORY1_HIGH_DECODE_ADDRESS 0x0b8
131#define PCI_1MEMORY2_LOW_DECODE_ADDRESS 0x2a0
132#define PCI_1MEMORY2_HIGH_DECODE_ADDRESS 0x2a8
133#define PCI_1MEMORY3_LOW_DECODE_ADDRESS 0x2b0
134#define PCI_1MEMORY3_HIGH_DECODE_ADDRESS 0x2b8
135
136/* Make it fit the MV64360 and MV64460 Lowlevel driver */
137#define PCI_1_IO_BASE_ADDR 0x090
138#define PCI_1_IO_SIZE 0x098
139#define PCI_1_MEMORY0_BASE_ADDR 0x0a0
140#define PCI_1_MEMORY0_SIZE 0x0a8
141#define PCI_1_MEMORY1_BASE_ADDR 0x0b0
142#define PCI_1_MEMORY1_SIZE 0x0b8
143#define PCI_1_MEMORY2_BASE_ADDR 0x2a0
144#define PCI_1_MEMORY2_SIZE 0x2a8
145#define PCI_1_MEMORY3_BASE_ADDR 0x2b0
146#define PCI_1_MEMORY3_SIZE 0x2b8
147
148/* internal registers space base address */
149#define INTERNAL_SPACE_DECODE 0x068
150#define INTERNAL_SPACE_BASE_ADDR INTERNAL_SPACE_DECODE
151
152/* SRAM base address */
153#define INTEGRATED_SRAM_BASE_ADDR 0x268
154
155/* Enables the CS , DEV_CS , PCI 0 and PCI 1
156 windows above */
157#define BASE_ADDR_ENABLE 0x278
158
159
160#define CPU_0_LOW_DECODE_ADDRESS 0x290
161#define CPU_0_HIGH_DECODE_ADDRESS 0x298
162#define CPU_1_LOW_DECODE_ADDRESS 0x2c0
163#define CPU_1_HIGH_DECODE_ADDRESS 0x2c8
164
165/****************************************/
166/* PCI remap registers */
167/****************************************/
168/*****************************************************************************************/
169 /* PCI 0 */
170/* old fashion evb 64260 */
171#define PCI_0I_O_ADDRESS_REMAP 0x0f0
172#define PCI_0MEMORY0_ADDRESS_REMAP 0x0f8
173#define PCI_0MEMORY0_HIGH_ADDRESS_REMAP 0x320
174#define PCI_0MEMORY1_ADDRESS_REMAP 0x100
175#define PCI_0MEMORY1_HIGH_ADDRESS_REMAP 0x328
176#define PCI_0MEMORY2_ADDRESS_REMAP 0x2f8
177#define PCI_0MEMORY2_HIGH_ADDRESS_REMAP 0x330
178#define PCI_0MEMORY3_ADDRESS_REMAP 0x300
179#define PCI_0MEMORY3_HIGH_ADDRESS_REMAP 0x338
180
181#define PCI_0_IO_ADDR_REMAP PCI_0I_O_ADDRESS_REMAP
182#define PCI_0_MEMORY0_LOW_ADDR_REMAP PCI_0MEMORY0_ADDRESS_REMAP
183#define PCI_0_MEMORY0_HIGH_ADDR_REMAP PCI_0MEMORY0_HIGH_ADDRESS_REMAP
184#define PCI_0_MEMORY1_LOW_ADDR_REMAP PCI_0MEMORY1_ADDRESS_REMAP
185#define PCI_0_MEMORY1_HIGH_ADDR_REMAP PCI_0MEMORY1_HIGH_ADDRESS_REMAP
186#define PCI_0_MEMORY2_LOW_ADDR_REMAP PCI_0MEMORY2_ADDRESS_REMAP
187#define PCI_0_MEMORY2_HIGH_ADDR_REMAP PCI_0MEMORY2_HIGH_ADDRESS_REMAP
188#define PCI_0_MEMORY3_LOW_ADDR_REMAP PCI_0MEMORY3_ADDRESS_REMAP
189#define PCI_0_MEMORY3_HIGH_ADDR_REMAP PCI_0MEMORY3_HIGH_ADDRESS_REMAP
190
191 /* PCI 1 */
192/* old fashion evb 64260 */
193#define PCI_1I_O_ADDRESS_REMAP 0x108
194#define PCI_1MEMORY0_ADDRESS_REMAP 0x110
195#define PCI_1MEMORY0_HIGH_ADDRESS_REMAP 0x340
196#define PCI_1MEMORY1_ADDRESS_REMAP 0x118
197#define PCI_1MEMORY1_HIGH_ADDRESS_REMAP 0x348
198#define PCI_1MEMORY2_ADDRESS_REMAP 0x310
199#define PCI_1MEMORY2_HIGH_ADDRESS_REMAP 0x350
200#define PCI_1MEMORY3_ADDRESS_REMAP 0x318
201#define PCI_1MEMORY3_HIGH_ADDRESS_REMAP 0x358
202
203#define PCI_1_IO_ADDR_REMAP PCI_1I_O_ADDRESS_REMAP
204#define PCI_1_MEMORY0_LOW_ADDR_REMAP PCI_1MEMORY0_ADDRESS_REMAP
205#define PCI_1_MEMORY0_HIGH_ADDR_REMAP PCI_1MEMORY0_HIGH_ADDRESS_REMAP
206#define PCI_1_MEMORY1_LOW_ADDR_REMAP PCI_1MEMORY1_ADDRESS_REMAP
207#define PCI_1_MEMORY1_HIGH_ADDR_REMAP PCI_1MEMORY1_HIGH_ADDRESS_REMAP
208#define PCI_1_MEMORY2_LOW_ADDR_REMAP PCI_1MEMORY2_ADDRESS_REMAP
209#define PCI_1_MEMORY2_HIGH_ADDR_REMAP PCI_1MEMORY2_HIGH_ADDRESS_REMAP
210#define PCI_1_MEMORY3_LOW_ADDR_REMAP PCI_1MEMORY3_ADDRESS_REMAP
211#define PCI_1_MEMORY3_HIGH_ADDR_REMAP PCI_1MEMORY3_HIGH_ADDRESS_REMAP
212
213/* old fashion evb 64260 */
214#define CPU_PCI_0_HEADERS_RETARGET_CONTROL 0x3b0
215#define CPU_PCI_0_HEADERS_RETARGET_BASE 0x3b8
216#define CPU_PCI_1_HEADERS_RETARGET_CONTROL 0x3c0
217#define CPU_PCI_1_HEADERS_RETARGET_BASE 0x3c8
218#define CPU_GE_HEADERS_RETARGET_CONTROL 0x3d0
219#define CPU_GE_HEADERS_RETARGET_BASE 0x3d8
220
221/* MV64360 and MV64460 no changes needed*/
222/*****************************************************************************************/
223
224/****************************************/
225/* CPU Control Registers */
226/****************************************/
227/* CPU MASTER CONTROL REGISTER */
228#define CPU_CONFIGURATION 0x000
229#define CPU_MASTER_CONTROL 0x160
230
231#define CPU_CONFIG 0x000
232#define CPU_MODE 0x120
233#define CPU_MASTER_CONTROL 0x160
234/* new in MV64360 and MV64460 */
235#define CPU_CROSS_BAR_CONTROL_LOW 0x150
236#define CPU_CROSS_BAR_CONTROL_HIGH 0x158
237#define CPU_CROSS_BAR_TIMEOUT 0x168
238
239/****************************************/
240/* SMP RegisterS */
241/****************************************/
242
243#define SMP_WHO_AM_I 0x200
244#define SMP_CPU0_DOORBELL 0x214
245#define SMP_CPU0_DOORBELL_CLEAR 0x21C
246#define SMP_CPU1_DOORBELL 0x224
247#define SMP_CPU1_DOORBELL_CLEAR 0x22C
248#define SMP_CPU0_DOORBELL_MASK 0x234
249#define SMP_CPU1_DOORBELL_MASK 0x23C
250#define SMP_SEMAPHOR0 0x244
251#define SMP_SEMAPHOR1 0x24c
252#define SMP_SEMAPHOR2 0x254
253#define SMP_SEMAPHOR3 0x25c
254#define SMP_SEMAPHOR4 0x264
255#define SMP_SEMAPHOR5 0x26c
256#define SMP_SEMAPHOR6 0x274
257#define SMP_SEMAPHOR7 0x27c
258
259
260/****************************************/
261/* CPU Sync Barrier */
262/****************************************/
263#define CPU_0_SYNC_BARRIER_TRIGGER 0x0c0
264#define CPU_0_SYNC_BARRIER_VIRTUAL 0x0c8
265#define CPU_1_SYNC_BARRIER_TRIGGER 0x0d0
266#define CPU_1_SYNC_BARRIER_VIRTUAL 0x0d8
267
268
269/****************************************/
270/* CPU Access Protect */
271/****************************************/
272
273#define CPU_LOW_PROTECT_ADDRESS_0 0x180
274#define CPU_HIGH_PROTECT_ADDRESS_0 0x188
275#define CPU_LOW_PROTECT_ADDRESS_1 0x190
276#define CPU_HIGH_PROTECT_ADDRESS_1 0x198
277#define CPU_LOW_PROTECT_ADDRESS_2 0x1a0
278#define CPU_HIGH_PROTECT_ADDRESS_2 0x1a8
279#define CPU_LOW_PROTECT_ADDRESS_3 0x1b0
280#define CPU_HIGH_PROTECT_ADDRESS_3 0x1b8
281/*#define CPU_LOW_PROTECT_ADDRESS_4 0x1c0
282#define CPU_HIGH_PROTECT_ADDRESS_4 0x1c8
283#define CPU_LOW_PROTECT_ADDRESS_5 0x1d0
284#define CPU_HIGH_PROTECT_ADDRESS_5 0x1d8
285#define CPU_LOW_PROTECT_ADDRESS_6 0x1e0
286#define CPU_HIGH_PROTECT_ADDRESS_6 0x1e8
287#define CPU_LOW_PROTECT_ADDRESS_7 0x1f0
288#define CPU_HIGH_PROTECT_ADDRESS_7 0x1f8
289*/
290
291#define CPU_PROTECT_WINDOW_0_BASE_ADDR CPU_LOW_PROTECT_ADDRESS_0 /* 0x180 */
292#define CPU_PROTECT_WINDOW_0_SIZE CPU_HIGH_PROTECT_ADDRESS_0 /* 0x188 */
293#define CPU_PROTECT_WINDOW_1_BASE_ADDR CPU_LOW_PROTECT_ADDRESS_1 /* 0x190 */
294#define CPU_PROTECT_WINDOW_1_SIZE CPU_HIGH_PROTECT_ADDRESS_1 /* 0x198 */
295#define CPU_PROTECT_WINDOW_2_BASE_ADDR CPU_LOW_PROTECT_ADDRESS_2 /*0x1a0 */
296#define CPU_PROTECT_WINDOW_2_SIZE CPU_HIGH_PROTECT_ADDRESS_2 /* 0x1a8 */
297#define CPU_PROTECT_WINDOW_3_BASE_ADDR CPU_LOW_PROTECT_ADDRESS_3 /* 0x1b0 */
298#define CPU_PROTECT_WINDOW_3_SIZE CPU_HIGH_PROTECT_ADDRESS_3 /* 0x1b8 */
299
300
301/****************************************/
302/* Snoop Control */
303/****************************************/
304
305/*#define SNOOP_BASE_ADDRESS_0 0x380
306#define SNOOP_TOP_ADDRESS_0 0x388
307#define SNOOP_BASE_ADDRESS_1 0x390
308#define SNOOP_TOP_ADDRESS_1 0x398
309#define SNOOP_BASE_ADDRESS_2 0x3a0
310#define SNOOP_TOP_ADDRESS_2 0x3a8
311#define SNOOP_BASE_ADDRESS_3 0x3b0
312#define SNOOP_TOP_ADDRESS_3 0x3b8
313*/
314
315/****************************************/
316/* Integrated SRAM Registers */
317/****************************************/
318
319#define SRAM_CONFIG 0x380
320#define SRAM_TEST_MODE 0x3F4
321#define SRAM_ERROR_CAUSE 0x388
322#define SRAM_ERROR_ADDR 0x390
323#define SRAM_ERROR_ADDR_HIGH 0x3F8
324#define SRAM_ERROR_DATA_LOW 0x398
325#define SRAM_ERROR_DATA_HIGH 0x3a0
326#define SRAM_ERROR_DATA_PARITY 0x3a8
327
328/****************************************/
329/* CPU Error Report */
330/****************************************/
331
332#define CPU_ERROR_ADDRESS_LOW 0x070
333#define CPU_ERROR_ADDRESS_HIGH 0x078
334#define CPU_ERROR_DATA_LOW 0x128
335#define CPU_ERROR_DATA_HIGH 0x130
336#define CPU_ERROR_PARITY 0x138
337#define CPU_ERROR_CAUSE 0x140
338#define CPU_ERROR_MASK 0x148
339
340#define CPU_ERROR_ADDR_LOW CPU_ERROR_ADDRESS_LOW /* 0x0701 */
341#define CPU_ERROR_ADDR_HIGH CPU_ERROR_ADDRESS_HIGH /* 0x0781 */
342
343/****************************************/
344/* Pslave Debug */
345/* CPU Interface Debug Registers */
346/****************************************/
347
348#define X_0_ADDRESS 0x360
349#define X_0_COMMAND_ID 0x368
350#define X_1_ADDRESS 0x370
351#define X_1_COMMAND_ID 0x378
352 /*#define WRITE_DATA_LOW 0x3c01 */
353 /*#define WRITE_DATA_HIGH 0x3c81 */
354 /*#define WRITE_BYTE_ENABLE 0x3e01 */
355 /*#define READ_DATA_LOW 0x3d01 */
356 /*#define READ_DATA_HIGH 0x3d81 */
357 /*#define READ_ID 0x3e81 */
358
359#define PUNIT_SLAVE_DEBUG_LOW X_0_ADDRESS /* 0x3601 */
360#define PUNIT_SLAVE_DEBUG_HIGH X_0_COMMAND_ID /* 0x3681 */
361#define PUNIT_MASTER_DEBUG_LOW X_1_ADDRESS /* 0x3701 */
362#define PUNIT_MASTER_DEBUG_HIGH X_1_COMMAND_ID /* 0x3781 */
363#define PUNIT_MMASK 0x3e4
364
365
366/****************************************/
367/* SDRAM and Device Address Space */
368/****************************************/
369
370/****************************************/
371/* SDRAM Configuration */
372/****************************************/
373#define SDRAM_CONFIG 0x1400 /* MV64260 0x448 some changes*/
374#define D_UNIT_CONTROL_LOW 0x1404 /* NEW in MV64360 and MV64460 */
375#define D_UNIT_CONTROL_HIGH 0x1424 /* NEW in MV64360 and MV64460 */
376#define SDRAM_TIMING_CONTROL_LOW 0x1408 /* MV64260 0x4b4 new SDRAM TIMING REGISTER */
377#define SDRAM_TIMING_CONTROL_HIGH 0x140c /* MV64260 0x4b4 new SDRAM TIMING REGISTER */
378#define SDRAM_ADDR_CONTROL 0x1410 /* MV64260 0x47c some changes*/
379#define SDRAM_OPEN_PAGES_CONTROL 0x1414 /* NEW in MV64360 and MV64460 */
380#define SDRAM_OPERATION 0x1418 /* MV64260 0x474 some changes*/
381#define SDRAM_MODE 0x141c /* NEW in MV64360 and MV64460 */
382#define EXTENDED_DRAM_MODE 0x1420 /* NEW in MV64360 and MV64460 */
383#define SDRAM_CROSS_BAR_CONTROL_LOW 0x1430 /* MV64260 0x4a8 NO changes*/
384#define SDRAM_CROSS_BAR_CONTROL_HIGH 0x1434 /* MV64260 0x4ac NO changes*/
385#define SDRAM_CROSS_BAR_TIMEOUT 0x1438 /* MV64260 0x4b0 NO changes*/
386#define SDRAM_ADDR_CTRL_PADS_CALIBRATION 0x14c0 /* what is this ??? */
387#define SDRAM_DATA_PADS_CALIBRATION 0x14c4 /* what is this ??? */
388/****************************************/
389/* SDRAM Configuration MV64260 */
390/****************************************/
391 /*#define SDRAM_CONFIGURATION 0x4481 */
392 /*#define SDRAM_OPERATION_MODE 0x4741 */
393 /*#define SDRAM_ADDRESS_DECODE 0x47c1 */
394 /*#define SDRAM_UMA_CONTROL 0x4a4 eliminated in MV64360 and MV64460 */
395 /*#define SDRAM_CROSS_BAR_CONTROL_LOW 0x4a81 */
396 /*#define SDRAM_CROSS_BAR_CONTROL_HIGH 0x4ac1 */
397 /*#define SDRAM_CROSS_BAR_TIMEOUT 0x4b01 */
398 /*#define SDRAM_TIMING 0x4b41 */
399
400
401/****************************************/
402/* SDRAM Error Report */
403/****************************************/
404#define SDRAM_ERROR_DATA_LOW 0x1444 /* MV64260 0x484 NO changes*/
405#define SDRAM_ERROR_DATA_HIGH 0x1440 /* MV64260 0x480 NO changes*/
406#define SDRAM_ERROR_ADDR 0x1450 /* MV64260 0x490 NO changes*/
407#define SDRAM_RECEIVED_ECC 0x1448 /* MV64260 0x488 NO changes*/
408#define SDRAM_CALCULATED_ECC 0x144c /* MV64260 0x48c NO changes*/
409#define SDRAM_ECC_CONTROL 0x1454 /* MV64260 0x494 NO changes*/
410#define SDRAM_ECC_ERROR_COUNTER 0x1458 /* MV64260 0x498 NO changes*/
411#define SDRAM_MMASK 0x1B40 /* NEW Register in MV64360 and MV64460 DO NOT USE !!!*/
412/****************************************/
413/* SDRAM Error Report MV64260 */
414/****************************************/
415 /*#define SDRAM_ERROR_DATA_LOW 0x4841 */
416 /*#define SDRAM_ERROR_DATA_HIGH 0x4801 */
417 /*#define SDRAM_AND_DEVICE_ERROR_ADDRESS 0x4901 */
418 /*#define SDRAM_RECEIVED_ECC 0x4881 */
419 /*#define SDRAM_CALCULATED_ECC 0x48c1 */
420 /*#define SDRAM_ECC_CONTROL 0x4941 */
421 /*#define SDRAM_ECC_ERROR_COUNTER 0x4981 */
422
423/******************************************/
424/* Controlled Delay Line (CDL) Registers */
425/******************************************/
426#define DFCDL_CONFIG0 0x1480
427#define DFCDL_CONFIG1 0x1484
428#define DLL_WRITE 0x1488
429#define DLL_READ 0x148c
430#define SRAM_ADDR 0x1490
431#define SRAM_DATA0 0x1494
432#define SRAM_DATA1 0x1498
433#define SRAM_DATA2 0x149c
434#define DFCL_PROBE 0x14a0
435
436
437/****************************************/
438/* SDRAM Parameters only in MV64260 */
439/****************************************/
440
441 /*#define SDRAM_BANK0PARAMETERS 0x44C eliminated in MV64360 and MV64460 */
442 /*#define SDRAM_BANK1PARAMETERS 0x450 eliminated in MV64360 and MV64460 */
443 /*#define SDRAM_BANK2PARAMETERS 0x454 eliminated in MV64360 and MV64460 */
444 /*#define SDRAM_BANK3PARAMETERS 0x458 eliminated in MV64360 and MV64460 */
445
446/******************************************/
447/* Debug Registers */
448/******************************************/
449
450#define DUNIT_DEBUG_LOW 0x1460
451#define DUNIT_DEBUG_HIGH 0x1464
452#define DUNIT_MMASK 0x1b40
453
454/****************************************/
455/* SDunit Debug (for internal use) */
456/****************************************/
457
458#define X0_ADDRESS 0x500
459#define X0_COMMAND_AND_ID 0x504
460#define X0_WRITE_DATA_LOW 0x508
461#define X0_WRITE_DATA_HIGH 0x50c
462#define X0_WRITE_BYTE_ENABLE 0x518
463#define X0_READ_DATA_LOW 0x510
464#define X0_READ_DATA_HIGH 0x514
465#define X0_READ_ID 0x51c
466#define X1_ADDRESS 0x520
467#define X1_COMMAND_AND_ID 0x524
468#define X1_WRITE_DATA_LOW 0x528
469#define X1_WRITE_DATA_HIGH 0x52c
470#define X1_WRITE_BYTE_ENABLE 0x538
471#define X1_READ_DATA_LOW 0x530
472#define X1_READ_DATA_HIGH 0x534
473#define X1_READ_ID 0x53c
474#define X0_SNOOP_ADDRESS 0x540
475#define X0_SNOOP_COMMAND 0x544
476#define X1_SNOOP_ADDRESS 0x548
477#define X1_SNOOP_COMMAND 0x54c
478
479/****************************************/
480/* Device Parameters */
481/****************************************/
482
483#define DEVICE_BANK0PARAMETERS 0x45c
484#define DEVICE_BANK1PARAMETERS 0x460
485#define DEVICE_BANK2PARAMETERS 0x464
486#define DEVICE_BANK3PARAMETERS 0x468
487#define DEVICE_BOOT_BANK_PARAMETERS 0x46c
488#define DEVICE_CONTROL 0x4c0
489#define DEVICE_CROSS_BAR_CONTROL_LOW 0x4c8
490#define DEVICE_CROSS_BAR_CONTROL_HIGH 0x4cc
491#define DEVICE_CROSS_BAR_TIMEOUT 0x4c4
492
493/****************************************/
494/* Device Parameters */
495/****************************************/
496
497#define DEVICE_BANK0_PARAMETERS DEVICE_BANK0PARAMETERS /* 0x45c1 */
498#define DEVICE_BANK1_PARAMETERS DEVICE_BANK1PARAMETERS /* 0x4601 */
499#define DEVICE_BANK2_PARAMETERS DEVICE_BANK2PARAMETERS /* 0x4641 */
500#define DEVICE_BANK3_PARAMETERS DEVICE_BANK3PARAMETERS /* 0x4681 */
501/*#define DEVICE_BOOT_BANK_PARAMETERS 0x46c1 */
502#define DEVICE_INTERFACE_CONTROL DEVICE_CONTROL /* 0x4c01 */
503#define DEVICE_INTERFACE_CROSS_BAR_CONTROL_LOW DEVICE_CROSS_BAR_CONTROL_LOW /* 0x4c81 */
504#define DEVICE_INTERFACE_CROSS_BAR_CONTROL_HIGH DEVICE_CROSS_BAR_CONTROL_HIGH /* 0x4cc1 */
505#define DEVICE_INTERFACE_CROSS_BAR_TIMEOUT DEVICE_CROSS_BAR_TIMEOUT /* 0x4c41 */
506
507
508/****************************************/
509/* Device Interrupt */
510/****************************************/
511
512#define DEVICE_INTERRUPT_CAUSE 0x4d0
513#define DEVICE_INTERRUPT_MASK 0x4d4
514#define DEVICE_ERROR_ADDRESS 0x4d8
515 /*#define DEVICE_INTERRUPT_CAUSE 0x4d01 */
516 /*#define DEVICE_INTERRUPT_MASK 0x4d41 */
517#define DEVICE_ERROR_ADDR DEVICE_ERROR_ADDRESS /*0x4d81 */
518#define DEVICE_ERROR_DATA 0x4dc
519#define DEVICE_ERROR_PARITY 0x4e0
520
521/****************************************/
522/* Device debug registers */
523/****************************************/
524
525#define DEVICE_DEBUG_LOW 0x4e4
526#define DEVICE_DEBUG_HIGH 0x4e8
527#define RUNIT_MMASK 0x4f0
528
529/****************************************/
530/* DMA Record */
531/****************************************/
532
533 /*#define CHANNEL4_DMA_BYTE_COUNT 0x9001 */
534 /*#define CHANNEL5_DMA_BYTE_COUNT 0x9041 */
535 /*#define CHANNEL6_DMA_BYTE_COUNT 0x9081 */
536 /*#define CHANNEL7_DMA_BYTE_COUNT 0x90C1 */
537 /*#define CHANNEL4_DMA_SOURCE_ADDRESS 0x9101 */
538 /*#define CHANNEL5_DMA_SOURCE_ADDRESS 0x9141 */
539 /*#define CHANNEL6_DMA_SOURCE_ADDRESS 0x9181 */
540 /*#define CHANNEL7_DMA_SOURCE_ADDRESS 0x91C1 */
541 /*#define CHANNEL4_DMA_DESTINATION_ADDRESS 0x9201 */
542 /*#define CHANNEL5_DMA_DESTINATION_ADDRESS 0x9241 */
543 /*#define CHANNEL6_DMA_DESTINATION_ADDRESS 0x9281 */
544 /*#define CHANNEL7_DMA_DESTINATION_ADDRESS 0x92C1 */
545 /*#define CHANNEL4NEXT_RECORD_POINTER 0x9301 */
546 /*#define CHANNEL5NEXT_RECORD_POINTER 0x9341 */
547 /*#define CHANNEL6NEXT_RECORD_POINTER 0x9381 */
548 /*#define CHANNEL7NEXT_RECORD_POINTER 0x93C1 */
549 /*#define CHANNEL4CURRENT_DESCRIPTOR_POINTER 0x9701 */
550 /*#define CHANNEL5CURRENT_DESCRIPTOR_POINTER 0x9741 */
551 /*#define CHANNEL6CURRENT_DESCRIPTOR_POINTER 0x9781 */
552 /*#define CHANNEL7CURRENT_DESCRIPTOR_POINTER 0x97C1 */
553 /*#define CHANNEL0_DMA_SOURCE_HIGH_PCI_ADDRESS 0x8901 */
554 /*#define CHANNEL1_DMA_SOURCE_HIGH_PCI_ADDRESS 0x8941 */
555 /*#define CHANNEL2_DMA_SOURCE_HIGH_PCI_ADDRESS 0x8981 */
556 /*#define CHANNEL3_DMA_SOURCE_HIGH_PCI_ADDRESS 0x89c1 */
557 /*#define CHANNEL4_DMA_SOURCE_HIGH_PCI_ADDRESS 0x9901 */
558 /*#define CHANNEL5_DMA_SOURCE_HIGH_PCI_ADDRESS 0x9941 */
559 /*#define CHANNEL6_DMA_SOURCE_HIGH_PCI_ADDRESS 0x9981 */
560 /*#define CHANNEL7_DMA_SOURCE_HIGH_PCI_ADDRESS 0x99c1 */
561 /*#define CHANNEL0_DMA_DESTINATION_HIGH_PCI_ADDRESS 0x8a01 */
562 /*#define CHANNEL1_DMA_DESTINATION_HIGH_PCI_ADDRESS 0x8a41 */
563 /*#define CHANNEL2_DMA_DESTINATION_HIGH_PCI_ADDRESS 0x8a81 */
564 /*#define CHANNEL3_DMA_DESTINATION_HIGH_PCI_ADDRESS 0x8ac1 */
565 /*#define CHANNEL4_DMA_DESTINATION_HIGH_PCI_ADDRESS 0x9a01 */
566 /*#define CHANNEL5_DMA_DESTINATION_HIGH_PCI_ADDRESS 0x9a41 */
567 /*#define CHANNEL6_DMA_DESTINATION_HIGH_PCI_ADDRESS 0x9a81 */
568 /*#define CHANNEL7_DMA_DESTINATION_HIGH_PCI_ADDRESS 0x9ac1 */
569 /*#define CHANNEL0_DMA_NEXT_RECORD_POINTER_HIGH_PCI_ADDRESS 0x8b01 */
570 /*#define CHANNEL1_DMA_NEXT_RECORD_POINTER_HIGH_PCI_ADDRESS 0x8b41 */
571 /*#define CHANNEL2_DMA_NEXT_RECORD_POINTER_HIGH_PCI_ADDRESS 0x8b81 */
572 /*#define CHANNEL3_DMA_NEXT_RECORD_POINTER_HIGH_PCI_ADDRESS 0x8bc1 */
573 /*#define CHANNEL4_DMA_NEXT_RECORD_POINTER_HIGH_PCI_ADDRESS 0x9b01 */
574 /*#define CHANNEL5_DMA_NEXT_RECORD_POINTER_HIGH_PCI_ADDRESS 0x9b41 */
575 /*#define CHANNEL6_DMA_NEXT_RECORD_POINTER_HIGH_PCI_ADDRESS 0x9b81 */
576 /*#define CHANNEL7_DMA_NEXT_RECORD_POINTER_HIGH_PCI_ADDRESS 0x9bc1 */
577
578/****************************************/
579/* DMA Channel Control */
580/****************************************/
581
582#define CHANNEL0CONTROL 0x840
583#define CHANNEL0CONTROL_HIGH 0x880
584#define CHANNEL1CONTROL 0x844
585#define CHANNEL1CONTROL_HIGH 0x884
586#define CHANNEL2CONTROL 0x848
587#define CHANNEL2CONTROL_HIGH 0x888
588#define CHANNEL3CONTROL 0x84C
589#define CHANNEL3CONTROL_HIGH 0x88C
590
591#define DMA_CHANNEL0_CONTROL CHANNEL0CONTROL /*0x8401 */
592#define DMA_CHANNEL0_CONTROL_HIGH CHANNEL0CONTROL_HIGH /*0x8801 */
593#define DMA_CHANNEL1_CONTROL CHANNEL1CONTROL /* 0x8441 */
594#define DMA_CHANNEL1_CONTROL_HIGH CHANNEL1CONTROL_HIGH /*0x8841 */
595#define DMA_CHANNEL2_CONTROL CHANNEL2CONTROL /*0x8481 */
596#define DMA_CHANNEL2_CONTROL_HIGH CHANNEL2CONTROL_HIGH /*0x8881 */
597#define DMA_CHANNEL3_CONTROL CHANNEL3CONTROL /*0x84C1 */
598#define DMA_CHANNEL3_CONTROL_HIGH CHANNEL3CONTROL_HIGH /*0x88C1 */
599
600 /*#define CHANNEL4CONTROL 0x9401 */
601 /*#define CHANNEL4CONTROL_HIGH 0x9801 */
602 /*#define CHANNEL5CONTROL 0x9441 */
603 /*#define CHANNEL5CONTROL_HIGH 0x9841 */
604 /*#define CHANNEL6CONTROL 0x9481 */
605 /*#define CHANNEL6CONTROL_HIGH 0x9881 */
606 /*#define CHANNEL7CONTROL 0x94C1 */
607 /*#define CHANNEL7CONTROL_HIGH 0x98C1 */
608
609
610/****************************************/
611/* DMA Arbiter */
612/****************************************/
613
614 /*#define ARBITER_CONTROL_0_3 0x8601 */
615#define ARBITER_CONTROL_4_7 0x960
616/****************************************/
617/* IDMA Registers */
618/****************************************/
619
620#define DMA_CHANNEL0_BYTE_COUNT CHANNEL0_DMA_BYTE_COUNT /*0x8001 */
621#define DMA_CHANNEL1_BYTE_COUNT CHANNEL1_DMA_BYTE_COUNT /*0x8041 */
622#define DMA_CHANNEL2_BYTE_COUNT CHANNEL2_DMA_BYTE_COUNT /*0x8081 */
623#define DMA_CHANNEL3_BYTE_COUNT CHANNEL3_DMA_BYTE_COUNT /*0x80C1 */
624#define DMA_CHANNEL0_SOURCE_ADDR CHANNEL0_DMA_SOURCE_ADDRESS /*0x8101 */
625#define DMA_CHANNEL1_SOURCE_ADDR CHANNEL1_DMA_SOURCE_ADDRESS /*0x8141 */
626#define DMA_CHANNEL2_SOURCE_ADDR CHANNEL2_DMA_SOURCE_ADDRESS /*0x8181 */
627#define DMA_CHANNEL3_SOURCE_ADDR CHANNEL3_DMA_SOURCE_ADDRESS /*0x81c1 */
628#define DMA_CHANNEL0_DESTINATION_ADDR CHANNEL0_DMA_DESTINATION_ADDRESS /*0x8201 */
629#define DMA_CHANNEL1_DESTINATION_ADDR CHANNEL1_DMA_DESTINATION_ADDRESS /*0x8241 */
630#define DMA_CHANNEL2_DESTINATION_ADDR CHANNEL2_DMA_DESTINATION_ADDRESS /*0x8281 */
631#define DMA_CHANNEL3_DESTINATION_ADDR CHANNEL3_DMA_DESTINATION_ADDRESS /*0x82C1 */
632#define DMA_CHANNEL0_NEXT_DESCRIPTOR_POINTER CHANNEL0NEXT_RECORD_POINTER /*0x8301 */
633#define DMA_CHANNEL1_NEXT_DESCRIPTOR_POINTER CHANNEL1NEXT_RECORD_POINTER /*0x8341 */
634#define DMA_CHANNEL2_NEXT_DESCRIPTOR_POINTER CHANNEL2NEXT_RECORD_POINTER /*0x8381 */
635#define DMA_CHANNEL3_NEXT_DESCRIPTOR_POINTER CHANNEL3NEXT_RECORD_POINTER /*0x83C1 */
636#define DMA_CHANNEL0_CURRENT_DESCRIPTOR_POINTER CHANNEL0CURRENT_DESCRIPTOR_POINTER /*0x8701 */
637#define DMA_CHANNEL1_CURRENT_DESCRIPTOR_POINTER CHANNEL1CURRENT_DESCRIPTOR_POINTER /*0x8741 */
638#define DMA_CHANNEL2_CURRENT_DESCRIPTOR_POINTER CHANNEL2CURRENT_DESCRIPTOR_POINTER /*0x8781 */
639#define DMA_CHANNEL3_CURRENT_DESCRIPTOR_POINTER CHANNEL3CURRENT_DESCRIPTOR_POINTER /*0x87C1 */
640
641#define CHANNEL3CURRENT_DESCRIPTOR_POINTER 0x87C
642#define CHANNEL2CURRENT_DESCRIPTOR_POINTER 0x878
643#define CHANNEL1CURRENT_DESCRIPTOR_POINTER 0x874
644#define CHANNEL0CURRENT_DESCRIPTOR_POINTER 0x870
645#define CHANNEL0NEXT_RECORD_POINTER 0x830
646#define CHANNEL1NEXT_RECORD_POINTER 0x834
647#define CHANNEL2NEXT_RECORD_POINTER 0x838
648#define CHANNEL3NEXT_RECORD_POINTER 0x83C
649#define CHANNEL0_DMA_DESTINATION_ADDRESS 0x820
650#define CHANNEL1_DMA_DESTINATION_ADDRESS 0x824
651#define CHANNEL2_DMA_DESTINATION_ADDRESS 0x828
652#define CHANNEL3_DMA_DESTINATION_ADDRESS 0x82C
653#define CHANNEL0_DMA_SOURCE_ADDRESS 0x810
654#define CHANNEL1_DMA_SOURCE_ADDRESS 0x814
655#define CHANNEL2_DMA_SOURCE_ADDRESS 0x818
656#define CHANNEL3_DMA_SOURCE_ADDRESS 0x81C
657#define CHANNEL0_DMA_BYTE_COUNT 0x800
658#define CHANNEL1_DMA_BYTE_COUNT 0x804
659#define CHANNEL2_DMA_BYTE_COUNT 0x808
660#define CHANNEL3_DMA_BYTE_COUNT 0x80C
661
662 /* IDMA Address Decoding Base Address Registers */
663
664#define DMA_BASE_ADDR_REG0 0xa00
665#define DMA_BASE_ADDR_REG1 0xa08
666#define DMA_BASE_ADDR_REG2 0xa10
667#define DMA_BASE_ADDR_REG3 0xa18
668#define DMA_BASE_ADDR_REG4 0xa20
669#define DMA_BASE_ADDR_REG5 0xa28
670#define DMA_BASE_ADDR_REG6 0xa30
671#define DMA_BASE_ADDR_REG7 0xa38
672
673 /* IDMA Address Decoding Size Address Register */
674
675#define DMA_SIZE_REG0 0xa04
676#define DMA_SIZE_REG1 0xa0c
677#define DMA_SIZE_REG2 0xa14
678#define DMA_SIZE_REG3 0xa1c
679#define DMA_SIZE_REG4 0xa24
680#define DMA_SIZE_REG5 0xa2c
681#define DMA_SIZE_REG6 0xa34
682#define DMA_SIZE_REG7 0xa3C
683
684 /* IDMA Address Decoding High Address Remap and Access
685 Protection Registers */
686
687#define DMA_HIGH_ADDR_REMAP_REG0 0xa60
688#define DMA_HIGH_ADDR_REMAP_REG1 0xa64
689#define DMA_HIGH_ADDR_REMAP_REG2 0xa68
690#define DMA_HIGH_ADDR_REMAP_REG3 0xa6C
691#define DMA_BASE_ADDR_ENABLE_REG 0xa80
692#define DMA_CHANNEL0_ACCESS_PROTECTION_REG 0xa70
693#define DMA_CHANNEL1_ACCESS_PROTECTION_REG 0xa74
694#define DMA_CHANNEL2_ACCESS_PROTECTION_REG 0xa78
695#define DMA_CHANNEL3_ACCESS_PROTECTION_REG 0xa7c
696#define DMA_ARBITER_CONTROL 0x860
697#define DMA_CROSS_BAR_TIMEOUT 0x8d0
698
699 /* IDMA Headers Retarget Registers */
700
701 /*#define CPU_IDMA_HEADERS_RETARGET_CONTROL 0x3e01 */
702 /*#define CPU_IDMA_HEADERS_RETARGET_BASE 0x3e81 */
703
704#define DMA_HEADERS_RETARGET_CONTROL 0xa84
705#define DMA_HEADERS_RETARGET_BASE 0xa88
706
707/****************************************/
708/* DMA Interrupt */
709/****************************************/
710
711#define CHANELS0_3_INTERRUPT_CAUSE 0x8c0
712#define CHANELS0_3_INTERRUPT_MASK 0x8c4
713#define CHANELS0_3_ERROR_ADDRESS 0x8c8
714#define CHANELS0_3_ERROR_SELECT 0x8cc
715 /*#define CHANELS4_7_INTERRUPT_CAUSE 0x9c01 */
716 /*#define CHANELS4_7_INTERRUPT_MASK 0x9c41 */
717 /*#define CHANELS4_7_ERROR_ADDRESS 0x9c81 */
718 /*#define CHANELS4_7_ERROR_SELECT 0x9cc1 */
719
720#define DMA_INTERRUPT_CAUSE_REG CHANELS0_3_INTERRUPT_CAUSE /*0x8c01 */
721#define DMA_INTERRUPT_CAUSE_MASK CHANELS0_3_INTERRUPT_MASK /*0x8c41 */
722#define DMA_ERROR_ADDR CHANELS0_3_ERROR_ADDRESS /*0x8c81 */
723#define DMA_ERROR_SELECT CHANELS0_3_ERROR_SELECT /*0x8cc1 */
724
725
726/****************************************/
727/* DMA Debug (for internal use) */
728/****************************************/
729
730#define DMA_X0_ADDRESS 0x8e0
731#define DMA_X0_COMMAND_AND_ID 0x8e4
732 /*#define DMA_X0_WRITE_DATA_LOW 0x8e81 */
733 /*#define DMA_X0_WRITE_DATA_HIGH 0x8ec1 */
734 /*#define DMA_X0_WRITE_BYTE_ENABLE 0x8f81 */
735 /*#define DMA_X0_READ_DATA_LOW 0x8f01 */
736 /*#define DMA_X0_READ_DATA_HIGH 0x8f41 */
737 /*#define DMA_X0_READ_ID 0x8fc1 */
738 /*#define DMA_X1_ADDRESS 0x9e01 */
739 /*#define DMA_X1_COMMAND_AND_ID 0x9e41 */
740 /*#define DMA_X1_WRITE_DATA_LOW 0x9e81 */
741 /*#define DMA_X1_WRITE_DATA_HIGH 0x9ec1 */
742 /*#define DMA_X1_WRITE_BYTE_ENABLE 0x9f81 */
743 /*#define DMA_X1_READ_DATA_LOW 0x9f01 */
744 /*#define DMA_X1_READ_DATA_HIGH 0x9f41 */
745 /*#define DMA_X1_READ_ID 0x9fc1 */
746
747 /* IDMA Debug Register ( for internal use ) */
748
749#define DMA_DEBUG_LOW DMA_X0_ADDRESS /* 0x8e01 */
750#define DMA_DEBUG_HIGH DMA_X0_COMMAND_AND_ID /*0x8e41 */
751#define DMA_SPARE 0xA8C
752
753
754/****************************************/
755/* Timer_Counter */
756/****************************************/
757
758#define TIMER_COUNTER0 0x850
759#define TIMER_COUNTER1 0x854
760#define TIMER_COUNTER2 0x858
761#define TIMER_COUNTER3 0x85C
762#define TIMER_COUNTER_0_3_CONTROL 0x864
763#define TIMER_COUNTER_0_3_INTERRUPT_CAUSE 0x868
764#define TIMER_COUNTER_0_3_INTERRUPT_MASK 0x86c
765 /*#define TIMER_COUNTER4 0x9501 */
766 /*#define TIMER_COUNTER5 0x9541 */
767 /*#define TIMER_COUNTER6 0x9581 */
768 /*#define TIMER_COUNTER7 0x95C1 */
769 /*#define TIMER_COUNTER_4_7_CONTROL 0x9641 */
770 /*#define TIMER_COUNTER_4_7_INTERRUPT_CAUSE 0x9681 */
771 /*#define TIMER_COUNTER_4_7_INTERRUPT_MASK 0x96c1 */
772
773/****************************************/
774/* PCI Slave Address Decoding */
775/****************************************/
776/****************************************/
777/* PCI Slave Address Decoding registers */
778/****************************************/
779#define PCI_0_CS_0_BANK_SIZE PCI_0SCS_0_BANK_SIZE /*0xc081 */
780#define PCI_1_CS_0_BANK_SIZE PCI_1SCS_0_BANK_SIZE /* 0xc881 */
781#define PCI_0_CS_1_BANK_SIZE PCI_0SCS_1_BANK_SIZE /*0xd081 */
782#define PCI_1_CS_1_BANK_SIZE PCI_1SCS_1_BANK_SIZE /* 0xd881 */
783#define PCI_0_CS_2_BANK_SIZE PCI_0SCS_2_BANK_SIZE /*0xc0c1 */
784#define PCI_1_CS_2_BANK_SIZE PCI_1SCS_2_BANK_SIZE /*0xc8c1 */
785#define PCI_0_CS_3_BANK_SIZE PCI_0SCS_3_BANK_SIZE /*0xd0c1 */
786#define PCI_1_CS_3_BANK_SIZE PCI_1SCS_3_BANK_SIZE /*0xd8c1 */
787#define PCI_0_DEVCS_0_BANK_SIZE PCI_0CS_0_BANK_SIZE /*0xc101 */
788#define PCI_1_DEVCS_0_BANK_SIZE PCI_1CS_0_BANK_SIZE /*0xc901 */
789#define PCI_0_DEVCS_1_BANK_SIZE PCI_0CS_1_BANK_SIZE /*0xd101 */
790#define PCI_1_DEVCS_1_BANK_SIZE PCI_1CS_1_BANK_SIZE /* 0xd901 */
791#define PCI_0_DEVCS_2_BANK_SIZE PCI_0CS_2_BANK_SIZE /* 0xd181 */
792#define PCI_1_DEVCS_2_BANK_SIZE PCI_1CS_2_BANK_SIZE /*0xd981 */
793#define PCI_0_DEVCS_3_BANK_SIZE PCI_0CS_3_BANK_SIZE /* 0xc141 */
794#define PCI_1_DEVCS_3_BANK_SIZE PCI_1CS_3_BANK_SIZE /*0xc941 */
795#define PCI_0_DEVCS_BOOT_BANK_SIZE PCI_0CS_BOOT_BANK_SIZE /*0xd141 */
796#define PCI_1_DEVCS_BOOT_BANK_SIZE PCI_1CS_BOOT_BANK_SIZE /* 0xd941 */
797#define PCI_0_P2P_MEM0_BAR_SIZE PCI_0P2P_MEM0_BAR_SIZE /*0xd1c1 */
798#define PCI_1_P2P_MEM0_BAR_SIZE PCI_1P2P_MEM0_BAR_SIZE /*0xd9c1 */
799#define PCI_0_P2P_MEM1_BAR_SIZE PCI_0P2P_MEM1_BAR_SIZE /*0xd201 */
800#define PCI_1_P2P_MEM1_BAR_SIZE PCI_1P2P_MEM1_BAR_SIZE /*0xda01 */
801#define PCI_0_P2P_I_O_BAR_SIZE PCI_0P2P_I_O_BAR_SIZE /*0xd241 */
802#define PCI_1_P2P_I_O_BAR_SIZE PCI_1P2P_I_O_BAR_SIZE /*0xda41 */
803#define PCI_0_CPU_BAR_SIZE PCI_0CPU_BAR_SIZE /*0xd281 */
804#define PCI_1_CPU_BAR_SIZE PCI_1CPU_BAR_SIZE /*0xda81 */
805#define PCI_0_INTERNAL_SRAM_BAR_SIZE PCI_0DAC_SCS_0_BANK_SIZE /*0xe001 */
806#define PCI_1_INTERNAL_SRAM_BAR_SIZE PCI_1DAC_SCS_0_BANK_SIZE /*0xe801 */
807#define PCI_0_EXPANSION_ROM_BAR_SIZE PCI_0EXPANSION_ROM_BAR_SIZE /*0xd2c1 */
808#define PCI_1_EXPANSION_ROM_BAR_SIZE PCI_1EXPANSION_ROM_BAR_SIZE /*0xd9c1 */
809#define PCI_0_BASE_ADDR_REG_ENABLE PCI_0BASE_ADDRESS_REGISTERS_ENABLE /*0xc3c1 */
810#define PCI_1_BASE_ADDR_REG_ENABLE PCI_1BASE_ADDRESS_REGISTERS_ENABLE /*0xcbc1 */
811#define PCI_0_CS_0_BASE_ADDR_REMAP PCI_0SCS_0_BASE_ADDRESS_REMAP /*0xc481 */
812#define PCI_1_CS_0_BASE_ADDR_REMAP PCI_1SCS_0_BASE_ADDRESS_REMAP /*0xcc81 */
813#define PCI_0_CS_1_BASE_ADDR_REMAP PCI_0SCS_1_BASE_ADDRESS_REMAP /*0xd481 */
814#define PCI_1_CS_1_BASE_ADDR_REMAP PCI_1SCS_1_BASE_ADDRESS_REMAP /*0xdc81 */
815#define PCI_0_CS_2_BASE_ADDR_REMAP PCI_0SCS_2_BASE_ADDRESS_REMAP /*0xc4c1 */
816#define PCI_1_CS_2_BASE_ADDR_REMAP PCI_1SCS_2_BASE_ADDRESS_REMAP /*0xccc1 */
817#define PCI_0_CS_3_BASE_ADDR_REMAP PCI_0SCS_3_BASE_ADDRESS_REMAP /*0xd4c1 */
818#define PCI_1_CS_3_BASE_ADDR_REMAP PCI_1SCS_3_BASE_ADDRESS_REMAP /* 0xdcc1 */
819#define PCI_0_CS_0_BASE_HIGH_ADDR_REMAP PCI_0DAC_SCS_0_BASE_ADDRESS_REMAP
820#define PCI_1_CS_0_BASE_HIGH_ADDR_REMAP PCI_1DAC_SCS_0_BASE_ADDRESS_REMAP
821#define PCI_0_CS_1_BASE_HIGH_ADDR_REMAP PCI_0DAC_SCS_1_BASE_ADDRESS_REMAP
822#define PCI_1_CS_1_BASE_HIGH_ADDR_REMAP PCI_1DAC_SCS_1_BASE_ADDRESS_REMAP
823#define PCI_0_CS_2_BASE_HIGH_ADDR_REMAP PCI_0DAC_SCS_2_BASE_ADDRESS_REMAP
824#define PCI_1_CS_2_BASE_HIGH_ADDR_REMAP PCI_1DAC_SCS_2_BASE_ADDRESS_REMAP
825#define PCI_0_CS_3_BASE_HIGH_ADDR_REMAP PCI_0DAC_SCS_3_BASE_ADDRESS_REMAP
826#define PCI_1_CS_3_BASE_HIGH_ADDR_REMAP PCI_1DAC_SCS_3_BASE_ADDRESS_REMAP
827#define PCI_0_DEVCS_0_BASE_ADDR_REMAP PCI_0CS_0_BASE_ADDRESS_REMAP /*0xc501 */
828#define PCI_1_DEVCS_0_BASE_ADDR_REMAP PCI_1CS_0_BASE_ADDRESS_REMAP /*0xcd01 */
829#define PCI_0_DEVCS_1_BASE_ADDR_REMAP PCI_0CS_1_BASE_ADDRESS_REMAP /*0xd501 */
830#define PCI_1_DEVCS_1_BASE_ADDR_REMAP PCI_1CS_1_BASE_ADDRESS_REMAP /*0xdd01 */
831#define PCI_0_DEVCS_2_BASE_ADDR_REMAP PCI_0CS_2_BASE_ADDRESS_REMAP /*0xd581 */
832#define PCI_1_DEVCS_2_BASE_ADDR_REMAP PCI_1CS_2_BASE_ADDRESS_REMAP /*0xdd81 */
833#define PCI_0_DEVCS_3_BASE_ADDR_REMAP PCI_0CS_3_BASE_ADDRESS_REMAP /*0xc541 */
834#define PCI_1_DEVCS_3_BASE_ADDR_REMAP PCI_1CS_3_BASE_ADDRESS_REMAP /*0xcd41 */
835#define PCI_0_DEVCS_BOOTCS_BASE_ADDR_REMAP PCI_0CS_BOOTCS_BASE_ADDRESS_REMAP /*0xd541 */
836#define PCI_1_DEVCS_BOOTCS_BASE_ADDR_REMAP PCI_1CS_BOOTCS_BASE_ADDRESS_REMAP /*0xdd41 */
837#define PCI_0_P2P_MEM0_BASE_ADDR_REMAP_LOW PCI_0P2P_MEM0_BASE_ADDRESS_REMAP_LOW /*0xd5c1 */
838#define PCI_1_P2P_MEM0_BASE_ADDR_REMAP_LOW PCI_1P2P_MEM0_BASE_ADDRESS_REMAP_LOW /*0xddc1 */
839#define PCI_0_P2P_MEM0_BASE_ADDR_REMAP_HIGH PCI_0P2P_MEM0_BASE_ADDRESS_REMAP_HIGH /*0xd601 */
840#define PCI_1_P2P_MEM0_BASE_ADDR_REMAP_HIGH PCI_1P2P_MEM0_BASE_ADDRESS_REMAP_HIGH /*0xde01 */
841#define PCI_0_P2P_MEM1_BASE_ADDR_REMAP_LOW PCI_0P2P_MEM1_BASE_ADDRESS_REMAP_LOW /*0xd641 */
842#define PCI_1_P2P_MEM1_BASE_ADDR_REMAP_LOW PCI_1P2P_MEM1_BASE_ADDRESS_REMAP_LOW /*0xde41 */
843#define PCI_0_P2P_MEM1_BASE_ADDR_REMAP_HIGH PCI_0P2P_MEM1_BASE_ADDRESS_REMAP_HIGH /*0xd681 */
844#define PCI_1_P2P_MEM1_BASE_ADDR_REMAP_HIGH PCI_1P2P_MEM1_BASE_ADDRESS_REMAP_HIGH /*0xde81 */
845#define PCI_0_P2P_I_O_BASE_ADDR_REMAP PCI_0P2P_I_O_BASE_ADDRESS_REMAP /*0xd6c1 */
846#define PCI_1_P2P_I_O_BASE_ADDR_REMAP PCI_1P2P_I_O_BASE_ADDRESS_REMAP /*0xdec 1 */
847#define PCI_0_CPU_BASE_ADDR_REMAP_LOW PCI_0CPU_BASE_ADDRESS_REMAP /*0xd701 */
848#define PCI_1_CPU_BASE_ADDR_REMAP_LOW PCI_1CPU_BASE_ADDRESS_REMAP /*0xdf01 */
849#define PCI_0_CPU_BASE_ADDR_REMAP_HIGH 0xd74
850#define PCI_1_CPU_BASE_ADDR_REMAP_HIGH 0xdf4
851#define PCI_0_INTEGRATED_SRAM_BASE_ADDR_REMAP PCI_0DAC_SCS_0_BASE_ADDRESS_REMAP /*0xf001 */
852#define PCI_1_INTEGRATED_SRAM_BASE_ADDR_REMAP 0xf80
853#define PCI_0_EXPANSION_ROM_BASE_ADDR_REMAP PCI_0EXPANSION_ROM_BASE_ADDRESS_REMAP /*0xf381 */
854#define PCI_1_EXPANSION_ROM_BASE_ADDR_REMAP PCI_1EXPANSION_ROM_BASE_ADDRESS_REMAP /*0xfb81 */
855#define PCI_0_ADDR_DECODE_CONTROL PCI_0ADDRESS_DECODE_CONTROL /*0xd3c1 */
856#define PCI_1_ADDR_DECODE_CONTROL PCI_1ADDRESS_DECODE_CONTROL /*0xdbc1 */
857#define PCI_0_HEADERS_RETARGET_CONTROL 0xF40
858#define PCI_1_HEADERS_RETARGET_CONTROL 0xFc0
859#define PCI_0_HEADERS_RETARGET_BASE 0xF44
860#define PCI_1_HEADERS_RETARGET_BASE 0xFc4
861#define PCI_0_HEADERS_RETARGET_HIGH 0xF48
862#define PCI_1_HEADERS_RETARGET_HIGH 0xFc8
863
864#define PCI_0SCS_0_BANK_SIZE 0xc08
865#define PCI_1SCS_0_BANK_SIZE 0xc88
866#define PCI_0SCS_1_BANK_SIZE 0xd08
867#define PCI_1SCS_1_BANK_SIZE 0xd88
868#define PCI_0SCS_2_BANK_SIZE 0xc0c
869#define PCI_1SCS_2_BANK_SIZE 0xc8c
870#define PCI_0SCS_3_BANK_SIZE 0xd0c
871#define PCI_1SCS_3_BANK_SIZE 0xd8c
872#define PCI_0CS_0_BANK_SIZE 0xc10
873#define PCI_1CS_0_BANK_SIZE 0xc90
874#define PCI_0CS_1_BANK_SIZE 0xd10
875#define PCI_1CS_1_BANK_SIZE 0xd90
876#define PCI_0CS_2_BANK_SIZE 0xd18
877#define PCI_1CS_2_BANK_SIZE 0xd98
878#define PCI_0CS_3_BANK_SIZE 0xc14
879#define PCI_1CS_3_BANK_SIZE 0xc94
880#define PCI_0CS_BOOT_BANK_SIZE 0xd14
881#define PCI_1CS_BOOT_BANK_SIZE 0xd94
882#define PCI_0P2P_MEM0_BAR_SIZE 0xd1c
883#define PCI_1P2P_MEM0_BAR_SIZE 0xd9c
884#define PCI_0P2P_MEM1_BAR_SIZE 0xd20
885#define PCI_1P2P_MEM1_BAR_SIZE 0xda0
886#define PCI_0P2P_I_O_BAR_SIZE 0xd24
887#define PCI_1P2P_I_O_BAR_SIZE 0xda4
888#define PCI_0CPU_BAR_SIZE 0xd28
889#define PCI_1CPU_BAR_SIZE 0xda8
890#define PCI_0DAC_SCS_0_BANK_SIZE 0xe00
891#define PCI_1DAC_SCS_0_BANK_SIZE 0xe80
892#define PCI_0DAC_SCS_1_BANK_SIZE 0xe04
893#define PCI_1DAC_SCS_1_BANK_SIZE 0xe84
894#define PCI_0DAC_SCS_2_BANK_SIZE 0xe08
895#define PCI_1DAC_SCS_2_BANK_SIZE 0xe88
896#define PCI_0DAC_SCS_3_BANK_SIZE 0xe0c
897#define PCI_1DAC_SCS_3_BANK_SIZE 0xe8c
898#define PCI_0DAC_CS_0_BANK_SIZE 0xe10
899#define PCI_1DAC_CS_0_BANK_SIZE 0xe90
900#define PCI_0DAC_CS_1_BANK_SIZE 0xe14
901#define PCI_1DAC_CS_1_BANK_SIZE 0xe94
902#define PCI_0DAC_CS_2_BANK_SIZE 0xe18
903#define PCI_1DAC_CS_2_BANK_SIZE 0xe98
904#define PCI_0DAC_CS_3_BANK_SIZE 0xe1c
905#define PCI_1DAC_CS_3_BANK_SIZE 0xe9c
906#define PCI_0DAC_BOOTCS_BANK_SIZE 0xe20
907#define PCI_1DAC_BOOTCS_BANK_SIZE 0xea0
908
909#define PCI_0DAC_P2P_MEM0_BAR_SIZE 0xe24
910#define PCI_1DAC_P2P_MEM0_BAR_SIZE 0xea4
911#define PCI_0DAC_P2P_MEM1_BAR_SIZE 0xe28
912#define PCI_1DAC_P2P_MEM1_BAR_SIZE 0xea8
913#define PCI_0DAC_CPU_BAR_SIZE 0xe2c
914#define PCI_1DAC_CPU_BAR_SIZE 0xeac
915#define PCI_0EXPANSION_ROM_BAR_SIZE 0xd2c
916#define PCI_1EXPANSION_ROM_BAR_SIZE 0xdac
917#define PCI_0BASE_ADDRESS_REGISTERS_ENABLE 0xc3c
918#define PCI_1BASE_ADDRESS_REGISTERS_ENABLE 0xcbc
919#define PCI_0SCS_0_BASE_ADDRESS_REMAP 0xc48
920#define PCI_1SCS_0_BASE_ADDRESS_REMAP 0xcc8
921#define PCI_0SCS_1_BASE_ADDRESS_REMAP 0xd48
922#define PCI_1SCS_1_BASE_ADDRESS_REMAP 0xdc8
923#define PCI_0SCS_2_BASE_ADDRESS_REMAP 0xc4c
924#define PCI_1SCS_2_BASE_ADDRESS_REMAP 0xccc
925#define PCI_0SCS_3_BASE_ADDRESS_REMAP 0xd4c
926#define PCI_1SCS_3_BASE_ADDRESS_REMAP 0xdcc
927#define PCI_0CS_0_BASE_ADDRESS_REMAP 0xc50
928#define PCI_1CS_0_BASE_ADDRESS_REMAP 0xcd0
929#define PCI_0CS_1_BASE_ADDRESS_REMAP 0xd50
930#define PCI_1CS_1_BASE_ADDRESS_REMAP 0xdd0
931#define PCI_0CS_2_BASE_ADDRESS_REMAP 0xd58
932#define PCI_1CS_2_BASE_ADDRESS_REMAP 0xdd8
933#define PCI_0CS_3_BASE_ADDRESS_REMAP 0xc54
934#define PCI_1CS_3_BASE_ADDRESS_REMAP 0xcd4
935#define PCI_0CS_BOOTCS_BASE_ADDRESS_REMAP 0xd54
936#define PCI_1CS_BOOTCS_BASE_ADDRESS_REMAP 0xdd4
937#define PCI_0P2P_MEM0_BASE_ADDRESS_REMAP_LOW 0xd5c
938#define PCI_1P2P_MEM0_BASE_ADDRESS_REMAP_LOW 0xddc
939#define PCI_0P2P_MEM0_BASE_ADDRESS_REMAP_HIGH 0xd60
940#define PCI_1P2P_MEM0_BASE_ADDRESS_REMAP_HIGH 0xde0
941#define PCI_0P2P_MEM1_BASE_ADDRESS_REMAP_LOW 0xd64
942#define PCI_1P2P_MEM1_BASE_ADDRESS_REMAP_LOW 0xde4
943#define PCI_0P2P_MEM1_BASE_ADDRESS_REMAP_HIGH 0xd68
944#define PCI_1P2P_MEM1_BASE_ADDRESS_REMAP_HIGH 0xde8
945#define PCI_0P2P_I_O_BASE_ADDRESS_REMAP 0xd6c
946#define PCI_1P2P_I_O_BASE_ADDRESS_REMAP 0xdec
947#define PCI_0CPU_BASE_ADDRESS_REMAP 0xd70
948#define PCI_1CPU_BASE_ADDRESS_REMAP 0xdf0
949#define PCI_0DAC_SCS_0_BASE_ADDRESS_REMAP 0xf00
950#define PCI_1DAC_SCS_0_BASE_ADDRESS_REMAP 0xff0
951#define PCI_0DAC_SCS_1_BASE_ADDRESS_REMAP 0xf04
952#define PCI_1DAC_SCS_1_BASE_ADDRESS_REMAP 0xf84
953#define PCI_0DAC_SCS_2_BASE_ADDRESS_REMAP 0xf08
954#define PCI_1DAC_SCS_2_BASE_ADDRESS_REMAP 0xf88
955#define PCI_0DAC_SCS_3_BASE_ADDRESS_REMAP 0xf0c
956#define PCI_1DAC_SCS_3_BASE_ADDRESS_REMAP 0xf8c
957#define PCI_0DAC_CS_0_BASE_ADDRESS_REMAP 0xf10
958#define PCI_1DAC_CS_0_BASE_ADDRESS_REMAP 0xf90
959#define PCI_0DAC_CS_1_BASE_ADDRESS_REMAP 0xf14
960#define PCI_1DAC_CS_1_BASE_ADDRESS_REMAP 0xf94
961#define PCI_0DAC_CS_2_BASE_ADDRESS_REMAP 0xf18
962#define PCI_1DAC_CS_2_BASE_ADDRESS_REMAP 0xf98
963#define PCI_0DAC_CS_3_BASE_ADDRESS_REMAP 0xf1c
964#define PCI_1DAC_CS_3_BASE_ADDRESS_REMAP 0xf9c
965#define PCI_0DAC_BOOTCS_BASE_ADDRESS_REMAP 0xf20
966#define PCI_1DAC_BOOTCS_BASE_ADDRESS_REMAP 0xfa0
967#define PCI_0DAC_P2P_MEM0_BASE_ADDRESS_REMAP_LOW 0xf24
968#define PCI_1DAC_P2P_MEM0_BASE_ADDRESS_REMAP_LOW 0xfa4
969#define PCI_0DAC_P2P_MEM0_BASE_ADDRESS_REMAP_HIGH 0xf28
970#define PCI_1DAC_P2P_MEM0_BASE_ADDRESS_REMAP_HIGH 0xfa8
971#define PCI_0DAC_P2P_MEM1_BASE_ADDRESS_REMAP_LOW 0xf2c
972#define PCI_1DAC_P2P_MEM1_BASE_ADDRESS_REMAP_LOW 0xfac
973#define PCI_0DAC_P2P_MEM1_BASE_ADDRESS_REMAP_HIGH 0xf30
974#define PCI_1DAC_P2P_MEM1_BASE_ADDRESS_REMAP_HIGH 0xfb0
975#define PCI_0DAC_CPU_BASE_ADDRESS_REMAP 0xf34
976#define PCI_1DAC_CPU_BASE_ADDRESS_REMAP 0xfb4
977#define PCI_0EXPANSION_ROM_BASE_ADDRESS_REMAP 0xf38
978#define PCI_1EXPANSION_ROM_BASE_ADDRESS_REMAP 0xfb8
979#define PCI_0ADDRESS_DECODE_CONTROL 0xd3c
980#define PCI_1ADDRESS_DECODE_CONTROL 0xdbc
981
982/****************************************/
983/* PCI Control */
984/****************************************/
985
986#define PCI_0COMMAND 0xc00
987#define PCI_1COMMAND 0xc80
988#define PCI_0MODE 0xd00
989#define PCI_1MODE 0xd80
990#define PCI_0TIMEOUT_RETRY 0xc04
991#define PCI_1TIMEOUT_RETRY 0xc84
992#define PCI_0READ_BUFFER_DISCARD_TIMER 0xd04
993#define PCI_1READ_BUFFER_DISCARD_TIMER 0xd84
994#define MSI_0TRIGGER_TIMER 0xc38
995#define MSI_1TRIGGER_TIMER 0xcb8
996#define PCI_0ARBITER_CONTROL 0x1d00
997#define PCI_1ARBITER_CONTROL 0x1d80
998/* changing untill here */
999#define PCI_0CROSS_BAR_CONTROL_LOW 0x1d08
1000#define PCI_0CROSS_BAR_CONTROL_HIGH 0x1d0c
1001#define PCI_0CROSS_BAR_TIMEOUT 0x1d04
1002#define PCI_0READ_RESPONSE_CROSS_BAR_CONTROL_LOW 0x1d18
1003#define PCI_0READ_RESPONSE_CROSS_BAR_CONTROL_HIGH 0x1d1c
1004#define PCI_0SYNC_BARRIER_VIRTUAL_REGISTER 0x1d10
1005#define PCI_0P2P_CONFIGURATION 0x1d14
1006#define PCI_0ACCESS_CONTROL_BASE_0_LOW 0x1e00
1007#define PCI_0ACCESS_CONTROL_BASE_0_HIGH 0x1e04
1008#define PCI_0ACCESS_CONTROL_TOP_0 0x1e08
1009#define PCI_0ACCESS_CONTROL_BASE_1_LOW 0x1e10
1010#define PCI_0ACCESS_CONTROL_BASE_1_HIGH 0x1e14
1011#define PCI_0ACCESS_CONTROL_TOP_1 0x1e18
1012#define PCI_0ACCESS_CONTROL_BASE_2_LOW 0x1e20
1013#define PCI_0ACCESS_CONTROL_BASE_2_HIGH 0x1e24
1014#define PCI_0ACCESS_CONTROL_TOP_2 0x1e28
1015#define PCI_0ACCESS_CONTROL_BASE_3_LOW 0x1e30
1016#define PCI_0ACCESS_CONTROL_BASE_3_HIGH 0x1e34
1017#define PCI_0ACCESS_CONTROL_TOP_3 0x1e38
1018#define PCI_0ACCESS_CONTROL_BASE_4_LOW 0x1e40
1019#define PCI_0ACCESS_CONTROL_BASE_4_HIGH 0x1e44
1020#define PCI_0ACCESS_CONTROL_TOP_4 0x1e48
1021#define PCI_0ACCESS_CONTROL_BASE_5_LOW 0x1e50
1022#define PCI_0ACCESS_CONTROL_BASE_5_HIGH 0x1e54
1023#define PCI_0ACCESS_CONTROL_TOP_5 0x1e58
1024#define PCI_0ACCESS_CONTROL_BASE_6_LOW 0x1e60
1025#define PCI_0ACCESS_CONTROL_BASE_6_HIGH 0x1e64
1026#define PCI_0ACCESS_CONTROL_TOP_6 0x1e68
1027#define PCI_0ACCESS_CONTROL_BASE_7_LOW 0x1e70
1028#define PCI_0ACCESS_CONTROL_BASE_7_HIGH 0x1e74
1029#define PCI_0ACCESS_CONTROL_TOP_7 0x1e78
1030#define PCI_1CROSS_BAR_CONTROL_LOW 0x1d88
1031#define PCI_1CROSS_BAR_CONTROL_HIGH 0x1d8c
1032#define PCI_1CROSS_BAR_TIMEOUT 0x1d84
1033#define PCI_1READ_RESPONSE_CROSS_BAR_CONTROL_LOW 0x1d98
1034#define PCI_1READ_RESPONSE_CROSS_BAR_CONTROL_HIGH 0x1d9c
1035#define PCI_1SYNC_BARRIER_VIRTUAL_REGISTER 0x1d90
1036#define PCI_1P2P_CONFIGURATION 0x1d94
1037#define PCI_1ACCESS_CONTROL_BASE_0_LOW 0x1e80
1038#define PCI_1ACCESS_CONTROL_BASE_0_HIGH 0x1e84
1039#define PCI_1ACCESS_CONTROL_TOP_0 0x1e88
1040#define PCI_1ACCESS_CONTROL_BASE_1_LOW 0x1e90
1041#define PCI_1ACCESS_CONTROL_BASE_1_HIGH 0x1e94
1042#define PCI_1ACCESS_CONTROL_TOP_1 0x1e98
1043#define PCI_1ACCESS_CONTROL_BASE_2_LOW 0x1ea0
1044#define PCI_1ACCESS_CONTROL_BASE_2_HIGH 0x1ea4
1045#define PCI_1ACCESS_CONTROL_TOP_2 0x1ea8
1046#define PCI_1ACCESS_CONTROL_BASE_3_LOW 0x1eb0
1047#define PCI_1ACCESS_CONTROL_BASE_3_HIGH 0x1eb4
1048#define PCI_1ACCESS_CONTROL_TOP_3 0x1eb8
1049#define PCI_1ACCESS_CONTROL_BASE_4_LOW 0x1ec0
1050#define PCI_1ACCESS_CONTROL_BASE_4_HIGH 0x1ec4
1051#define PCI_1ACCESS_CONTROL_TOP_4 0x1ec8
1052#define PCI_1ACCESS_CONTROL_BASE_5_LOW 0x1ed0
1053#define PCI_1ACCESS_CONTROL_BASE_5_HIGH 0x1ed4
1054#define PCI_1ACCESS_CONTROL_TOP_5 0x1ed8
1055#define PCI_1ACCESS_CONTROL_BASE_6_LOW 0x1ee0
1056#define PCI_1ACCESS_CONTROL_BASE_6_HIGH 0x1ee4
1057#define PCI_1ACCESS_CONTROL_TOP_6 0x1ee8
1058#define PCI_1ACCESS_CONTROL_BASE_7_LOW 0x1ef0
1059#define PCI_1ACCESS_CONTROL_BASE_7_HIGH 0x1ef4
1060#define PCI_1ACCESS_CONTROL_TOP_7 0x1ef8
1061
1062/****************************************/
1063/* PCI Snoop Control */
1064/****************************************/
1065
1066#define PCI_0SNOOP_CONTROL_BASE_0_LOW 0x1f00
1067#define PCI_0SNOOP_CONTROL_BASE_0_HIGH 0x1f04
1068#define PCI_0SNOOP_CONTROL_TOP_0 0x1f08
1069#define PCI_0SNOOP_CONTROL_BASE_1_0_LOW 0x1f10
1070#define PCI_0SNOOP_CONTROL_BASE_1_0_HIGH 0x1f14
1071#define PCI_0SNOOP_CONTROL_TOP_1 0x1f18
1072#define PCI_0SNOOP_CONTROL_BASE_2_0_LOW 0x1f20
1073#define PCI_0SNOOP_CONTROL_BASE_2_0_HIGH 0x1f24
1074#define PCI_0SNOOP_CONTROL_TOP_2 0x1f28
1075#define PCI_0SNOOP_CONTROL_BASE_3_0_LOW 0x1f30
1076#define PCI_0SNOOP_CONTROL_BASE_3_0_HIGH 0x1f34
1077#define PCI_0SNOOP_CONTROL_TOP_3 0x1f38
1078#define PCI_1SNOOP_CONTROL_BASE_0_LOW 0x1f80
1079#define PCI_1SNOOP_CONTROL_BASE_0_HIGH 0x1f84
1080#define PCI_1SNOOP_CONTROL_TOP_0 0x1f88
1081#define PCI_1SNOOP_CONTROL_BASE_1_0_LOW 0x1f90
1082#define PCI_1SNOOP_CONTROL_BASE_1_0_HIGH 0x1f94
1083#define PCI_1SNOOP_CONTROL_TOP_1 0x1f98
1084#define PCI_1SNOOP_CONTROL_BASE_2_0_LOW 0x1fa0
1085#define PCI_1SNOOP_CONTROL_BASE_2_0_HIGH 0x1fa4
1086#define PCI_1SNOOP_CONTROL_TOP_2 0x1fa8
1087#define PCI_1SNOOP_CONTROL_BASE_3_0_LOW 0x1fb0
1088#define PCI_1SNOOP_CONTROL_BASE_3_0_HIGH 0x1fb4
1089#define PCI_1SNOOP_CONTROL_TOP_3 0x1fb8
1090
1091/****************************************/
1092/* PCI Configuration Address */
1093/****************************************/
1094
1095#define PCI_0CONFIGURATION_ADDRESS 0xcf8
1096#define PCI_0CONFIGURATION_DATA_VIRTUAL_REGISTER 0xcfc
1097#define PCI_1CONFIGURATION_ADDRESS 0xc78
1098#define PCI_1CONFIGURATION_DATA_VIRTUAL_REGISTER 0xc7c
1099#define PCI_0INTERRUPT_ACKNOWLEDGE_VIRTUAL_REGISTER 0xc34
1100#define PCI_1INTERRUPT_ACKNOWLEDGE_VIRTUAL_REGISTER 0xcb4
1101
1102/****************************************/
1103/* PCI Error Report */
1104/****************************************/
1105
1106#define PCI_0SERR_MASK 0xc28
1107#define PCI_0ERROR_ADDRESS_LOW 0x1d40
1108#define PCI_0ERROR_ADDRESS_HIGH 0x1d44
1109#define PCI_0ERROR_DATA_LOW 0x1d48
1110#define PCI_0ERROR_DATA_HIGH 0x1d4c
1111#define PCI_0ERROR_COMMAND 0x1d50
1112#define PCI_0ERROR_CAUSE 0x1d58
1113#define PCI_0ERROR_MASK 0x1d5c
1114#define PCI_1SERR_MASK 0xca8
1115#define PCI_1ERROR_ADDRESS_LOW 0x1dc0
1116#define PCI_1ERROR_ADDRESS_HIGH 0x1dc4
1117#define PCI_1ERROR_DATA_LOW 0x1dc8
1118#define PCI_1ERROR_DATA_HIGH 0x1dcc
1119#define PCI_1ERROR_COMMAND 0x1dd0
1120#define PCI_1ERROR_CAUSE 0x1dd8
1121#define PCI_1ERROR_MASK 0x1ddc
1122
1123
1124/****************************************/
1125/* Lslave Debug (for internal use) */
1126/****************************************/
1127
1128#define L_SLAVE_X0_ADDRESS 0x1d20
1129#define L_SLAVE_X0_COMMAND_AND_ID 0x1d24
1130#define L_SLAVE_X1_ADDRESS 0x1d28
1131#define L_SLAVE_X1_COMMAND_AND_ID 0x1d2c
1132#define L_SLAVE_WRITE_DATA_LOW 0x1d30
1133#define L_SLAVE_WRITE_DATA_HIGH 0x1d34
1134#define L_SLAVE_WRITE_BYTE_ENABLE 0x1d60
1135#define L_SLAVE_READ_DATA_LOW 0x1d38
1136#define L_SLAVE_READ_DATA_HIGH 0x1d3c
1137#define L_SLAVE_READ_ID 0x1d64
1138
1139/****************************************/
1140/* PCI Configuration Function 0 */
1141/****************************************/
1142
1143#define PCI_DEVICE_AND_VENDOR_ID 0x000
1144#define PCI_STATUS_AND_COMMAND 0x004
1145#define PCI_CLASS_CODE_AND_REVISION_ID 0x008
1146#define PCI_BIST_HEADER_TYPE_LATENCY_TIMER_CACHE_LINE 0x00C
1147#define PCI_SCS_0_BASE_ADDRESS 0x010
1148#define PCI_SCS_1_BASE_ADDRESS 0x014
1149#define PCI_SCS_2_BASE_ADDRESS 0x018
1150#define PCI_SCS_3_BASE_ADDRESS 0x01C
1151#define PCI_INTERNAL_REGISTERS_MEMORY_MAPPED_BASE_ADDRESS 0x020
1152#define PCI_INTERNAL_REGISTERS_I_OMAPPED_BASE_ADDRESS 0x024
1153#define PCI_SUBSYSTEM_ID_AND_SUBSYSTEM_VENDOR_ID 0x02C
1154#define PCI_EXPANSION_ROM_BASE_ADDRESS_REGISTER 0x030
1155#define PCI_CAPABILTY_LIST_POINTER 0x034
1156#define PCI_INTERRUPT_PIN_AND_LINE 0x03C
1157#define PCI_POWER_MANAGEMENT_CAPABILITY 0x040
1158#define PCI_POWER_MANAGEMENT_STATUS_AND_CONTROL 0x044
1159#define PCI_VPD_ADDRESS 0x048
1160#define PCI_VPD_DATA 0x04c
1161#define PCI_MSI_MESSAGE_CONTROL 0x050
1162#define PCI_MSI_MESSAGE_ADDRESS 0x054
1163#define PCI_MSI_MESSAGE_UPPER_ADDRESS 0x058
1164#define PCI_MSI_MESSAGE_DATA 0x05c
1165#define PCI_COMPACT_PCI_HOT_SWAP_CAPABILITY 0x058
1166
1167/****************************************/
1168/* PCI Configuration Function 1 */
1169/****************************************/
1170
1171#define PCI_CS_0_BASE_ADDRESS 0x110
1172#define PCI_CS_1_BASE_ADDRESS 0x114
1173#define PCI_CS_2_BASE_ADDRESS 0x118
1174#define PCI_CS_3_BASE_ADDRESS 0x11c
1175#define PCI_BOOTCS_BASE_ADDRESS 0x120
1176
1177/****************************************/
1178/* PCI Configuration Function 2 */
1179/****************************************/
1180
1181#define PCI_P2P_MEM0_BASE_ADDRESS 0x210
1182 /*#define PCI_P2P_MEM1_BASE_ADDRESS 0x2141 */
1183#define PCI_P2P_I_O_BASE_ADDRESS 0x218
1184 /*#define PCI_CPU_BASE_ADDRESS 0x21c1 */
1185
1186/****************************************/
1187/* PCI Configuration Function 4 */
1188/****************************************/
1189
1190#define PCI_DAC_SCS_0_BASE_ADDRESS_LOW 0x410
1191#define PCI_DAC_SCS_0_BASE_ADDRESS_HIGH 0x414
1192#define PCI_DAC_SCS_1_BASE_ADDRESS_LOW 0x418
1193#define PCI_DAC_SCS_1_BASE_ADDRESS_HIGH 0x41c
1194#define PCI_DAC_P2P_MEM0_BASE_ADDRESS_LOW 0x420
1195#define PCI_DAC_P2P_MEM0_BASE_ADDRESS_HIGH 0x424
1196
1197
1198/****************************************/
1199/* PCI Configuration Function 5 */
1200/****************************************/
1201
1202#define PCI_DAC_SCS_2_BASE_ADDRESS_LOW 0x510
1203#define PCI_DAC_SCS_2_BASE_ADDRESS_HIGH 0x514
1204#define PCI_DAC_SCS_3_BASE_ADDRESS_LOW 0x518
1205#define PCI_DAC_SCS_3_BASE_ADDRESS_HIGH 0x51c
1206#define PCI_DAC_P2P_MEM1_BASE_ADDRESS_LOW 0x520
1207#define PCI_DAC_P2P_MEM1_BASE_ADDRESS_HIGH 0x524
1208
1209
1210/****************************************/
1211/* PCI Configuration Function 6 */
1212/****************************************/
1213
1214#define PCI_DAC_CS_0_BASE_ADDRESS_LOW 0x610
1215#define PCI_DAC_CS_0_BASE_ADDRESS_HIGH 0x614
1216#define PCI_DAC_CS_1_BASE_ADDRESS_LOW 0x618
1217#define PCI_DAC_CS_1_BASE_ADDRESS_HIGH 0x61c
1218#define PCI_DAC_CS_2_BASE_ADDRESS_LOW 0x620
1219#define PCI_DAC_CS_2_BASE_ADDRESS_HIGH 0x624
1220
1221/****************************************/
1222/* PCI Configuration Function 7 */
1223/****************************************/
1224
1225#define PCI_DAC_CS_3_BASE_ADDRESS_LOW 0x710
1226#define PCI_DAC_CS_3_BASE_ADDRESS_HIGH 0x714
1227#define PCI_DAC_BOOTCS_BASE_ADDRESS_LOW 0x718
1228#define PCI_DAC_BOOTCS_BASE_ADDRESS_HIGH 0x71c
1229#define PCI_DAC_CPU_BASE_ADDRESS_LOW 0x720
1230#define PCI_DAC_CPU_BASE_ADDRESS_HIGH 0x724
1231
1232/****************************** MV64360 and MV64460 PCI ***************************/
1233/***********************************/
1234/* PCI Control Register Map */
1235/***********************************/
1236
1237#define PCI_0_DLL_STATUS_AND_COMMAND 0x1d20
1238#define PCI_1_DLL_STATUS_AND_COMMAND 0x1da0
1239#define PCI_0_MPP_PADS_DRIVE_CONTROL 0x1d1C
1240#define PCI_1_MPP_PADS_DRIVE_CONTROL 0x1d9C
1241#define PCI_0_COMMAND 0xc00
1242#define PCI_1_COMMAND 0xc80
1243#define PCI_0_MODE 0xd00
1244#define PCI_1_MODE 0xd80
1245#define PCI_0_RETRY 0xc04
1246#define PCI_1_RETRY 0xc84
1247#define PCI_0_READ_BUFFER_DISCARD_TIMER 0xd04
1248#define PCI_1_READ_BUFFER_DISCARD_TIMER 0xd84
1249#define PCI_0_MSI_TRIGGER_TIMER 0xc38
1250#define PCI_1_MSI_TRIGGER_TIMER 0xcb8
1251#define PCI_0_ARBITER_CONTROL 0x1d00
1252#define PCI_1_ARBITER_CONTROL 0x1d80
1253#define PCI_0_CROSS_BAR_CONTROL_LOW 0x1d08
1254#define PCI_1_CROSS_BAR_CONTROL_LOW 0x1d88
1255#define PCI_0_CROSS_BAR_CONTROL_HIGH 0x1d0c
1256#define PCI_1_CROSS_BAR_CONTROL_HIGH 0x1d8c
1257#define PCI_0_CROSS_BAR_TIMEOUT 0x1d04
1258#define PCI_1_CROSS_BAR_TIMEOUT 0x1d84
1259#define PCI_0_SYNC_BARRIER_TRIGGER_REG 0x1D18
1260#define PCI_1_SYNC_BARRIER_TRIGGER_REG 0x1D98
1261#define PCI_0_SYNC_BARRIER_VIRTUAL_REG 0x1d10
1262#define PCI_1_SYNC_BARRIER_VIRTUAL_REG 0x1d90
1263#define PCI_0_P2P_CONFIG 0x1d14
1264#define PCI_1_P2P_CONFIG 0x1d94
1265
1266#define PCI_0_ACCESS_CONTROL_BASE_0_LOW 0x1e00
1267#define PCI_0_ACCESS_CONTROL_BASE_0_HIGH 0x1e04
1268#define PCI_0_ACCESS_CONTROL_SIZE_0 0x1e08
1269#define PCI_0_ACCESS_CONTROL_BASE_1_LOW 0x1e10
1270#define PCI_0_ACCESS_CONTROL_BASE_1_HIGH 0x1e14
1271#define PCI_0_ACCESS_CONTROL_SIZE_1 0x1e18
1272#define PCI_0_ACCESS_CONTROL_BASE_2_LOW 0x1e20
1273#define PCI_0_ACCESS_CONTROL_BASE_2_HIGH 0x1e24
1274#define PCI_0_ACCESS_CONTROL_SIZE_2 0x1e28
1275#define PCI_0_ACCESS_CONTROL_BASE_3_LOW 0x1e30
1276#define PCI_0_ACCESS_CONTROL_BASE_3_HIGH 0x1e34
1277#define PCI_0_ACCESS_CONTROL_SIZE_3 0x1e38
1278#define PCI_0_ACCESS_CONTROL_BASE_4_LOW 0x1e40
1279#define PCI_0_ACCESS_CONTROL_BASE_4_HIGH 0x1e44
1280#define PCI_0_ACCESS_CONTROL_SIZE_4 0x1e48
1281#define PCI_0_ACCESS_CONTROL_BASE_5_LOW 0x1e50
1282#define PCI_0_ACCESS_CONTROL_BASE_5_HIGH 0x1e54
1283#define PCI_0_ACCESS_CONTROL_SIZE_5 0x1e58
1284
1285#define PCI_1_ACCESS_CONTROL_BASE_0_LOW 0x1e80
1286#define PCI_1_ACCESS_CONTROL_BASE_0_HIGH 0x1e84
1287#define PCI_1_ACCESS_CONTROL_SIZE_0 0x1e88
1288#define PCI_1_ACCESS_CONTROL_BASE_1_LOW 0x1e90
1289#define PCI_1_ACCESS_CONTROL_BASE_1_HIGH 0x1e94
1290#define PCI_1_ACCESS_CONTROL_SIZE_1 0x1e98
1291#define PCI_1_ACCESS_CONTROL_BASE_2_LOW 0x1ea0
1292#define PCI_1_ACCESS_CONTROL_BASE_2_HIGH 0x1ea4
1293#define PCI_1_ACCESS_CONTROL_SIZE_2 0x1ea8
1294#define PCI_1_ACCESS_CONTROL_BASE_3_LOW 0x1eb0
1295#define PCI_1_ACCESS_CONTROL_BASE_3_HIGH 0x1eb4
1296#define PCI_1_ACCESS_CONTROL_SIZE_3 0x1eb8
1297#define PCI_1_ACCESS_CONTROL_BASE_4_LOW 0x1ec0
1298#define PCI_1_ACCESS_CONTROL_BASE_4_HIGH 0x1ec4
1299#define PCI_1_ACCESS_CONTROL_SIZE_4 0x1ec8
1300#define PCI_1_ACCESS_CONTROL_BASE_5_LOW 0x1ed0
1301#define PCI_1_ACCESS_CONTROL_BASE_5_HIGH 0x1ed4
1302#define PCI_1_ACCESS_CONTROL_SIZE_5 0x1ed8
1303
1304/****************************************/
1305/* PCI Configuration Access Registers */
1306/****************************************/
1307
1308#define PCI_0_CONFIG_ADDR 0xcf8
1309#define PCI_0_CONFIG_DATA_VIRTUAL_REG 0xcfc
1310#define PCI_1_CONFIG_ADDR 0xc78
1311#define PCI_1_CONFIG_DATA_VIRTUAL_REG 0xc7c
1312#define PCI_0_INTERRUPT_ACKNOWLEDGE_VIRTUAL_REG 0xc34
1313#define PCI_1_INTERRUPT_ACKNOWLEDGE_VIRTUAL_REG 0xcb4
1314
1315/****************************************/
1316/* PCI Error Report Registers */
1317/****************************************/
1318
1319#define PCI_0_SERR_MASK 0xc28
1320#define PCI_1_SERR_MASK 0xca8
1321#define PCI_0_ERROR_ADDR_LOW 0x1d40
1322#define PCI_1_ERROR_ADDR_LOW 0x1dc0
1323#define PCI_0_ERROR_ADDR_HIGH 0x1d44
1324#define PCI_1_ERROR_ADDR_HIGH 0x1dc4
1325#define PCI_0_ERROR_ATTRIBUTE 0x1d48
1326#define PCI_1_ERROR_ATTRIBUTE 0x1dc8
1327#define PCI_0_ERROR_COMMAND 0x1d50
1328#define PCI_1_ERROR_COMMAND 0x1dd0
1329#define PCI_0_ERROR_CAUSE 0x1d58
1330#define PCI_1_ERROR_CAUSE 0x1dd8
1331#define PCI_0_ERROR_MASK 0x1d5c
1332#define PCI_1_ERROR_MASK 0x1ddc
1333
1334/****************************************/
1335/* PCI Debug Registers */
1336/****************************************/
1337
1338#define PCI_0_MMASK 0X1D24
1339#define PCI_1_MMASK 0X1DA4
1340
1341/*********************************************/
1342/* PCI Configuration, Function 0, Registers */
1343/*********************************************/
1344
1345#define PCI_DEVICE_AND_VENDOR_ID 0x000
1346#define PCI_STATUS_AND_COMMAND 0x004
1347#define PCI_CLASS_CODE_AND_REVISION_ID 0x008
1348#define PCI_BIST_HEADER_TYPE_LATENCY_TIMER_CACHE_LINE 0x00C
1349
1350#define PCI_SCS_0_BASE_ADDR_LOW 0x010
1351#define PCI_SCS_0_BASE_ADDR_HIGH 0x014
1352#define PCI_SCS_1_BASE_ADDR_LOW 0x018
1353#define PCI_SCS_1_BASE_ADDR_HIGH 0x01C
1354#define PCI_INTERNAL_REG_MEM_MAPPED_BASE_ADDR_LOW 0x020
1355#define PCI_INTERNAL_REG_MEM_MAPPED_BASE_ADDR_HIGH 0x024
1356 /*#define PCI_SUBSYSTEM_ID_AND_SUBSYSTEM_VENDOR_ID 0x02c1 */
1357#define PCI_EXPANSION_ROM_BASE_ADDR_REG 0x030
1358#define PCI_CAPABILTY_LIST_POINTER 0x034
1359#define PCI_INTERRUPT_PIN_AND_LINE 0x03C
1360 /* capability list */
1361#define PCI_POWER_MANAGEMENT_CAPABILITY 0x040
1362#define PCI_POWER_MANAGEMENT_STATUS_AND_CONTROL 0x044
1363#define PCI_VPD_ADDR 0x048
1364#define PCI_VPD_DATA 0x04c
1365#define PCI_MSI_MESSAGE_CONTROL 0x050
1366#define PCI_MSI_MESSAGE_ADDR 0x054
1367#define PCI_MSI_MESSAGE_UPPER_ADDR 0x058
1368#define PCI_MSI_MESSAGE_DATA 0x05c
1369#define PCI_X_COMMAND 0x060
1370#define PCI_X_STATUS 0x064
1371#define PCI_COMPACT_PCI_HOT_SWAP 0x068
1372
1373/***********************************************/
1374/* PCI Configuration, Function 1, Registers */
1375/***********************************************/
1376
1377#define PCI_SCS_2_BASE_ADDR_LOW 0x110
1378#define PCI_SCS_2_BASE_ADDR_HIGH 0x114
1379#define PCI_SCS_3_BASE_ADDR_LOW 0x118
1380#define PCI_SCS_3_BASE_ADDR_HIGH 0x11c
1381#define PCI_INTERNAL_SRAM_BASE_ADDR_LOW 0x120
1382#define PCI_INTERNAL_SRAM_BASE_ADDR_HIGH 0x124
1383
1384/***********************************************/
1385/* PCI Configuration, Function 2, Registers */
1386/***********************************************/
1387
1388#define PCI_DEVCS_0_BASE_ADDR_LOW 0x210
1389#define PCI_DEVCS_0_BASE_ADDR_HIGH 0x214
1390#define PCI_DEVCS_1_BASE_ADDR_LOW 0x218
1391#define PCI_DEVCS_1_BASE_ADDR_HIGH 0x21c
1392#define PCI_DEVCS_2_BASE_ADDR_LOW 0x220
1393#define PCI_DEVCS_2_BASE_ADDR_HIGH 0x224
1394
1395/***********************************************/
1396/* PCI Configuration, Function 3, Registers */
1397/***********************************************/
1398
1399#define PCI_DEVCS_3_BASE_ADDR_LOW 0x310
1400#define PCI_DEVCS_3_BASE_ADDR_HIGH 0x314
1401#define PCI_BOOT_CS_BASE_ADDR_LOW 0x318
1402#define PCI_BOOT_CS_BASE_ADDR_HIGH 0x31c
1403#define PCI_CPU_BASE_ADDR_LOW 0x220
1404#define PCI_CPU_BASE_ADDR_HIGH 0x224
1405
1406/***********************************************/
1407/* PCI Configuration, Function 4, Registers */
1408/***********************************************/
1409
1410#define PCI_P2P_MEM0_BASE_ADDR_LOW 0x410
1411#define PCI_P2P_MEM0_BASE_ADDR_HIGH 0x414
1412#define PCI_P2P_MEM1_BASE_ADDR_LOW 0x418
1413#define PCI_P2P_MEM1_BASE_ADDR_HIGH 0x41c
1414#define PCI_P2P_I_O_BASE_ADDR 0x420
1415#define PCI_INTERNAL_REGS_I_O_MAPPED_BASE_ADDR 0x424
1416
1417/****************************** MV64360 and MV64460 PCI End ***************************/
1418/****************************************/
1419/* I20 Support registers */
1420/****************************************/
1421
1422#define INBOUND_MESSAGE_REGISTER0_PCI_SIDE 0x010
1423#define INBOUND_MESSAGE_REGISTER1_PCI_SIDE 0x014
1424#define OUTBOUND_MESSAGE_REGISTER0_PCI_SIDE 0x018
1425#define OUTBOUND_MESSAGE_REGISTER1_PCI_SIDE 0x01C
1426#define INBOUND_DOORBELL_REGISTER_PCI_SIDE 0x020
1427#define INBOUND_INTERRUPT_CAUSE_REGISTER_PCI_SIDE 0x024
1428#define INBOUND_INTERRUPT_MASK_REGISTER_PCI_SIDE 0x028
1429#define OUTBOUND_DOORBELL_REGISTER_PCI_SIDE 0x02C
1430#define OUTBOUND_INTERRUPT_CAUSE_REGISTER_PCI_SIDE 0x030
1431#define OUTBOUND_INTERRUPT_MASK_REGISTER_PCI_SIDE 0x034
1432#define INBOUND_QUEUE_PORT_VIRTUAL_REGISTER_PCI_SIDE 0x040
1433#define OUTBOUND_QUEUE_PORT_VIRTUAL_REGISTER_PCI_SIDE 0x044
1434#define QUEUE_CONTROL_REGISTER_PCI_SIDE 0x050
1435#define QUEUE_BASE_ADDRESS_REGISTER_PCI_SIDE 0x054
1436#define INBOUND_FREE_HEAD_POINTER_REGISTER_PCI_SIDE 0x060
1437#define INBOUND_FREE_TAIL_POINTER_REGISTER_PCI_SIDE 0x064
1438#define INBOUND_POST_HEAD_POINTER_REGISTER_PCI_SIDE 0x068
1439#define INBOUND_POST_TAIL_POINTER_REGISTER_PCI_SIDE 0x06C
1440#define OUTBOUND_FREE_HEAD_POINTER_REGISTER_PCI_SIDE 0x070
1441#define OUTBOUND_FREE_TAIL_POINTER_REGISTER_PCI_SIDE 0x074
1442#define OUTBOUND_POST_HEAD_POINTER_REGISTER_PCI_SIDE 0x078
1443#define OUTBOUND_POST_TAIL_POINTER_REGISTER_PCI_SIDE 0x07C
1444
1445#define INBOUND_MESSAGE_REGISTER0_CPU_SIDE 0x1C10
1446#define INBOUND_MESSAGE_REGISTER1_CPU_SIDE 0x1C14
1447#define OUTBOUND_MESSAGE_REGISTER0_CPU_SIDE 0x1C18
1448#define OUTBOUND_MESSAGE_REGISTER1_CPU_SIDE 0x1C1C
1449#define INBOUND_DOORBELL_REGISTER_CPU_SIDE 0x1C20
1450#define INBOUND_INTERRUPT_CAUSE_REGISTER_CPU_SIDE 0x1C24
1451#define INBOUND_INTERRUPT_MASK_REGISTER_CPU_SIDE 0x1C28
1452#define OUTBOUND_DOORBELL_REGISTER_CPU_SIDE 0x1C2C
1453#define OUTBOUND_INTERRUPT_CAUSE_REGISTER_CPU_SIDE 0x1C30
1454#define OUTBOUND_INTERRUPT_MASK_REGISTER_CPU_SIDE 0x1C34
1455#define INBOUND_QUEUE_PORT_VIRTUAL_REGISTER_CPU_SIDE 0x1C40
1456#define OUTBOUND_QUEUE_PORT_VIRTUAL_REGISTER_CPU_SIDE 0x1C44
1457#define QUEUE_CONTROL_REGISTER_CPU_SIDE 0x1C50
1458#define QUEUE_BASE_ADDRESS_REGISTER_CPU_SIDE 0x1C54
1459#define INBOUND_FREE_HEAD_POINTER_REGISTER_CPU_SIDE 0x1C60
1460#define INBOUND_FREE_TAIL_POINTER_REGISTER_CPU_SIDE 0x1C64
1461#define INBOUND_POST_HEAD_POINTER_REGISTER_CPU_SIDE 0x1C68
1462#define INBOUND_POST_TAIL_POINTER_REGISTER_CPU_SIDE 0x1C6C
1463#define OUTBOUND_FREE_HEAD_POINTER_REGISTER_CPU_SIDE 0x1C70
1464#define OUTBOUND_FREE_TAIL_POINTER_REGISTER_CPU_SIDE 0x1C74
1465#define OUTBOUND_POST_HEAD_POINTER_REGISTER_CPU_SIDE 0x1C78
1466#define OUTBOUND_POST_TAIL_POINTER_REGISTER_CPU_SIDE 0x1C7C
1467
1468
1469/****************************************/
1470/* Messaging Unit Registers (I20) */
1471/****************************************/
1472
1473#define I2O_INBOUND_MESSAGE_REG0_PCI_0_SIDE 0x010
1474#define I2O_INBOUND_MESSAGE_REG1_PCI_0_SIDE 0x014
1475#define I2O_OUTBOUND_MESSAGE_REG0_PCI_0_SIDE 0x018
1476#define I2O_OUTBOUND_MESSAGE_REG1_PCI_0_SIDE 0x01C
1477#define I2O_INBOUND_DOORBELL_REG_PCI_0_SIDE 0x020
1478#define I2O_INBOUND_INTERRUPT_CAUSE_REG_PCI_0_SIDE 0x024
1479#define I2O_INBOUND_INTERRUPT_MASK_REG_PCI_0_SIDE 0x028
1480#define I2O_OUTBOUND_DOORBELL_REG_PCI_0_SIDE 0x02C
1481#define I2O_OUTBOUND_INTERRUPT_CAUSE_REG_PCI_0_SIDE 0x030
1482#define I2O_OUTBOUND_INTERRUPT_MASK_REG_PCI_0_SIDE 0x034
1483#define I2O_INBOUND_QUEUE_PORT_VIRTUAL_REG_PCI_0_SIDE 0x040
1484#define I2O_OUTBOUND_QUEUE_PORT_VIRTUAL_REG_PCI_0_SIDE 0x044
1485#define I2O_QUEUE_CONTROL_REG_PCI_0_SIDE 0x050
1486#define I2O_QUEUE_BASE_ADDR_REG_PCI_0_SIDE 0x054
1487#define I2O_INBOUND_FREE_HEAD_POINTER_REG_PCI_0_SIDE 0x060
1488#define I2O_INBOUND_FREE_TAIL_POINTER_REG_PCI_0_SIDE 0x064
1489#define I2O_INBOUND_POST_HEAD_POINTER_REG_PCI_0_SIDE 0x068
1490#define I2O_INBOUND_POST_TAIL_POINTER_REG_PCI_0_SIDE 0x06C
1491#define I2O_OUTBOUND_FREE_HEAD_POINTER_REG_PCI_0_SIDE 0x070
1492#define I2O_OUTBOUND_FREE_TAIL_POINTER_REG_PCI_0_SIDE 0x074
1493#define I2O_OUTBOUND_POST_HEAD_POINTER_REG_PCI_0_SIDE 0x0F8
1494#define I2O_OUTBOUND_POST_TAIL_POINTER_REG_PCI_0_SIDE 0x0FC
1495
1496#define I2O_INBOUND_MESSAGE_REG0_PCI_1_SIDE 0x090
1497#define I2O_INBOUND_MESSAGE_REG1_PCI_1_SIDE 0x094
1498#define I2O_OUTBOUND_MESSAGE_REG0_PCI_1_SIDE 0x098
1499#define I2O_OUTBOUND_MESSAGE_REG1_PCI_1_SIDE 0x09C
1500#define I2O_INBOUND_DOORBELL_REG_PCI_1_SIDE 0x0A0
1501#define I2O_INBOUND_INTERRUPT_CAUSE_REG_PCI_1_SIDE 0x0A4
1502#define I2O_INBOUND_INTERRUPT_MASK_REG_PCI_1_SIDE 0x0A8
1503#define I2O_OUTBOUND_DOORBELL_REG_PCI_1_SIDE 0x0AC
1504#define I2O_OUTBOUND_INTERRUPT_CAUSE_REG_PCI_1_SIDE 0x0B0
1505#define I2O_OUTBOUND_INTERRUPT_MASK_REG_PCI_1_SIDE 0x0B4
1506#define I2O_INBOUND_QUEUE_PORT_VIRTUAL_REG_PCI_1_SIDE 0x0C0
1507#define I2O_OUTBOUND_QUEUE_PORT_VIRTUAL_REG_PCI_1_SIDE 0x0C4
1508#define I2O_QUEUE_CONTROL_REG_PCI_1_SIDE 0x0D0
1509#define I2O_QUEUE_BASE_ADDR_REG_PCI_1_SIDE 0x0D4
1510#define I2O_INBOUND_FREE_HEAD_POINTER_REG_PCI_1_SIDE 0x0E0
1511#define I2O_INBOUND_FREE_TAIL_POINTER_REG_PCI_1_SIDE 0x0E4
1512#define I2O_INBOUND_POST_HEAD_POINTER_REG_PCI_1_SIDE 0x0E8
1513#define I2O_INBOUND_POST_TAIL_POINTER_REG_PCI_1_SIDE 0x0EC
1514#define I2O_OUTBOUND_FREE_HEAD_POINTER_REG_PCI_1_SIDE 0x0F0
1515#define I2O_OUTBOUND_FREE_TAIL_POINTER_REG_PCI_1_SIDE 0x0F4
1516#define I2O_OUTBOUND_POST_HEAD_POINTER_REG_PCI_1_SIDE 0x078
1517#define I2O_OUTBOUND_POST_TAIL_POINTER_REG_PCI_1_SIDE 0x07C
1518
1519#define I2O_INBOUND_MESSAGE_REG0_CPU0_SIDE 0x1C10
1520#define I2O_INBOUND_MESSAGE_REG1_CPU0_SIDE 0x1C14
1521#define I2O_OUTBOUND_MESSAGE_REG0_CPU0_SIDE 0x1C18
1522#define I2O_OUTBOUND_MESSAGE_REG1_CPU0_SIDE 0x1C1C
1523#define I2O_INBOUND_DOORBELL_REG_CPU0_SIDE 0x1C20
1524#define I2O_INBOUND_INTERRUPT_CAUSE_REG_CPU0_SIDE 0x1C24
1525#define I2O_INBOUND_INTERRUPT_MASK_REG_CPU0_SIDE 0x1C28
1526#define I2O_OUTBOUND_DOORBELL_REG_CPU0_SIDE 0x1C2C
1527#define I2O_OUTBOUND_INTERRUPT_CAUSE_REG_CPU0_SIDE 0x1C30
1528#define I2O_OUTBOUND_INTERRUPT_MASK_REG_CPU0_SIDE 0x1C34
1529#define I2O_INBOUND_QUEUE_PORT_VIRTUAL_REG_CPU0_SIDE 0x1C40
1530#define I2O_OUTBOUND_QUEUE_PORT_VIRTUAL_REG_CPU0_SIDE 0x1C44
1531#define I2O_QUEUE_CONTROL_REG_CPU0_SIDE 0x1C50
1532#define I2O_QUEUE_BASE_ADDR_REG_CPU0_SIDE 0x1C54
1533#define I2O_INBOUND_FREE_HEAD_POINTER_REG_CPU0_SIDE 0x1C60
1534#define I2O_INBOUND_FREE_TAIL_POINTER_REG_CPU0_SIDE 0x1C64
1535#define I2O_INBOUND_POST_HEAD_POINTER_REG_CPU0_SIDE 0x1C68
1536#define I2O_INBOUND_POST_TAIL_POINTER_REG_CPU0_SIDE 0x1C6C
1537#define I2O_OUTBOUND_FREE_HEAD_POINTER_REG_CPU0_SIDE 0x1C70
1538#define I2O_OUTBOUND_FREE_TAIL_POINTER_REG_CPU0_SIDE 0x1C74
1539#define I2O_OUTBOUND_POST_HEAD_POINTER_REG_CPU0_SIDE 0x1CF8
1540#define I2O_OUTBOUND_POST_TAIL_POINTER_REG_CPU0_SIDE 0x1CFC
1541#define I2O_INBOUND_MESSAGE_REG0_CPU1_SIDE 0x1C90
1542#define I2O_INBOUND_MESSAGE_REG1_CPU1_SIDE 0x1C94
1543#define I2O_OUTBOUND_MESSAGE_REG0_CPU1_SIDE 0x1C98
1544#define I2O_OUTBOUND_MESSAGE_REG1_CPU1_SIDE 0x1C9C
1545#define I2O_INBOUND_DOORBELL_REG_CPU1_SIDE 0x1CA0
1546#define I2O_INBOUND_INTERRUPT_CAUSE_REG_CPU1_SIDE 0x1CA4
1547#define I2O_INBOUND_INTERRUPT_MASK_REG_CPU1_SIDE 0x1CA8
1548#define I2O_OUTBOUND_DOORBELL_REG_CPU1_SIDE 0x1CAC
1549#define I2O_OUTBOUND_INTERRUPT_CAUSE_REG_CPU1_SIDE 0x1CB0
1550#define I2O_OUTBOUND_INTERRUPT_MASK_REG_CPU1_SIDE 0x1CB4
1551#define I2O_INBOUND_QUEUE_PORT_VIRTUAL_REG_CPU1_SIDE 0x1CC0
1552#define I2O_OUTBOUND_QUEUE_PORT_VIRTUAL_REG_CPU1_SIDE 0x1CC4
1553#define I2O_QUEUE_CONTROL_REG_CPU1_SIDE 0x1CD0
1554#define I2O_QUEUE_BASE_ADDR_REG_CPU1_SIDE 0x1CD4
1555#define I2O_INBOUND_FREE_HEAD_POINTER_REG_CPU1_SIDE 0x1CE0
1556#define I2O_INBOUND_FREE_TAIL_POINTER_REG_CPU1_SIDE 0x1CE4
1557#define I2O_INBOUND_POST_HEAD_POINTER_REG_CPU1_SIDE 0x1CE8
1558#define I2O_INBOUND_POST_TAIL_POINTER_REG_CPU1_SIDE 0x1CEC
1559#define I2O_OUTBOUND_FREE_HEAD_POINTER_REG_CPU1_SIDE 0x1CF0
1560#define I2O_OUTBOUND_FREE_TAIL_POINTER_REG_CPU1_SIDE 0x1CF4
1561#define I2O_OUTBOUND_POST_HEAD_POINTER_REG_CPU1_SIDE 0x1C78
1562#define I2O_OUTBOUND_POST_TAIL_POINTER_REG_CPU1_SIDE 0x1C7C
1563
1564
1565/****************************************/
1566/* Communication Unit Registers */
1567/****************************************/
1568/*
1569#define ETHERNET_0_ADDRESS_CONTROL_LOW 0xf200
1570#define ETHERNET_0_ADDRESS_CONTROL_HIGH 0xf204
1571#define ETHERNET_0_RECEIVE_BUFFER_PCI_HIGH_ADDRESS 0xf208
1572#define ETHERNET_0_TRANSMIT_BUFFER_PCI_HIGH_ADDRESS 0xf20c
1573#define ETHERNET_0_RECEIVE_DESCRIPTOR_PCI_HIGH_ADDRESS 0xf210
1574#define ETHERNET_0_TRANSMIT_DESCRIPTOR_PCI_HIGH_ADDRESS 0xf214
1575#define ETHERNET_0_HASH_TABLE_PCI_HIGH_ADDRESS 0xf218
1576#define ETHERNET_1_ADDRESS_CONTROL_LOW 0xf220
1577#define ETHERNET_1_ADDRESS_CONTROL_HIGH 0xf224
1578#define ETHERNET_1_RECEIVE_BUFFER_PCI_HIGH_ADDRESS 0xf228
1579#define ETHERNET_1_TRANSMIT_BUFFER_PCI_HIGH_ADDRESS 0xf22c
1580#define ETHERNET_1_RECEIVE_DESCRIPTOR_PCI_HIGH_ADDRESS 0xf230
1581#define ETHERNET_1_TRANSMIT_DESCRIPTOR_PCI_HIGH_ADDRESS 0xf234
1582#define ETHERNET_1_HASH_TABLE_PCI_HIGH_ADDRESS 0xf238
1583#define ETHERNET_2_ADDRESS_CONTROL_LOW 0xf240
1584#define ETHERNET_2_ADDRESS_CONTROL_HIGH 0xf244
1585#define ETHERNET_2_RECEIVE_BUFFER_PCI_HIGH_ADDRESS 0xf248
1586#define ETHERNET_2_TRANSMIT_BUFFER_PCI_HIGH_ADDRESS 0xf24c
1587#define ETHERNET_2_RECEIVE_DESCRIPTOR_PCI_HIGH_ADDRESS 0xf250
1588#define ETHERNET_2_TRANSMIT_DESCRIPTOR_PCI_HIGH_ADDRESS 0xf254
1589#define ETHERNET_2_HASH_TABLE_PCI_HIGH_ADDRESS 0xf258
1590 */
1591#define MPSC_0_ADDRESS_CONTROL_LOW 0xf280
1592#define MPSC_0_ADDRESS_CONTROL_HIGH 0xf284
1593#define MPSC_0_RECEIVE_BUFFER_PCI_HIGH_ADDRESS 0xf288
1594#define MPSC_0_TRANSMIT_BUFFER_PCI_HIGH_ADDRESS 0xf28c
1595#define MPSC_0_RECEIVE_DESCRIPTOR_PCI_HIGH_ADDRESS 0xf290
1596#define MPSC_0_TRANSMIT_DESCRIPTOR_PCI_HIGH_ADDRESS 0xf294
1597#define MPSC_1_ADDRESS_CONTROL_LOW 0xf2c0
1598#define MPSC_1_ADDRESS_CONTROL_HIGH 0xf2c4
1599#define MPSC_1_RECEIVE_BUFFER_PCI_HIGH_ADDRESS 0xf2c8
1600#define MPSC_1_TRANSMIT_BUFFER_PCI_HIGH_ADDRESS 0xf2cc
1601#define MPSC_1_RECEIVE_DESCRIPTOR_PCI_HIGH_ADDRESS 0xf2d0
1602#define MPSC_1_TRANSMIT_DESCRIPTOR_PCI_HIGH_ADDRESS 0xf2d4
1603 /*#define SERIAL_INIT_PCI_HIGH_ADDRESS 0xf3201 */
1604#define COMM_UNIT_ARBITER_CONTROL 0xf300
1605#define COMM_UNIT_CROSS_BAR_TIMEOUT 0xf304
1606#define COMM_UNIT_INTERRUPT_CAUSE 0xf310
1607#define COMM_UNIT_INTERRUPT_MASK 0xf314
1608#define COMM_UNIT_ERROR_ADDRESS 0xf314
1609/****************************************/
1610/* Serial Initialization registers */
1611/****************************************/
1612
1613 /*#define SERIAL_INIT_LAST_DATA 0xf3241 */
1614 /*#define SERIAL_INIT_STATUS_AND_CONTROL 0xf3281 */
1615#define SERIAL_INIT_LAST_DATA 0xf324
1616#define SERIAL_INIT_CONTROL 0xf328
1617#define SERIAL_INIT_STATUS 0xf32c
1618
1619
1620/****************************************/
1621/* Ethernet Unit Registers */
1622/****************************************/
1623
1624#define ETH_PHY_ADDR_REG 0x2000
1625#define ETH_SMI_REG 0x2004
1626#define ETH_UNIT_DEFAULT_ADDR_REG 0x2008
1627#define ETH_UNIT_DEFAULTID_REG 0x200c
1628#define ETH_UNIT_INTERRUPT_CAUSE_REG 0x2080
1629#define ETH_UNIT_INTERRUPT_MASK_REG 0x2084
1630#define ETH_UNIT_INTERNAL_USE_REG 0x24fc
1631#define ETH_UNIT_ERROR_ADDR_REG 0x2094
1632#define ETH_BAR_0 0x2200
1633#define ETH_BAR_1 0x2208
1634#define ETH_BAR_2 0x2210
1635#define ETH_BAR_3 0x2218
1636#define ETH_BAR_4 0x2220
1637#define ETH_BAR_5 0x2228
1638#define ETH_SIZE_REG_0 0x2204
1639#define ETH_SIZE_REG_1 0x220c
1640#define ETH_SIZE_REG_2 0x2214
1641#define ETH_SIZE_REG_3 0x221c
1642#define ETH_SIZE_REG_4 0x2224
1643#define ETH_SIZE_REG_5 0x222c
1644#define ETH_HEADERS_RETARGET_BASE_REG 0x2230
1645#define ETH_HEADERS_RETARGET_CONTROL_REG 0x2234
1646#define ETH_HIGH_ADDR_REMAP_REG_0 0x2280
1647#define ETH_HIGH_ADDR_REMAP_REG_1 0x2284
1648#define ETH_HIGH_ADDR_REMAP_REG_2 0x2288
1649#define ETH_HIGH_ADDR_REMAP_REG_3 0x228c
1650#define ETH_BASE_ADDR_ENABLE_REG 0x2290
1651#define ETH_ACCESS_PROTECTION_REG(port) (0x2294 + (port<<2))
1652#define ETH_MIB_COUNTERS_BASE(port) (0x3000 + (port<<7))
1653#define ETH_PORT_CONFIG_REG(port) (0x2400 + (port<<10))
1654#define ETH_PORT_CONFIG_EXTEND_REG(port) (0x2404 + (port<<10))
1655#define ETH_MII_SERIAL_PARAMETRS_REG(port) (0x2408 + (port<<10))
1656#define ETH_GMII_SERIAL_PARAMETRS_REG(port) (0x240c + (port<<10))
1657#define ETH_VLAN_ETHERTYPE_REG(port) (0x2410 + (port<<10))
1658#define ETH_MAC_ADDR_LOW(port) (0x2414 + (port<<10))
1659#define ETH_MAC_ADDR_HIGH(port) (0x2418 + (port<<10))
1660#define ETH_SDMA_CONFIG_REG(port) (0x241c + (port<<10))
1661#define ETH_DSCP_0(port) (0x2420 + (port<<10))
1662#define ETH_DSCP_1(port) (0x2424 + (port<<10))
1663#define ETH_DSCP_2(port) (0x2428 + (port<<10))
1664#define ETH_DSCP_3(port) (0x242c + (port<<10))
1665#define ETH_DSCP_4(port) (0x2430 + (port<<10))
1666#define ETH_DSCP_5(port) (0x2434 + (port<<10))
1667#define ETH_DSCP_6(port) (0x2438 + (port<<10))
1668#define ETH_PORT_SERIAL_CONTROL_REG(port) (0x243c + (port<<10))
1669#define ETH_VLAN_PRIORITY_TAG_TO_PRIORITY(port) (0x2440 + (port<<10))
1670#define ETH_PORT_STATUS_REG(port) (0x2444 + (port<<10))
1671#define ETH_TRANSMIT_QUEUE_COMMAND_REG(port) (0x2448 + (port<<10))
1672#define ETH_TX_QUEUE_FIXED_PRIORITY(port) (0x244c + (port<<10))
1673#define ETH_PORT_TX_TOKEN_BUCKET_RATE_CONFIG(port) (0x2450 + (port<<10))
1674#define ETH_MAXIMUM_TRANSMIT_UNIT(port) (0x2458 + (port<<10))
1675#define ETH_PORT_MAXIMUM_TOKEN_BUCKET_SIZE(port) (0x245c + (port<<10))
1676#define ETH_INTERRUPT_CAUSE_REG(port) (0x2460 + (port<<10))
1677#define ETH_INTERRUPT_CAUSE_EXTEND_REG(port) (0x2464 + (port<<10))
1678#define ETH_INTERRUPT_MASK_REG(port) (0x2468 + (port<<10))
1679#define ETH_INTERRUPT_EXTEND_MASK_REG(port) (0x246c + (port<<10))
1680#define ETH_RX_FIFO_URGENT_THRESHOLD_REG(port) (0x2470 + (port<<10))
1681#define ETH_TX_FIFO_URGENT_THRESHOLD_REG(port) (0x2474 + (port<<10))
1682#define ETH_RX_MINIMAL_FRAME_SIZE_REG(port) (0x247c + (port<<10))
1683#define ETH_RX_DISCARDED_FRAMES_COUNTER(port) (0x2484 + (port<<10)
1684#define ETH_PORT_DEBUG_0_REG(port) (0x248c + (port<<10))
1685#define ETH_PORT_DEBUG_1_REG(port) (0x2490 + (port<<10))
1686#define ETH_PORT_INTERNAL_ADDR_ERROR_REG(port) (0x2494 + (port<<10))
1687#define ETH_INTERNAL_USE_REG(port) (0x24fc + (port<<10))
1688#define ETH_RECEIVE_QUEUE_COMMAND_REG(port) (0x2680 + (port<<10))
1689#define ETH_CURRENT_SERVED_TX_DESC_PTR(port) (0x2684 + (port<<10))
1690#define ETH_RX_CURRENT_QUEUE_DESC_PTR_0(port) (0x260c + (port<<10))
1691#define ETH_RX_CURRENT_QUEUE_DESC_PTR_1(port) (0x261c + (port<<10))
1692#define ETH_RX_CURRENT_QUEUE_DESC_PTR_2(port) (0x262c + (port<<10))
1693#define ETH_RX_CURRENT_QUEUE_DESC_PTR_3(port) (0x263c + (port<<10))
1694#define ETH_RX_CURRENT_QUEUE_DESC_PTR_4(port) (0x264c + (port<<10))
1695#define ETH_RX_CURRENT_QUEUE_DESC_PTR_5(port) (0x265c + (port<<10))
1696#define ETH_RX_CURRENT_QUEUE_DESC_PTR_6(port) (0x266c + (port<<10))
1697#define ETH_RX_CURRENT_QUEUE_DESC_PTR_7(port) (0x267c + (port<<10))
1698#define ETH_TX_CURRENT_QUEUE_DESC_PTR_0(port) (0x26c0 + (port<<10))
1699#define ETH_TX_CURRENT_QUEUE_DESC_PTR_1(port) (0x26c4 + (port<<10))
1700#define ETH_TX_CURRENT_QUEUE_DESC_PTR_2(port) (0x26c8 + (port<<10))
1701#define ETH_TX_CURRENT_QUEUE_DESC_PTR_3(port) (0x26cc + (port<<10))
1702#define ETH_TX_CURRENT_QUEUE_DESC_PTR_4(port) (0x26d0 + (port<<10))
1703#define ETH_TX_CURRENT_QUEUE_DESC_PTR_5(port) (0x26d4 + (port<<10))
1704#define ETH_TX_CURRENT_QUEUE_DESC_PTR_6(port) (0x26d8 + (port<<10))
1705#define ETH_TX_CURRENT_QUEUE_DESC_PTR_7(port) (0x26dc + (port<<10))
1706#define ETH_TX_QUEUE_0_TOKEN_BUCKET_COUNT(port) (0x2700 + (port<<10))
1707#define ETH_TX_QUEUE_1_TOKEN_BUCKET_COUNT(port) (0x2710 + (port<<10))
1708#define ETH_TX_QUEUE_2_TOKEN_BUCKET_COUNT(port) (0x2720 + (port<<10))
1709#define ETH_TX_QUEUE_3_TOKEN_BUCKET_COUNT(port) (0x2730 + (port<<10))
1710#define ETH_TX_QUEUE_4_TOKEN_BUCKET_COUNT(port) (0x2740 + (port<<10))
1711#define ETH_TX_QUEUE_5_TOKEN_BUCKET_COUNT(port) (0x2750 + (port<<10))
1712#define ETH_TX_QUEUE_6_TOKEN_BUCKET_COUNT(port) (0x2760 + (port<<10))
1713#define ETH_TX_QUEUE_7_TOKEN_BUCKET_COUNT(port) (0x2770 + (port<<10))
1714#define ETH_TX_QUEUE_0_TOKEN_BUCKET_CONFIG(port) (0x2704 + (port<<10))
1715#define ETH_TX_QUEUE_1_TOKEN_BUCKET_CONFIG(port) (0x2714 + (port<<10))
1716#define ETH_TX_QUEUE_2_TOKEN_BUCKET_CONFIG(port) (0x2724 + (port<<10))
1717#define ETH_TX_QUEUE_3_TOKEN_BUCKET_CONFIG(port) (0x2734 + (port<<10))
1718#define ETH_TX_QUEUE_4_TOKEN_BUCKET_CONFIG(port) (0x2744 + (port<<10))
1719#define ETH_TX_QUEUE_5_TOKEN_BUCKET_CONFIG(port) (0x2754 + (port<<10))
1720#define ETH_TX_QUEUE_6_TOKEN_BUCKET_CONFIG(port) (0x2764 + (port<<10))
1721#define ETH_TX_QUEUE_7_TOKEN_BUCKET_CONFIG(port) (0x2774 + (port<<10))
1722#define ETH_TX_QUEUE_0_ARBITER_CONFIG(port) (0x2708 + (port<<10))
1723#define ETH_TX_QUEUE_1_ARBITER_CONFIG(port) (0x2718 + (port<<10))
1724#define ETH_TX_QUEUE_2_ARBITER_CONFIG(port) (0x2728 + (port<<10))
1725#define ETH_TX_QUEUE_3_ARBITER_CONFIG(port) (0x2738 + (port<<10))
1726#define ETH_TX_QUEUE_4_ARBITER_CONFIG(port) (0x2748 + (port<<10))
1727#define ETH_TX_QUEUE_5_ARBITER_CONFIG(port) (0x2758 + (port<<10))
1728#define ETH_TX_QUEUE_6_ARBITER_CONFIG(port) (0x2768 + (port<<10))
1729#define ETH_TX_QUEUE_7_ARBITER_CONFIG(port) (0x2778 + (port<<10))
1730#define ETH_PORT_TX_TOKEN_BUCKET_COUNT(port) (0x2780 + (port<<10))
1731#define ETH_DA_FILTER_SPECIAL_MULTICAST_TABLE_BASE(port) (0x3400 + (port<<10))
1732#define ETH_DA_FILTER_OTHER_MULTICAST_TABLE_BASE(port) (0x3500 + (port<<10))
1733#define ETH_DA_FILTER_UNICAST_TABLE_BASE(port) (0x3600 + (port<<10))
1734
1735/****************************************/
1736/* Cunit Debug (for internal use) */
1737/****************************************/
1738
1739#define CUNIT_ADDRESS 0xf340
1740#define CUNIT_COMMAND_AND_ID 0xf344
1741#define CUNIT_WRITE_DATA_LOW 0xf348
1742#define CUNIT_WRITE_DATA_HIGH 0xf34c
1743#define CUNIT_WRITE_BYTE_ENABLE 0xf358
1744#define CUNIT_READ_DATA_LOW 0xf350
1745#define CUNIT_READ_DATA_HIGH 0xf354
1746#define CUNIT_READ_ID 0xf35c
1747
1748/****************************************/
1749/* Fast Ethernet Unit Registers */
1750/****************************************/
1751
1752/****************************************/
1753/* Ethernet Unit Registers */
1754/****************************************/
1755
1756#define ETH_PHY_ADDR_REG 0x2000
1757#define ETH_SMI_REG 0x2004
1758#define ETH_UNIT_DEFAULT_ADDR_REG 0x2008
1759#define ETH_UNIT_DEFAULTID_REG 0x200c
1760#define ETH_UNIT_INTERRUPT_CAUSE_REG 0x2080
1761#define ETH_UNIT_INTERRUPT_MASK_REG 0x2084
1762#define ETH_UNIT_INTERNAL_USE_REG 0x24fc
1763#define ETH_UNIT_ERROR_ADDR_REG 0x2094
1764#define ETH_BAR_0 0x2200
1765#define ETH_BAR_1 0x2208
1766#define ETH_BAR_2 0x2210
1767#define ETH_BAR_3 0x2218
1768#define ETH_BAR_4 0x2220
1769#define ETH_BAR_5 0x2228
1770#define ETH_SIZE_REG_0 0x2204
1771#define ETH_SIZE_REG_1 0x220c
1772#define ETH_SIZE_REG_2 0x2214
1773#define ETH_SIZE_REG_3 0x221c
1774#define ETH_SIZE_REG_4 0x2224
1775#define ETH_SIZE_REG_5 0x222c
1776#define ETH_HEADERS_RETARGET_BASE_REG 0x2230
1777#define ETH_HEADERS_RETARGET_CONTROL_REG 0x2234
1778#define ETH_HIGH_ADDR_REMAP_REG_0 0x2280
1779#define ETH_HIGH_ADDR_REMAP_REG_1 0x2284
1780#define ETH_HIGH_ADDR_REMAP_REG_2 0x2288
1781#define ETH_HIGH_ADDR_REMAP_REG_3 0x228c
1782#define ETH_BASE_ADDR_ENABLE_REG 0x2290
1783#define ETH_ACCESS_PROTECTION_REG(port) (0x2294 + (port<<2))
1784#define ETH_MIB_COUNTERS_BASE(port) (0x3000 + (port<<7))
1785#define ETH_PORT_CONFIG_REG(port) (0x2400 + (port<<10))
1786#define ETH_PORT_CONFIG_EXTEND_REG(port) (0x2404 + (port<<10))
1787#define ETH_MII_SERIAL_PARAMETRS_REG(port) (0x2408 + (port<<10))
1788#define ETH_GMII_SERIAL_PARAMETRS_REG(port) (0x240c + (port<<10))
1789#define ETH_VLAN_ETHERTYPE_REG(port) (0x2410 + (port<<10))
1790#define ETH_MAC_ADDR_LOW(port) (0x2414 + (port<<10))
1791#define ETH_MAC_ADDR_HIGH(port) (0x2418 + (port<<10))
1792#define ETH_SDMA_CONFIG_REG(port) (0x241c + (port<<10))
1793#define ETH_DSCP_0(port) (0x2420 + (port<<10))
1794#define ETH_DSCP_1(port) (0x2424 + (port<<10))
1795#define ETH_DSCP_2(port) (0x2428 + (port<<10))
1796#define ETH_DSCP_3(port) (0x242c + (port<<10))
1797#define ETH_DSCP_4(port) (0x2430 + (port<<10))
1798#define ETH_DSCP_5(port) (0x2434 + (port<<10))
1799#define ETH_DSCP_6(port) (0x2438 + (port<<10))
1800#define ETH_PORT_SERIAL_CONTROL_REG(port) (0x243c + (port<<10))
1801#define ETH_VLAN_PRIORITY_TAG_TO_PRIORITY(port) (0x2440 + (port<<10))
1802#define ETH_PORT_STATUS_REG(port) (0x2444 + (port<<10))
1803#define ETH_TRANSMIT_QUEUE_COMMAND_REG(port) (0x2448 + (port<<10))
1804#define ETH_TX_QUEUE_FIXED_PRIORITY(port) (0x244c + (port<<10))
1805#define ETH_PORT_TX_TOKEN_BUCKET_RATE_CONFIG(port) (0x2450 + (port<<10))
1806#define ETH_MAXIMUM_TRANSMIT_UNIT(port) (0x2458 + (port<<10))
1807#define ETH_PORT_MAXIMUM_TOKEN_BUCKET_SIZE(port) (0x245c + (port<<10))
1808#define ETH_INTERRUPT_CAUSE_REG(port) (0x2460 + (port<<10))
1809#define ETH_INTERRUPT_CAUSE_EXTEND_REG(port) (0x2464 + (port<<10))
1810#define ETH_INTERRUPT_MASK_REG(port) (0x2468 + (port<<10))
1811#define ETH_INTERRUPT_EXTEND_MASK_REG(port) (0x246c + (port<<10))
1812#define ETH_RX_FIFO_URGENT_THRESHOLD_REG(port) (0x2470 + (port<<10))
1813#define ETH_TX_FIFO_URGENT_THRESHOLD_REG(port) (0x2474 + (port<<10))
1814#define ETH_RX_MINIMAL_FRAME_SIZE_REG(port) (0x247c + (port<<10))
1815#define ETH_RX_DISCARDED_FRAMES_COUNTER(port) (0x2484 + (port<<10)
1816#define ETH_PORT_DEBUG_0_REG(port) (0x248c + (port<<10))
1817#define ETH_PORT_DEBUG_1_REG(port) (0x2490 + (port<<10))
1818#define ETH_PORT_INTERNAL_ADDR_ERROR_REG(port) (0x2494 + (port<<10))
1819#define ETH_INTERNAL_USE_REG(port) (0x24fc + (port<<10))
1820#define ETH_RECEIVE_QUEUE_COMMAND_REG(port) (0x2680 + (port<<10))
1821#define ETH_CURRENT_SERVED_TX_DESC_PTR(port) (0x2684 + (port<<10))
1822#define ETH_RX_CURRENT_QUEUE_DESC_PTR_0(port) (0x260c + (port<<10))
1823#define ETH_RX_CURRENT_QUEUE_DESC_PTR_1(port) (0x261c + (port<<10))
1824#define ETH_RX_CURRENT_QUEUE_DESC_PTR_2(port) (0x262c + (port<<10))
1825#define ETH_RX_CURRENT_QUEUE_DESC_PTR_3(port) (0x263c + (port<<10))
1826#define ETH_RX_CURRENT_QUEUE_DESC_PTR_4(port) (0x264c + (port<<10))
1827#define ETH_RX_CURRENT_QUEUE_DESC_PTR_5(port) (0x265c + (port<<10))
1828#define ETH_RX_CURRENT_QUEUE_DESC_PTR_6(port) (0x266c + (port<<10))
1829#define ETH_RX_CURRENT_QUEUE_DESC_PTR_7(port) (0x267c + (port<<10))
1830#define ETH_TX_CURRENT_QUEUE_DESC_PTR_0(port) (0x26c0 + (port<<10))
1831#define ETH_TX_CURRENT_QUEUE_DESC_PTR_1(port) (0x26c4 + (port<<10))
1832#define ETH_TX_CURRENT_QUEUE_DESC_PTR_2(port) (0x26c8 + (port<<10))
1833#define ETH_TX_CURRENT_QUEUE_DESC_PTR_3(port) (0x26cc + (port<<10))
1834#define ETH_TX_CURRENT_QUEUE_DESC_PTR_4(port) (0x26d0 + (port<<10))
1835#define ETH_TX_CURRENT_QUEUE_DESC_PTR_5(port) (0x26d4 + (port<<10))
1836#define ETH_TX_CURRENT_QUEUE_DESC_PTR_6(port) (0x26d8 + (port<<10))
1837#define ETH_TX_CURRENT_QUEUE_DESC_PTR_7(port) (0x26dc + (port<<10))
1838#define ETH_TX_QUEUE_0_TOKEN_BUCKET_COUNT(port) (0x2700 + (port<<10))
1839#define ETH_TX_QUEUE_1_TOKEN_BUCKET_COUNT(port) (0x2710 + (port<<10))
1840#define ETH_TX_QUEUE_2_TOKEN_BUCKET_COUNT(port) (0x2720 + (port<<10))
1841#define ETH_TX_QUEUE_3_TOKEN_BUCKET_COUNT(port) (0x2730 + (port<<10))
1842#define ETH_TX_QUEUE_4_TOKEN_BUCKET_COUNT(port) (0x2740 + (port<<10))
1843#define ETH_TX_QUEUE_5_TOKEN_BUCKET_COUNT(port) (0x2750 + (port<<10))
1844#define ETH_TX_QUEUE_6_TOKEN_BUCKET_COUNT(port) (0x2760 + (port<<10))
1845#define ETH_TX_QUEUE_7_TOKEN_BUCKET_COUNT(port) (0x2770 + (port<<10))
1846#define ETH_TX_QUEUE_0_TOKEN_BUCKET_CONFIG(port) (0x2704 + (port<<10))
1847#define ETH_TX_QUEUE_1_TOKEN_BUCKET_CONFIG(port) (0x2714 + (port<<10))
1848#define ETH_TX_QUEUE_2_TOKEN_BUCKET_CONFIG(port) (0x2724 + (port<<10))
1849#define ETH_TX_QUEUE_3_TOKEN_BUCKET_CONFIG(port) (0x2734 + (port<<10))
1850#define ETH_TX_QUEUE_4_TOKEN_BUCKET_CONFIG(port) (0x2744 + (port<<10))
1851#define ETH_TX_QUEUE_5_TOKEN_BUCKET_CONFIG(port) (0x2754 + (port<<10))
1852#define ETH_TX_QUEUE_6_TOKEN_BUCKET_CONFIG(port) (0x2764 + (port<<10))
1853#define ETH_TX_QUEUE_7_TOKEN_BUCKET_CONFIG(port) (0x2774 + (port<<10))
1854#define ETH_TX_QUEUE_0_ARBITER_CONFIG(port) (0x2708 + (port<<10))
1855#define ETH_TX_QUEUE_1_ARBITER_CONFIG(port) (0x2718 + (port<<10))
1856#define ETH_TX_QUEUE_2_ARBITER_CONFIG(port) (0x2728 + (port<<10))
1857#define ETH_TX_QUEUE_3_ARBITER_CONFIG(port) (0x2738 + (port<<10))
1858#define ETH_TX_QUEUE_4_ARBITER_CONFIG(port) (0x2748 + (port<<10))
1859#define ETH_TX_QUEUE_5_ARBITER_CONFIG(port) (0x2758 + (port<<10))
1860#define ETH_TX_QUEUE_6_ARBITER_CONFIG(port) (0x2768 + (port<<10))
1861#define ETH_TX_QUEUE_7_ARBITER_CONFIG(port) (0x2778 + (port<<10))
1862#define ETH_PORT_TX_TOKEN_BUCKET_COUNT(port) (0x2780 + (port<<10))
1863#define ETH_DA_FILTER_SPECIAL_MULTICAST_TABLE_BASE(port) (0x3400 + (port<<10))
1864#define ETH_DA_FILTER_OTHER_MULTICAST_TABLE_BASE(port) (0x3500 + (port<<10))
1865#define ETH_DA_FILTER_UNICAST_TABLE_BASE(port) (0x3600 + (port<<10))
1866
1867
1868/* Ethernet GT64260 */
1869/*
1870#define ETHERNET_PHY_ADDRESS_REGISTER 0x2000
1871#define ETHERNET_SMI_REGISTER 0x2010
1872*/
1873/* Ethernet 0 */
1874/*
1875#define ETHERNET0_PORT_CONFIGURATION_REGISTER 0x2400
1876#define ETHERNET0_PORT_CONFIGURATION_EXTEND_REGISTER 0x2408
1877#define ETHERNET0_PORT_COMMAND_REGISTER 0x2410
1878#define ETHERNET0_PORT_STATUS_REGISTER 0x2418
1879#define ETHERNET0_SERIAL_PARAMETRS_REGISTER 0x2420
1880#define ETHERNET0_HASH_TABLE_POINTER_REGISTER 0x2428
1881#define ETHERNET0_FLOW_CONTROL_SOURCE_ADDRESS_LOW 0x2430
1882#define ETHERNET0_FLOW_CONTROL_SOURCE_ADDRESS_HIGH 0x2438
1883#define ETHERNET0_SDMA_CONFIGURATION_REGISTER 0x2440
1884#define ETHERNET0_SDMA_COMMAND_REGISTER 0x2448
1885#define ETHERNET0_INTERRUPT_CAUSE_REGISTER 0x2450
1886#define ETHERNET0_INTERRUPT_MASK_REGISTER 0x2458
1887#define ETHERNET0_FIRST_RX_DESCRIPTOR_POINTER0 0x2480
1888#define ETHERNET0_FIRST_RX_DESCRIPTOR_POINTER1 0x2484
1889#define ETHERNET0_FIRST_RX_DESCRIPTOR_POINTER2 0x2488
1890#define ETHERNET0_FIRST_RX_DESCRIPTOR_POINTER3 0x248c
1891#define ETHERNET0_CURRENT_RX_DESCRIPTOR_POINTER0 0x24a0
1892#define ETHERNET0_CURRENT_RX_DESCRIPTOR_POINTER1 0x24a4
1893#define ETHERNET0_CURRENT_RX_DESCRIPTOR_POINTER2 0x24a8
1894#define ETHERNET0_CURRENT_RX_DESCRIPTOR_POINTER3 0x24ac
1895#define ETHERNET0_CURRENT_TX_DESCRIPTOR_POINTER0 0x24e0
1896#define ETHERNET0_CURRENT_TX_DESCRIPTOR_POINTER1 0x24e4
1897#define ETHERNET0_MIB_COUNTER_BASE 0x2500
1898*/
1899/* Ethernet 1 */
1900/*
1901#define ETHERNET1_PORT_CONFIGURATION_REGISTER 0x2800
1902#define ETHERNET1_PORT_CONFIGURATION_EXTEND_REGISTER 0x2808
1903#define ETHERNET1_PORT_COMMAND_REGISTER 0x2810
1904#define ETHERNET1_PORT_STATUS_REGISTER 0x2818
1905#define ETHERNET1_SERIAL_PARAMETRS_REGISTER 0x2820
1906#define ETHERNET1_HASH_TABLE_POINTER_REGISTER 0x2828
1907#define ETHERNET1_FLOW_CONTROL_SOURCE_ADDRESS_LOW 0x2830
1908#define ETHERNET1_FLOW_CONTROL_SOURCE_ADDRESS_HIGH 0x2838
1909#define ETHERNET1_SDMA_CONFIGURATION_REGISTER 0x2840
1910#define ETHERNET1_SDMA_COMMAND_REGISTER 0x2848
1911#define ETHERNET1_INTERRUPT_CAUSE_REGISTER 0x2850
1912#define ETHERNET1_INTERRUPT_MASK_REGISTER 0x2858
1913#define ETHERNET1_FIRST_RX_DESCRIPTOR_POINTER0 0x2880
1914#define ETHERNET1_FIRST_RX_DESCRIPTOR_POINTER1 0x2884
1915#define ETHERNET1_FIRST_RX_DESCRIPTOR_POINTER2 0x2888
1916#define ETHERNET1_FIRST_RX_DESCRIPTOR_POINTER3 0x288c
1917#define ETHERNET1_CURRENT_RX_DESCRIPTOR_POINTER0 0x28a0
1918#define ETHERNET1_CURRENT_RX_DESCRIPTOR_POINTER1 0x28a4
1919#define ETHERNET1_CURRENT_RX_DESCRIPTOR_POINTER2 0x28a8
1920#define ETHERNET1_CURRENT_RX_DESCRIPTOR_POINTER3 0x28ac
1921#define ETHERNET1_CURRENT_TX_DESCRIPTOR_POINTER0 0x28e0
1922#define ETHERNET1_CURRENT_TX_DESCRIPTOR_POINTER1 0x28e4
1923#define ETHERNET1_MIB_COUNTER_BASE 0x2900
1924*/
1925/* Ethernet 2 */
1926/*
1927#define ETHERNET2_PORT_CONFIGURATION_REGISTER 0x2c00
1928#define ETHERNET2_PORT_CONFIGURATION_EXTEND_REGISTER 0x2c08
1929#define ETHERNET2_PORT_COMMAND_REGISTER 0x2c10
1930#define ETHERNET2_PORT_STATUS_REGISTER 0x2c18
1931#define ETHERNET2_SERIAL_PARAMETRS_REGISTER 0x2c20
1932#define ETHERNET2_HASH_TABLE_POINTER_REGISTER 0x2c28
1933#define ETHERNET2_FLOW_CONTROL_SOURCE_ADDRESS_LOW 0x2c30
1934#define ETHERNET2_FLOW_CONTROL_SOURCE_ADDRESS_HIGH 0x2c38
1935#define ETHERNET2_SDMA_CONFIGURATION_REGISTER 0x2c40
1936#define ETHERNET2_SDMA_COMMAND_REGISTER 0x2c48
1937#define ETHERNET2_INTERRUPT_CAUSE_REGISTER 0x2c50
1938#define ETHERNET2_INTERRUPT_MASK_REGISTER 0x2c58
1939#define ETHERNET2_FIRST_RX_DESCRIPTOR_POINTER0 0x2c80
1940#define ETHERNET2_FIRST_RX_DESCRIPTOR_POINTER1 0x2c84
1941#define ETHERNET2_FIRST_RX_DESCRIPTOR_POINTER2 0x2c88
1942#define ETHERNET2_FIRST_RX_DESCRIPTOR_POINTER3 0x2c8c
1943#define ETHERNET2_CURRENT_RX_DESCRIPTOR_POINTER0 0x2ca0
1944#define ETHERNET2_CURRENT_RX_DESCRIPTOR_POINTER1 0x2ca4
1945#define ETHERNET2_CURRENT_RX_DESCRIPTOR_POINTER2 0x2ca8
1946#define ETHERNET2_CURRENT_RX_DESCRIPTOR_POINTER3 0x2cac
1947#define ETHERNET2_CURRENT_TX_DESCRIPTOR_POINTER0 0x2ce0
1948#define ETHERNET2_CURRENT_TX_DESCRIPTOR_POINTER1 0x2ce4
1949#define ETHERNET2_MIB_COUNTER_BASE 0x2d00
1950*/
1951
1952/****************************************/
1953/* SDMA Registers */
1954/****************************************/
1955
1956#define SDMA_GROUP_CONFIGURATION_REGISTER 0xb1f0
1957#define CHANNEL0_CONFIGURATION_REGISTER 0x4000
1958#define CHANNEL0_COMMAND_REGISTER 0x4008
1959#define CHANNEL0_RX_CMD_STATUS 0x4800
1960#define CHANNEL0_RX_PACKET_AND_BUFFER_SIZES 0x4804
1961#define CHANNEL0_RX_BUFFER_POINTER 0x4808
1962#define CHANNEL0_RX_NEXT_POINTER 0x480c
1963#define CHANNEL0_CURRENT_RX_DESCRIPTOR_POINTER 0x4810
1964#define CHANNEL0_TX_CMD_STATUS 0x4C00
1965#define CHANNEL0_TX_PACKET_SIZE 0x4C04
1966#define CHANNEL0_TX_BUFFER_POINTER 0x4C08
1967#define CHANNEL0_TX_NEXT_POINTER 0x4C0c
1968#define CHANNEL0_CURRENT_TX_DESCRIPTOR_POINTER 0x4c10
1969#define CHANNEL0_FIRST_TX_DESCRIPTOR_POINTER 0x4c14
1970/*
1971#define CHANNEL1_CONFIGURATION_REGISTER 0x5000
1972#define CHANNEL1_COMMAND_REGISTER 0x5008
1973#define CHANNEL1_RX_CMD_STATUS 0x5800
1974#define CHANNEL1_RX_PACKET_AND_BUFFER_SIZES 0x5804
1975#define CHANNEL1_RX_BUFFER_POINTER 0x5808
1976#define CHANNEL1_RX_NEXT_POINTER 0x580c
1977#define CHANNEL1_TX_CMD_STATUS 0x5C00
1978#define CHANNEL1_TX_PACKET_SIZE 0x5C04
1979#define CHANNEL1_TX_BUFFER_POINTER 0x5C08
1980#define CHANNEL1_TX_NEXT_POINTER 0x5C0c
1981#define CHANNEL1_CURRENT_RX_DESCRIPTOR_POINTER 0x5810
1982#define CHANNEL1_CURRENT_TX_DESCRIPTOR_POINTER 0x5c10
1983#define CHANNEL1_FIRST_TX_DESCRIPTOR_POINTER 0x5c14
1984#define CHANNEL2_CONFIGURATION_REGISTER 0x6000
1985#define CHANNEL2_COMMAND_REGISTER 0x6008
1986#define CHANNEL2_RX_CMD_STATUS 0x6800
1987#define CHANNEL2_RX_PACKET_AND_BUFFER_SIZES 0x6804
1988#define CHANNEL2_RX_BUFFER_POINTER 0x6808
1989#define CHANNEL2_RX_NEXT_POINTER 0x680c
1990#define CHANNEL2_CURRENT_RX_DESCRIPTOR_POINTER 0x6810
1991#define CHANNEL2_TX_CMD_STATUS 0x6C00
1992#define CHANNEL2_TX_PACKET_SIZE 0x6C04
1993#define CHANNEL2_TX_BUFFER_POINTER 0x6C08
1994#define CHANNEL2_TX_NEXT_POINTER 0x6C0c
1995#define CHANNEL2_CURRENT_RX_DESCRIPTOR_POINTER 0x6810
1996#define CHANNEL2_CURRENT_TX_DESCRIPTOR_POINTER 0x6c10
1997#define CHANNEL2_FIRST_TX_DESCRIPTOR_POINTER 0x6c14
1998*/
1999/* SDMA Interrupt */
2000/*
2001#define SDMA_CAUSE 0xb820
2002#define SDMA_MASK 0xb8a0
2003*/
2004/***************************************/
2005/* SDMA Registers */
2006/***************************************/
2007
2008#define SDMA_CONFIG_REG(channel) (0x4000 + (channel<<13))
2009#define SDMA_COMMAND_REG(channel) (0x4008 + (channel<<13))
2010#define SDMA_CURRENT_RX_DESCRIPTOR_POINTER(channel) (0x4810 + (channel<<13))
2011#define SDMA_CURRENT_TX_DESCRIPTOR_POINTER(channel) (0x4c10 + (channel<<13))
2012#define SDMA_FIRST_TX_DESCRIPTOR_POINTER(channel) (0x4c14 + (channel<<13))
2013
2014#define SDMA_CAUSE_REG 0xb800
2015#define SDMA_MASK_REG 0xb880
2016
2017/****************************************/
2018/* Baude Rate Generators Registers */
2019/****************************************/
2020
2021/* BRG 0 */
2022#define BRG0_CONFIGURATION_REGISTER 0xb200
2023#define BRG0_BAUDE_TUNING_REGISTER 0xb204
2024
2025/* BRG 1 */
2026#define BRG1_CONFIGURATION_REGISTER 0xb208
2027#define BRG1_BAUDE_TUNING_REGISTER 0xb20c
2028
2029/* BRG 2 */
2030#define BRG2_CONFIGURATION_REGISTER 0xb210
2031#define BRG2_BAUDE_TUNING_REGISTER 0xb214
2032
2033/* BRG Interrupts */
2034#define BRG_CAUSE_REGISTER 0xb834
2035#define BRG_MASK_REGISTER 0xb8b4
2036#define BRG_CONFIG_REG(brg) (0xb200 + (brg<<3))
2037#define BRG_BAUDE_TUNING_REG(brg) (0xb208 + (brg<<3))
2038#define BRG_CAUSE_REG BRG_CAUSE_REGISTER /*0xb8341 */
2039#define BRG_MASK_REG BRG_MASK_REGISTER /*0xb8b41 */
2040
2041/* MISC */
2042
2043#define MAIN_ROUTING_REGISTER 0xb400
2044#define RECEIVE_CLOCK_ROUTING_REGISTER 0xb404
2045#define TRANSMIT_CLOCK_ROUTING_REGISTER 0xb408
2046#define COMM_UNIT_ARBITER_CONFIGURATION_REGISTER 0xb40c
2047
2048/****************************************/
2049/* Watchdog registers */
2050/****************************************/
2051#define WATCHDOG_CONFIGURATION_REGISTER 0xb410
2052#define WATCHDOG_VALUE_REGISTER 0xb414
2053#define WATCHDOG_CONFIG_REG WATCHDOG_CONFIGURATION_REGISTER /*0xb4101 */
2054#define WATCHDOG_VALUE_REG WATCHDOG_VALUE_REGISTER /*0xb4141 */
2055
2056
2057/****************************************/
2058/* Flex TDM Registers */
2059/****************************************/
2060
2061/* FTDM Port */
2062
2063#define FLEXTDM_TRANSMIT_READ_POINTER 0xa800
2064#define FLEXTDM_RECEIVE_READ_POINTER 0xa804
2065#define FLEXTDM_CONFIGURATION_REGISTER 0xa808
2066#define FLEXTDM_AUX_CHANNELA_TX_REGISTER 0xa80c
2067#define FLEXTDM_AUX_CHANNELA_RX_REGISTER 0xa810
2068#define FLEXTDM_AUX_CHANNELB_TX_REGISTER 0xa814
2069#define FLEXTDM_AUX_CHANNELB_RX_REGISTER 0xa818
2070
2071/* FTDM Interrupts */
2072
2073#define FTDM_CAUSE_REGISTER 0xb830
2074#define FTDM_MASK_REGISTER 0xb8b0
2075
2076
2077/****************************************/
2078/* GPP Interface Registers */
2079/****************************************/
2080
2081#define GPP_IO_CONTROL 0xf100
2082#define GPP_LEVEL_CONTROL 0xf110
2083#define GPP_VALUE 0xf104
2084#define GPP_INTERRUPT_CAUSE 0xf108
2085#define GPP_INTERRUPT_MASK 0xf10c
2086#define GPP_INTERRUPT_MASK0 GPP_INTERRUPT_MASK /* 0xf10c1 */
2087#define GPP_INTERRUPT_MASK1 0xf114
2088#define GPP_VALUE_SET 0xf118
2089#define GPP_VALUE_CLEAR 0xf11c
2090
2091/****************************************/
2092/* MPP Interface Registers */
2093/****************************************/
2094#define MPP_CONTROL0 0xf000
2095#define MPP_CONTROL1 0xf004
2096#define MPP_CONTROL2 0xf008
2097#define MPP_CONTROL3 0xf00c
2098#define DEBUG_PORT_MULTIPLEX 0xf014
2099 /*#define SERIAL_PORT_MULTIPLEX 0xf0101 */
2100
2101/****************************************/
2102/* Interrupt Controller Registers */
2103/****************************************/
2104
2105/****************************************/
2106/* Interrupts */
2107/****************************************/
2108/****************************************/
2109/* Interrupts (checked I.A. 14.10.02) */
2110/****************************************/
2111
2112#define LOW_INTERRUPT_CAUSE_REGISTER 0x004 /* gt64260: 0xc181 */
2113#define HIGH_INTERRUPT_CAUSE_REGISTER 0x00c /* gt64260: 0xc681 */
2114#define CPU_INTERRUPT_MASK_REGISTER_LOW 0x014 /* gt64260: 0xc1c1 */
2115#define CPU_INTERRUPT_MASK_REGISTER_HIGH 0x01c /* gt64260: 0xc6c1 */
2116#define CPU_SELECT_CAUSE_REGISTER 0x024 /* gt64260: 0xc701 */
2117#define CPU_INTERRUPT_1_MASK_REGISTER_LOW 0x034 /* new in the MV64360 and MV64460 */
2118#define CPU_INTERRUPT_1_MASK_REGISTER_HIGH 0x03c /* new in the MV64360 and MV64460 */
2119#define CPU_SELECT_1_CAUSE_REGISTER 0x044 /* new in the MV64360 and MV64460 */
2120#define PCI_0INTERRUPT_CAUSE_MASK_REGISTER_LOW 0x054 /* gt64260: 0xc241 */
2121#define PCI_0INTERRUPT_CAUSE_MASK_REGISTER_HIGH 0x05c /* gt64260: 0xc641 */
2122#define PCI_0SELECT_CAUSE 0x064 /* gt64260: 0xc741 */
2123#define PCI_1INTERRUPT_CAUSE_MASK_REGISTER_LOW 0x074 /* gt64260: 0xca41 */
2124#define PCI_1INTERRUPT_CAUSE_MASK_REGISTER_HIGH 0x07c /* gt64260: 0xce41 */
2125#define PCI_1SELECT_CAUSE 0x084 /* gt64260: 0xcf41 */
2126/*#define CPU_INT_0_MASK 0xe60 signal is not multiplexed on MPP in the MV64360 and MV64460 */
2127/*#define CPU_INT_1_MASK 0xe64 signal is not multiplexed on MPP in the MV64360 and MV64460 */
2128/*#define CPU_INT_2_MASK 0xe68 signal is not multiplexed on MPP in the MV64360 and MV64460 */
2129/*#define CPU_INT_3_MASK 0xe6c signal is not multiplexed on MPP in the MV64360 and MV64460 */
2130
2131#define MAIN_INTERRUPT_CAUSE_LOW LOW_INTERRUPT_CAUSE_REGISTER /* 0x0041 */
2132#define MAIN_INTERRUPT_CAUSE_HIGH HIGH_INTERRUPT_CAUSE_REGISTER /* 0x00c1 */
2133#define CPU_INTERRUPT0_MASK_LOW CPU_INTERRUPT_MASK_REGISTER_LOW /* 0x0141 */
2134#define CPU_INTERRUPT0_MASK_HIGH CPU_INTERRUPT_MASK_REGISTER_HIGH /*0x01c1 */
2135#define CPU_INTERRUPT0_SELECT_CAUSE CPU_SELECT_CAUSE_REGISTER /* 0x0241 */
2136#define CPU_INTERRUPT1_MASK_LOW CPU_INTERRUPT_1_MASK_REGISTER_LOW /* 0x0341 */
2137#define CPU_INTERRUPT1_MASK_HIGH CPU_INTERRUPT_1_MASK_REGISTER_HIGH /* 0x03c1 */
2138#define CPU_INTERRUPT1_SELECT_CAUSE CPU_SELECT_1_CAUSE_REGISTER /* 0x0441 */
2139#define INTERRUPT0_MASK_0_LOW PCI_0INTERRUPT_CAUSE_MASK_REGISTER_LOW /* 0x0541 */
2140#define INTERRUPT0_MASK_0_HIGH PCI_0INTERRUPT_CAUSE_MASK_REGISTER_HIGH /* 0x05c1 */
2141#define INTERRUPT0_SELECT_CAUSE PCI_0SELECT_CAUSE /* 0x0641 */
2142#define INTERRUPT1_MASK_0_LOW PCI_1INTERRUPT_CAUSE_MASK_REGISTER_LOW /* 0x0741 */
2143#define INTERRUPT1_MASK_0_HIGH PCI_1INTERRUPT_CAUSE_MASK_REGISTER_HIGH /* 0x07c1 */
2144#define INTERRUPT1_SELECT_CAUSE PCI_1SELECT_CAUSE /* 0x0841 */
2145
2146/****************************************/
2147/* I2C Registers */
2148/****************************************/
2149
2150#define I2C_SLAVE_ADDRESS 0xc000
2151#define I2C_EXTENDED_SLAVE_ADDRESS 0xc040
2152#define I2C_DATA 0xc004
2153#define I2C_CONTROL 0xc008
2154#define I2C_STATUS_BAUDE_RATE 0xc00C
2155#define I2C_SOFT_RESET 0xc01c
2156#define I2C_SLAVE_ADDR I2C_SLAVE_ADDRESS /* 0xc0001 */
2157#define I2C_EXTENDED_SLAVE_ADDR I2C_EXTENDED_SLAVE_ADDRESS /*0xc0101 */
2158
2159/****************************************/
2160/* MPSC Registers */
2161/****************************************/
2162
2163 /* MPSCs Clocks Routing Registers */
2164
2165#define MPSC_ROUTING_REG 0xb400
2166#define MPSC_RX_CLOCK_ROUTING_REG 0xb404
2167#define MPSC_TX_CLOCK_ROUTING_REG 0xb408
2168
2169 /* MPSCs Interrupts Registers */
2170
2171#define MPSC_CAUSE_REG(port) (0xb804 + (port<<3))
2172#define MPSC_MASK_REG(port) (0xb884 + (port<<3))
2173
2174#define MPSC_MAIN_CONFIG_LOW(port) (0x8000 + (port<<12))
2175#define MPSC_MAIN_CONFIG_HIGH(port) (0x8004 + (port<<12))
2176#define MPSC_PROTOCOL_CONFIG(port) (0x8008 + (port<<12))
2177#define MPSC_CHANNEL_REG1(port) (0x800c + (port<<12))
2178#define MPSC_CHANNEL_REG2(port) (0x8010 + (port<<12))
2179#define MPSC_CHANNEL_REG3(port) (0x8014 + (port<<12))
2180#define MPSC_CHANNEL_REG4(port) (0x8018 + (port<<12))
2181#define MPSC_CHANNEL_REG5(port) (0x801c + (port<<12))
2182#define MPSC_CHANNEL_REG6(port) (0x8020 + (port<<12))
2183#define MPSC_CHANNEL_REG7(port) (0x8024 + (port<<12))
2184#define MPSC_CHANNEL_REG8(port) (0x8028 + (port<<12))
2185#define MPSC_CHANNEL_REG9(port) (0x802c + (port<<12))
2186#define MPSC_CHANNEL_REG10(port) (0x8030 + (port<<12))
2187
2188
2189/* MPSC0 */
2190
2191#define MPSC0_MAIN_CONFIGURATION_LOW 0x8000
2192#define MPSC0_MAIN_CONFIGURATION_HIGH 0x8004
2193#define MPSC0_PROTOCOL_CONFIGURATION 0x8008
2194#define CHANNEL0_REGISTER1 0x800c
2195#define CHANNEL0_REGISTER2 0x8010
2196#define CHANNEL0_REGISTER3 0x8014
2197#define CHANNEL0_REGISTER4 0x8018
2198#define CHANNEL0_REGISTER5 0x801c
2199#define CHANNEL0_REGISTER6 0x8020
2200#define CHANNEL0_REGISTER7 0x8024
2201#define CHANNEL0_REGISTER8 0x8028
2202#define CHANNEL0_REGISTER9 0x802c
2203#define CHANNEL0_REGISTER10 0x8030
2204#define CHANNEL0_REGISTER11 0x8034
2205
2206/* MPSC1 */
2207
2208#define MPSC1_MAIN_CONFIGURATION_LOW 0x8840
2209#define MPSC1_MAIN_CONFIGURATION_HIGH 0x8844
2210#define MPSC1_PROTOCOL_CONFIGURATION 0x8848
2211#define CHANNEL1_REGISTER1 0x884c
2212#define CHANNEL1_REGISTER2 0x8850
2213#define CHANNEL1_REGISTER3 0x8854
2214#define CHANNEL1_REGISTER4 0x8858
2215#define CHANNEL1_REGISTER5 0x885c
2216#define CHANNEL1_REGISTER6 0x8860
2217#define CHANNEL1_REGISTER7 0x8864
2218#define CHANNEL1_REGISTER8 0x8868
2219#define CHANNEL1_REGISTER9 0x886c
2220#define CHANNEL1_REGISTER10 0x8870
2221#define CHANNEL1_REGISTER11 0x8874
2222
2223/* MPSC2 */
2224
2225#define MPSC2_MAIN_CONFIGURATION_LOW 0x9040
2226#define MPSC2_MAIN_CONFIGURATION_HIGH 0x9044
2227#define MPSC2_PROTOCOL_CONFIGURATION 0x9048
2228#define CHANNEL2_REGISTER1 0x904c
2229#define CHANNEL2_REGISTER2 0x9050
2230#define CHANNEL2_REGISTER3 0x9054
2231#define CHANNEL2_REGISTER4 0x9058
2232#define CHANNEL2_REGISTER5 0x905c
2233#define CHANNEL2_REGISTER6 0x9060
2234#define CHANNEL2_REGISTER7 0x9064
2235#define CHANNEL2_REGISTER8 0x9068
2236#define CHANNEL2_REGISTER9 0x906c
2237#define CHANNEL2_REGISTER10 0x9070
2238#define CHANNEL2_REGISTER11 0x9074
2239
2240/* MPSCs Interupts */
2241
2242#define MPSC0_CAUSE 0xb824
2243#define MPSC0_MASK 0xb8a4
2244#define MPSC1_CAUSE 0xb828
2245#define MPSC1_MASK 0xb8a8
2246#define MPSC2_CAUSE 0xb82c
2247#define MPSC2_MASK 0xb8ac
2248
2249/*******************************************/
2250/* CUNIT Registers */
2251/*******************************************/
2252
2253 /* Address Decoding Register Map */
2254
2255#define CUNIT_BASE_ADDR_REG0 0xf200
2256#define CUNIT_BASE_ADDR_REG1 0xf208
2257#define CUNIT_BASE_ADDR_REG2 0xf210
2258#define CUNIT_BASE_ADDR_REG3 0xf218
2259#define CUNIT_SIZE0 0xf204
2260#define CUNIT_SIZE1 0xf20c
2261#define CUNIT_SIZE2 0xf214
2262#define CUNIT_SIZE3 0xf21c
2263#define CUNIT_HIGH_ADDR_REMAP_REG0 0xf240
2264#define CUNIT_HIGH_ADDR_REMAP_REG1 0xf244
2265#define CUNIT_BASE_ADDR_ENABLE_REG 0xf250
2266#define MPSC0_ACCESS_PROTECTION_REG 0xf254
2267#define MPSC1_ACCESS_PROTECTION_REG 0xf258
2268#define CUNIT_INTERNAL_SPACE_BASE_ADDR_REG 0xf25C
2269
2270 /* Error Report Registers */
2271
2272#define CUNIT_INTERRUPT_CAUSE_REG 0xf310
2273#define CUNIT_INTERRUPT_MASK_REG 0xf314
2274#define CUNIT_ERROR_ADDR 0xf318
2275
2276 /* Cunit Control Registers */
2277
2278#define CUNIT_ARBITER_CONTROL_REG 0xf300
2279#define CUNIT_CONFIG_REG 0xb40c
2280#define CUNIT_CRROSBAR_TIMEOUT_REG 0xf304
2281
2282 /* Cunit Debug Registers */
2283
2284#define CUNIT_DEBUG_LOW 0xf340
2285#define CUNIT_DEBUG_HIGH 0xf344
2286#define CUNIT_MMASK 0xf380
2287
2288#endif /* __INCmv_gen_regh */