xref: /OK3568_Linux_fs/u-boot/arch/powerpc/include/asm/immap_83xx.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun /*
2*4882a593Smuzhiyun  * Copyright 2004-2011 Freescale Semiconductor, Inc.
3*4882a593Smuzhiyun  *
4*4882a593Smuzhiyun  * MPC83xx Internal Memory Map
5*4882a593Smuzhiyun  *
6*4882a593Smuzhiyun  * Contributors:
7*4882a593Smuzhiyun  *	Dave Liu <daveliu@freescale.com>
8*4882a593Smuzhiyun  *	Tanya Jiang <tanya.jiang@freescale.com>
9*4882a593Smuzhiyun  *	Mandy Lavi <mandy.lavi@freescale.com>
10*4882a593Smuzhiyun  *	Eran Liberty <liberty@freescale.com>
11*4882a593Smuzhiyun  *
12*4882a593Smuzhiyun  * SPDX-License-Identifier:	GPL-2.0+
13*4882a593Smuzhiyun  */
14*4882a593Smuzhiyun #ifndef __IMMAP_83xx__
15*4882a593Smuzhiyun #define __IMMAP_83xx__
16*4882a593Smuzhiyun 
17*4882a593Smuzhiyun #include <fsl_immap.h>
18*4882a593Smuzhiyun #include <asm/types.h>
19*4882a593Smuzhiyun #include <asm/fsl_i2c.h>
20*4882a593Smuzhiyun #include <asm/mpc8xxx_spi.h>
21*4882a593Smuzhiyun #include <asm/fsl_lbc.h>
22*4882a593Smuzhiyun #include <asm/fsl_dma.h>
23*4882a593Smuzhiyun 
24*4882a593Smuzhiyun /*
25*4882a593Smuzhiyun  * Local Access Window
26*4882a593Smuzhiyun  */
27*4882a593Smuzhiyun typedef struct law83xx {
28*4882a593Smuzhiyun 	u32 bar;		/* LBIU local access window base address register */
29*4882a593Smuzhiyun 	u32 ar;			/* LBIU local access window attribute register */
30*4882a593Smuzhiyun } law83xx_t;
31*4882a593Smuzhiyun 
32*4882a593Smuzhiyun /*
33*4882a593Smuzhiyun  * System configuration registers
34*4882a593Smuzhiyun  */
35*4882a593Smuzhiyun typedef struct sysconf83xx {
36*4882a593Smuzhiyun 	u32 immrbar;		/* Internal memory map base address register */
37*4882a593Smuzhiyun 	u8 res0[0x04];
38*4882a593Smuzhiyun 	u32 altcbar;		/* Alternate configuration base address register */
39*4882a593Smuzhiyun 	u8 res1[0x14];
40*4882a593Smuzhiyun 	law83xx_t lblaw[4];	/* LBIU local access window */
41*4882a593Smuzhiyun 	u8 res2[0x20];
42*4882a593Smuzhiyun 	law83xx_t pcilaw[2];	/* PCI local access window */
43*4882a593Smuzhiyun 	u8 res3[0x10];
44*4882a593Smuzhiyun 	law83xx_t pcielaw[2];	/* PCI Express local access window */
45*4882a593Smuzhiyun 	u8 res4[0x10];
46*4882a593Smuzhiyun 	law83xx_t ddrlaw[2];	/* DDR local access window */
47*4882a593Smuzhiyun 	u8 res5[0x50];
48*4882a593Smuzhiyun 	u32 sgprl;		/* System General Purpose Register Low */
49*4882a593Smuzhiyun 	u32 sgprh;		/* System General Purpose Register High */
50*4882a593Smuzhiyun 	u32 spridr;		/* System Part and Revision ID Register */
51*4882a593Smuzhiyun 	u8 res6[0x04];
52*4882a593Smuzhiyun 	u32 spcr;		/* System Priority Configuration Register */
53*4882a593Smuzhiyun 	u32 sicrl;		/* System I/O Configuration Register Low */
54*4882a593Smuzhiyun 	u32 sicrh;		/* System I/O Configuration Register High */
55*4882a593Smuzhiyun 	u8 res7[0x04];
56*4882a593Smuzhiyun 	u32 sidcr0;		/* System I/O Delay Configuration Register 0 */
57*4882a593Smuzhiyun 	u32 sidcr1;		/* System I/O Delay Configuration Register 1 */
58*4882a593Smuzhiyun 	u32 ddrcdr;		/* DDR Control Driver Register */
59*4882a593Smuzhiyun 	u32 ddrdsr;		/* DDR Debug Status Register */
60*4882a593Smuzhiyun 	u32 obir;		/* Output Buffer Impedance Register */
61*4882a593Smuzhiyun 	u8 res8[0xC];
62*4882a593Smuzhiyun 	u32 pecr1;		/* PCI Express control register 1 */
63*4882a593Smuzhiyun #if defined(CONFIG_MPC830x)
64*4882a593Smuzhiyun 	u32 sdhccr;		/* eSDHC Control Registers for MPC830x */
65*4882a593Smuzhiyun #else
66*4882a593Smuzhiyun 	u32 pecr2;		/* PCI Express control register 2 */
67*4882a593Smuzhiyun #endif
68*4882a593Smuzhiyun #if defined(CONFIG_MPC8309)
69*4882a593Smuzhiyun 	u32 can_dbg_ctrl;
70*4882a593Smuzhiyun 	u32 res9a;
71*4882a593Smuzhiyun 	u32 gpr1;
72*4882a593Smuzhiyun 	u8 res9b[0xAC];
73*4882a593Smuzhiyun #else
74*4882a593Smuzhiyun 	u8 res9[0xB8];
75*4882a593Smuzhiyun #endif
76*4882a593Smuzhiyun } sysconf83xx_t;
77*4882a593Smuzhiyun 
78*4882a593Smuzhiyun /*
79*4882a593Smuzhiyun  * Watch Dog Timer (WDT) Registers
80*4882a593Smuzhiyun  */
81*4882a593Smuzhiyun typedef struct wdt83xx {
82*4882a593Smuzhiyun 	u8 res0[4];
83*4882a593Smuzhiyun 	u32 swcrr;		/* System watchdog control register */
84*4882a593Smuzhiyun 	u32 swcnr;		/* System watchdog count register */
85*4882a593Smuzhiyun 	u8 res1[2];
86*4882a593Smuzhiyun 	u16 swsrr;		/* System watchdog service register */
87*4882a593Smuzhiyun 	u8 res2[0xF0];
88*4882a593Smuzhiyun } wdt83xx_t;
89*4882a593Smuzhiyun 
90*4882a593Smuzhiyun /*
91*4882a593Smuzhiyun  * RTC/PIT Module Registers
92*4882a593Smuzhiyun  */
93*4882a593Smuzhiyun typedef struct rtclk83xx {
94*4882a593Smuzhiyun 	u32 cnr;		/* control register */
95*4882a593Smuzhiyun 	u32 ldr;		/* load register */
96*4882a593Smuzhiyun 	u32 psr;		/* prescale register */
97*4882a593Smuzhiyun 	u32 ctr;		/* counter value field register */
98*4882a593Smuzhiyun 	u32 evr;		/* event register */
99*4882a593Smuzhiyun 	u32 alr;		/* alarm register */
100*4882a593Smuzhiyun 	u8 res0[0xE8];
101*4882a593Smuzhiyun } rtclk83xx_t;
102*4882a593Smuzhiyun 
103*4882a593Smuzhiyun /*
104*4882a593Smuzhiyun  * Global timer module
105*4882a593Smuzhiyun  */
106*4882a593Smuzhiyun typedef struct gtm83xx {
107*4882a593Smuzhiyun 	u8 cfr1;		/* Timer1/2 Configuration */
108*4882a593Smuzhiyun 	u8 res0[3];
109*4882a593Smuzhiyun 	u8 cfr2;		/* Timer3/4 Configuration */
110*4882a593Smuzhiyun 	u8 res1[11];
111*4882a593Smuzhiyun 	u16 mdr1;		/* Timer1 Mode Register */
112*4882a593Smuzhiyun 	u16 mdr2;		/* Timer2 Mode Register */
113*4882a593Smuzhiyun 	u16 rfr1;		/* Timer1 Reference Register */
114*4882a593Smuzhiyun 	u16 rfr2;		/* Timer2 Reference Register */
115*4882a593Smuzhiyun 	u16 cpr1;		/* Timer1 Capture Register */
116*4882a593Smuzhiyun 	u16 cpr2;		/* Timer2 Capture Register */
117*4882a593Smuzhiyun 	u16 cnr1;		/* Timer1 Counter Register */
118*4882a593Smuzhiyun 	u16 cnr2;		/* Timer2 Counter Register */
119*4882a593Smuzhiyun 	u16 mdr3;		/* Timer3 Mode Register */
120*4882a593Smuzhiyun 	u16 mdr4;		/* Timer4 Mode Register */
121*4882a593Smuzhiyun 	u16 rfr3;		/* Timer3 Reference Register */
122*4882a593Smuzhiyun 	u16 rfr4;		/* Timer4 Reference Register */
123*4882a593Smuzhiyun 	u16 cpr3;		/* Timer3 Capture Register */
124*4882a593Smuzhiyun 	u16 cpr4;		/* Timer4 Capture Register */
125*4882a593Smuzhiyun 	u16 cnr3;		/* Timer3 Counter Register */
126*4882a593Smuzhiyun 	u16 cnr4;		/* Timer4 Counter Register */
127*4882a593Smuzhiyun 	u16 evr1;		/* Timer1 Event Register */
128*4882a593Smuzhiyun 	u16 evr2;		/* Timer2 Event Register */
129*4882a593Smuzhiyun 	u16 evr3;		/* Timer3 Event Register */
130*4882a593Smuzhiyun 	u16 evr4;		/* Timer4 Event Register */
131*4882a593Smuzhiyun 	u16 psr1;		/* Timer1 Prescaler Register */
132*4882a593Smuzhiyun 	u16 psr2;		/* Timer2 Prescaler Register */
133*4882a593Smuzhiyun 	u16 psr3;		/* Timer3 Prescaler Register */
134*4882a593Smuzhiyun 	u16 psr4;		/* Timer4 Prescaler Register */
135*4882a593Smuzhiyun 	u8 res[0xC0];
136*4882a593Smuzhiyun } gtm83xx_t;
137*4882a593Smuzhiyun 
138*4882a593Smuzhiyun /*
139*4882a593Smuzhiyun  * Integrated Programmable Interrupt Controller
140*4882a593Smuzhiyun  */
141*4882a593Smuzhiyun typedef struct ipic83xx {
142*4882a593Smuzhiyun 	u32 sicfr;		/* System Global Interrupt Configuration Register */
143*4882a593Smuzhiyun 	u32 sivcr;		/* System Global Interrupt Vector Register */
144*4882a593Smuzhiyun 	u32 sipnr_h;		/* System Internal Interrupt Pending Register - High */
145*4882a593Smuzhiyun 	u32 sipnr_l;		/* System Internal Interrupt Pending Register - Low */
146*4882a593Smuzhiyun 	u32 siprr_a;		/* System Internal Interrupt Group A Priority Register */
147*4882a593Smuzhiyun 	u32 siprr_b;		/* System Internal Interrupt Group B Priority Register */
148*4882a593Smuzhiyun 	u32 siprr_c;		/* System Internal Interrupt Group C Priority Register */
149*4882a593Smuzhiyun 	u32 siprr_d;		/* System Internal Interrupt Group D Priority Register */
150*4882a593Smuzhiyun 	u32 simsr_h;		/* System Internal Interrupt Mask Register - High */
151*4882a593Smuzhiyun 	u32 simsr_l;		/* System Internal Interrupt Mask Register - Low */
152*4882a593Smuzhiyun 	u32 sicnr;		/* System Internal Interrupt Control Register */
153*4882a593Smuzhiyun 	u32 sepnr;		/* System External Interrupt Pending Register */
154*4882a593Smuzhiyun 	u32 smprr_a;		/* System Mixed Interrupt Group A Priority Register */
155*4882a593Smuzhiyun 	u32 smprr_b;		/* System Mixed Interrupt Group B Priority Register */
156*4882a593Smuzhiyun 	u32 semsr;		/* System External Interrupt Mask Register */
157*4882a593Smuzhiyun 	u32 secnr;		/* System External Interrupt Control Register */
158*4882a593Smuzhiyun 	u32 sersr;		/* System Error Status Register */
159*4882a593Smuzhiyun 	u32 sermr;		/* System Error Mask Register */
160*4882a593Smuzhiyun 	u32 sercr;		/* System Error Control Register */
161*4882a593Smuzhiyun 	u32 sepcr;		/* System External Interrupt Polarity Control Register */
162*4882a593Smuzhiyun 	u32 sifcr_h;		/* System Internal Interrupt Force Register - High */
163*4882a593Smuzhiyun 	u32 sifcr_l;		/* System Internal Interrupt Force Register - Low */
164*4882a593Smuzhiyun 	u32 sefcr;		/* System External Interrupt Force Register */
165*4882a593Smuzhiyun 	u32 serfr;		/* System Error Force Register */
166*4882a593Smuzhiyun 	u32 scvcr;		/* System Critical Interrupt Vector Register */
167*4882a593Smuzhiyun 	u32 smvcr;		/* System Management Interrupt Vector Register */
168*4882a593Smuzhiyun 	u8 res[0x98];
169*4882a593Smuzhiyun } ipic83xx_t;
170*4882a593Smuzhiyun 
171*4882a593Smuzhiyun /*
172*4882a593Smuzhiyun  * System Arbiter Registers
173*4882a593Smuzhiyun  */
174*4882a593Smuzhiyun typedef struct arbiter83xx {
175*4882a593Smuzhiyun 	u32 acr;		/* Arbiter Configuration Register */
176*4882a593Smuzhiyun 	u32 atr;		/* Arbiter Timers Register */
177*4882a593Smuzhiyun 	u8 res[4];
178*4882a593Smuzhiyun 	u32 aer;		/* Arbiter Event Register */
179*4882a593Smuzhiyun 	u32 aidr;		/* Arbiter Interrupt Definition Register */
180*4882a593Smuzhiyun 	u32 amr;		/* Arbiter Mask Register */
181*4882a593Smuzhiyun 	u32 aeatr;		/* Arbiter Event Attributes Register */
182*4882a593Smuzhiyun 	u32 aeadr;		/* Arbiter Event Address Register */
183*4882a593Smuzhiyun 	u32 aerr;		/* Arbiter Event Response Register */
184*4882a593Smuzhiyun 	u8 res1[0xDC];
185*4882a593Smuzhiyun } arbiter83xx_t;
186*4882a593Smuzhiyun 
187*4882a593Smuzhiyun /*
188*4882a593Smuzhiyun  * Reset Module
189*4882a593Smuzhiyun  */
190*4882a593Smuzhiyun typedef struct reset83xx {
191*4882a593Smuzhiyun 	u32 rcwl;		/* Reset Configuration Word Low Register */
192*4882a593Smuzhiyun 	u32 rcwh;		/* Reset Configuration Word High Register */
193*4882a593Smuzhiyun 	u8 res0[8];
194*4882a593Smuzhiyun 	u32 rsr;		/* Reset Status Register */
195*4882a593Smuzhiyun 	u32 rmr;		/* Reset Mode Register */
196*4882a593Smuzhiyun 	u32 rpr;		/* Reset protection Register */
197*4882a593Smuzhiyun 	u32 rcr;		/* Reset Control Register */
198*4882a593Smuzhiyun 	u32 rcer;		/* Reset Control Enable Register */
199*4882a593Smuzhiyun 	u8 res1[0xDC];
200*4882a593Smuzhiyun } reset83xx_t;
201*4882a593Smuzhiyun 
202*4882a593Smuzhiyun /*
203*4882a593Smuzhiyun  * Clock Module
204*4882a593Smuzhiyun  */
205*4882a593Smuzhiyun typedef struct clk83xx {
206*4882a593Smuzhiyun 	u32 spmr;		/* system PLL mode Register */
207*4882a593Smuzhiyun 	u32 occr;		/* output clock control Register */
208*4882a593Smuzhiyun 	u32 sccr;		/* system clock control Register */
209*4882a593Smuzhiyun 	u8 res0[0xF4];
210*4882a593Smuzhiyun } clk83xx_t;
211*4882a593Smuzhiyun 
212*4882a593Smuzhiyun /*
213*4882a593Smuzhiyun  * Power Management Control Module
214*4882a593Smuzhiyun  */
215*4882a593Smuzhiyun typedef struct pmc83xx {
216*4882a593Smuzhiyun 	u32 pmccr;		/* PMC Configuration Register */
217*4882a593Smuzhiyun 	u32 pmcer;		/* PMC Event Register */
218*4882a593Smuzhiyun 	u32 pmcmr;		/* PMC Mask Register */
219*4882a593Smuzhiyun 	u32 pmccr1;		/* PMC Configuration Register 1 */
220*4882a593Smuzhiyun 	u32 pmccr2;		/* PMC Configuration Register 2 */
221*4882a593Smuzhiyun 	u8 res0[0xEC];
222*4882a593Smuzhiyun } pmc83xx_t;
223*4882a593Smuzhiyun 
224*4882a593Smuzhiyun /*
225*4882a593Smuzhiyun  * General purpose I/O module
226*4882a593Smuzhiyun  */
227*4882a593Smuzhiyun typedef struct gpio83xx {
228*4882a593Smuzhiyun 	u32 dir;		/* direction register */
229*4882a593Smuzhiyun 	u32 odr;		/* open drain register */
230*4882a593Smuzhiyun 	u32 dat;		/* data register */
231*4882a593Smuzhiyun 	u32 ier;		/* interrupt event register */
232*4882a593Smuzhiyun 	u32 imr;		/* interrupt mask register */
233*4882a593Smuzhiyun 	u32 icr;		/* external interrupt control register */
234*4882a593Smuzhiyun 	u8 res0[0xE8];
235*4882a593Smuzhiyun } gpio83xx_t;
236*4882a593Smuzhiyun 
237*4882a593Smuzhiyun /*
238*4882a593Smuzhiyun  * QE Ports Interrupts Registers
239*4882a593Smuzhiyun  */
240*4882a593Smuzhiyun typedef struct qepi83xx {
241*4882a593Smuzhiyun 	u8 res0[0xC];
242*4882a593Smuzhiyun 	u32 qepier;		/* QE Ports Interrupt Event Register */
243*4882a593Smuzhiyun 	u32 qepimr;		/* QE Ports Interrupt Mask Register */
244*4882a593Smuzhiyun 	u32 qepicr;		/* QE Ports Interrupt Control Register */
245*4882a593Smuzhiyun 	u8 res1[0xE8];
246*4882a593Smuzhiyun } qepi83xx_t;
247*4882a593Smuzhiyun 
248*4882a593Smuzhiyun /*
249*4882a593Smuzhiyun  * QE Parallel I/O Ports
250*4882a593Smuzhiyun  */
251*4882a593Smuzhiyun typedef struct gpio_n {
252*4882a593Smuzhiyun 	u32 podr;		/* Open Drain Register */
253*4882a593Smuzhiyun 	u32 pdat;		/* Data Register */
254*4882a593Smuzhiyun 	u32 dir1;		/* direction register 1 */
255*4882a593Smuzhiyun 	u32 dir2;		/* direction register 2 */
256*4882a593Smuzhiyun 	u32 ppar1;		/* Pin Assignment Register 1 */
257*4882a593Smuzhiyun 	u32 ppar2;		/* Pin Assignment Register 2 */
258*4882a593Smuzhiyun } gpio_n_t;
259*4882a593Smuzhiyun 
260*4882a593Smuzhiyun typedef struct qegpio83xx {
261*4882a593Smuzhiyun 	gpio_n_t ioport[0x7];
262*4882a593Smuzhiyun 	u8 res0[0x358];
263*4882a593Smuzhiyun } qepio83xx_t;
264*4882a593Smuzhiyun 
265*4882a593Smuzhiyun /*
266*4882a593Smuzhiyun  * QE Secondary Bus Access Windows
267*4882a593Smuzhiyun  */
268*4882a593Smuzhiyun typedef struct qesba83xx {
269*4882a593Smuzhiyun 	u32 lbmcsar;		/* Local bus memory controller start address */
270*4882a593Smuzhiyun 	u32 sdmcsar;		/* Secondary DDR memory controller start address */
271*4882a593Smuzhiyun 	u8 res0[0x38];
272*4882a593Smuzhiyun 	u32 lbmcear;		/* Local bus memory controller end address */
273*4882a593Smuzhiyun 	u32 sdmcear;		/* Secondary DDR memory controller end address */
274*4882a593Smuzhiyun 	u8 res1[0x38];
275*4882a593Smuzhiyun 	u32 lbmcar;		/* Local bus memory controller attributes */
276*4882a593Smuzhiyun 	u32 sdmcar;		/* Secondary DDR memory controller attributes */
277*4882a593Smuzhiyun 	u8 res2[0x378];
278*4882a593Smuzhiyun } qesba83xx_t;
279*4882a593Smuzhiyun 
280*4882a593Smuzhiyun /*
281*4882a593Smuzhiyun  * DDR Memory Controller Memory Map for DDR1
282*4882a593Smuzhiyun  * The structure of DDR2, or DDR3 is defined in fsl_immap.h
283*4882a593Smuzhiyun  */
284*4882a593Smuzhiyun #if !defined(CONFIG_SYS_FSL_DDR2) && !defined(CONFIG_SYS_FSL_DDR3)
285*4882a593Smuzhiyun typedef struct ddr_cs_bnds {
286*4882a593Smuzhiyun 	u32 csbnds;
287*4882a593Smuzhiyun 	u8 res0[4];
288*4882a593Smuzhiyun } ddr_cs_bnds_t;
289*4882a593Smuzhiyun 
290*4882a593Smuzhiyun typedef struct ddr83xx {
291*4882a593Smuzhiyun 	ddr_cs_bnds_t csbnds[4];/* Chip Select x Memory Bounds */
292*4882a593Smuzhiyun 	u8 res0[0x60];
293*4882a593Smuzhiyun 	u32 cs_config[4];	/* Chip Select x Configuration */
294*4882a593Smuzhiyun 	u8 res1[0x70];
295*4882a593Smuzhiyun 	u32 timing_cfg_3;	/* SDRAM Timing Configuration 3 */
296*4882a593Smuzhiyun 	u32 timing_cfg_0;	/* SDRAM Timing Configuration 0 */
297*4882a593Smuzhiyun 	u32 timing_cfg_1;	/* SDRAM Timing Configuration 1 */
298*4882a593Smuzhiyun 	u32 timing_cfg_2;	/* SDRAM Timing Configuration 2 */
299*4882a593Smuzhiyun 	u32 sdram_cfg;		/* SDRAM Control Configuration */
300*4882a593Smuzhiyun 	u32 sdram_cfg2;		/* SDRAM Control Configuration 2 */
301*4882a593Smuzhiyun 	u32 sdram_mode;		/* SDRAM Mode Configuration */
302*4882a593Smuzhiyun 	u32 sdram_mode2;	/* SDRAM Mode Configuration 2 */
303*4882a593Smuzhiyun 	u32 sdram_md_cntl;	/* SDRAM Mode Control */
304*4882a593Smuzhiyun 	u32 sdram_interval;	/* SDRAM Interval Configuration */
305*4882a593Smuzhiyun 	u32 ddr_data_init;	/* SDRAM Data Initialization */
306*4882a593Smuzhiyun 	u8 res2[4];
307*4882a593Smuzhiyun 	u32 sdram_clk_cntl;	/* SDRAM Clock Control */
308*4882a593Smuzhiyun 	u8 res3[0x14];
309*4882a593Smuzhiyun 	u32 ddr_init_addr;	/* DDR training initialization address */
310*4882a593Smuzhiyun 	u32 ddr_init_ext_addr;	/* DDR training initialization extended address */
311*4882a593Smuzhiyun 	u8 res4[0xAA8];
312*4882a593Smuzhiyun 	u32 ddr_ip_rev1;	/* DDR IP block revision 1 */
313*4882a593Smuzhiyun 	u32 ddr_ip_rev2;	/* DDR IP block revision 2 */
314*4882a593Smuzhiyun 	u8 res5[0x200];
315*4882a593Smuzhiyun 	u32 data_err_inject_hi;	/* Memory Data Path Error Injection Mask High */
316*4882a593Smuzhiyun 	u32 data_err_inject_lo;	/* Memory Data Path Error Injection Mask Low */
317*4882a593Smuzhiyun 	u32 ecc_err_inject;	/* Memory Data Path Error Injection Mask ECC */
318*4882a593Smuzhiyun 	u8 res6[0x14];
319*4882a593Smuzhiyun 	u32 capture_data_hi;	/* Memory Data Path Read Capture High */
320*4882a593Smuzhiyun 	u32 capture_data_lo;	/* Memory Data Path Read Capture Low */
321*4882a593Smuzhiyun 	u32 capture_ecc;	/* Memory Data Path Read Capture ECC */
322*4882a593Smuzhiyun 	u8 res7[0x14];
323*4882a593Smuzhiyun 	u32 err_detect;		/* Memory Error Detect */
324*4882a593Smuzhiyun 	u32 err_disable;	/* Memory Error Disable */
325*4882a593Smuzhiyun 	u32 err_int_en;		/* Memory Error Interrupt Enable */
326*4882a593Smuzhiyun 	u32 capture_attributes;	/* Memory Error Attributes Capture */
327*4882a593Smuzhiyun 	u32 capture_address;	/* Memory Error Address Capture */
328*4882a593Smuzhiyun 	u32 capture_ext_address;/* Memory Error Extended Address Capture */
329*4882a593Smuzhiyun 	u32 err_sbe;		/* Memory Single-Bit ECC Error Management */
330*4882a593Smuzhiyun 	u8 res8[0xA4];
331*4882a593Smuzhiyun 	u32 debug_reg;
332*4882a593Smuzhiyun 	u8 res9[0xFC];
333*4882a593Smuzhiyun } ddr83xx_t;
334*4882a593Smuzhiyun #endif
335*4882a593Smuzhiyun 
336*4882a593Smuzhiyun /*
337*4882a593Smuzhiyun  * DUART
338*4882a593Smuzhiyun  */
339*4882a593Smuzhiyun typedef struct duart83xx {
340*4882a593Smuzhiyun 	u8 urbr_ulcr_udlb;	/* combined register for URBR, UTHR and UDLB */
341*4882a593Smuzhiyun 	u8 uier_udmb;		/* combined register for UIER and UDMB */
342*4882a593Smuzhiyun 	u8 uiir_ufcr_uafr;	/* combined register for UIIR, UFCR and UAFR */
343*4882a593Smuzhiyun 	u8 ulcr;		/* line control register */
344*4882a593Smuzhiyun 	u8 umcr;		/* MODEM control register */
345*4882a593Smuzhiyun 	u8 ulsr;		/* line status register */
346*4882a593Smuzhiyun 	u8 umsr;		/* MODEM status register */
347*4882a593Smuzhiyun 	u8 uscr;		/* scratch register */
348*4882a593Smuzhiyun 	u8 res0[8];
349*4882a593Smuzhiyun 	u8 udsr;		/* DMA status register */
350*4882a593Smuzhiyun 	u8 res1[3];
351*4882a593Smuzhiyun 	u8 res2[0xEC];
352*4882a593Smuzhiyun } duart83xx_t;
353*4882a593Smuzhiyun 
354*4882a593Smuzhiyun /*
355*4882a593Smuzhiyun  * DMA/Messaging Unit
356*4882a593Smuzhiyun  */
357*4882a593Smuzhiyun typedef struct dma83xx {
358*4882a593Smuzhiyun 	u32 res0[0xC];		/* 0x0-0x29 reseverd */
359*4882a593Smuzhiyun 	u32 omisr;		/* 0x30 Outbound message interrupt status register */
360*4882a593Smuzhiyun 	u32 omimr;		/* 0x34 Outbound message interrupt mask register */
361*4882a593Smuzhiyun 	u32 res1[0x6];		/* 0x38-0x49 reserved */
362*4882a593Smuzhiyun 	u32 imr0;		/* 0x50 Inbound message register 0 */
363*4882a593Smuzhiyun 	u32 imr1;		/* 0x54 Inbound message register 1 */
364*4882a593Smuzhiyun 	u32 omr0;		/* 0x58 Outbound message register 0 */
365*4882a593Smuzhiyun 	u32 omr1;		/* 0x5C Outbound message register 1 */
366*4882a593Smuzhiyun 	u32 odr;		/* 0x60 Outbound doorbell register */
367*4882a593Smuzhiyun 	u32 res2;		/* 0x64-0x67 reserved */
368*4882a593Smuzhiyun 	u32 idr;		/* 0x68 Inbound doorbell register */
369*4882a593Smuzhiyun 	u32 res3[0x5];		/* 0x6C-0x79 reserved */
370*4882a593Smuzhiyun 	u32 imisr;		/* 0x80 Inbound message interrupt status register */
371*4882a593Smuzhiyun 	u32 imimr;		/* 0x84 Inbound message interrupt mask register */
372*4882a593Smuzhiyun 	u32 res4[0x1E];		/* 0x88-0x99 reserved */
373*4882a593Smuzhiyun 	struct fsl_dma dma[4];
374*4882a593Smuzhiyun } dma83xx_t;
375*4882a593Smuzhiyun 
376*4882a593Smuzhiyun /*
377*4882a593Smuzhiyun  * PCI Software Configuration Registers
378*4882a593Smuzhiyun  */
379*4882a593Smuzhiyun typedef struct pciconf83xx {
380*4882a593Smuzhiyun 	u32 config_address;
381*4882a593Smuzhiyun 	u32 config_data;
382*4882a593Smuzhiyun 	u32 int_ack;
383*4882a593Smuzhiyun 	u8 res[116];
384*4882a593Smuzhiyun } pciconf83xx_t;
385*4882a593Smuzhiyun 
386*4882a593Smuzhiyun /*
387*4882a593Smuzhiyun  * PCI Outbound Translation Register
388*4882a593Smuzhiyun  */
389*4882a593Smuzhiyun typedef struct pci_outbound_window {
390*4882a593Smuzhiyun 	u32 potar;
391*4882a593Smuzhiyun 	u8 res0[4];
392*4882a593Smuzhiyun 	u32 pobar;
393*4882a593Smuzhiyun 	u8 res1[4];
394*4882a593Smuzhiyun 	u32 pocmr;
395*4882a593Smuzhiyun 	u8 res2[4];
396*4882a593Smuzhiyun } pot83xx_t;
397*4882a593Smuzhiyun 
398*4882a593Smuzhiyun /*
399*4882a593Smuzhiyun  * Sequencer
400*4882a593Smuzhiyun  */
401*4882a593Smuzhiyun typedef struct ios83xx {
402*4882a593Smuzhiyun 	pot83xx_t pot[6];
403*4882a593Smuzhiyun 	u8 res0[0x60];
404*4882a593Smuzhiyun 	u32 pmcr;
405*4882a593Smuzhiyun 	u8 res1[4];
406*4882a593Smuzhiyun 	u32 dtcr;
407*4882a593Smuzhiyun 	u8 res2[4];
408*4882a593Smuzhiyun } ios83xx_t;
409*4882a593Smuzhiyun 
410*4882a593Smuzhiyun /*
411*4882a593Smuzhiyun  * PCI Controller Control and Status Registers
412*4882a593Smuzhiyun  */
413*4882a593Smuzhiyun typedef struct pcictrl83xx {
414*4882a593Smuzhiyun 	u32 esr;
415*4882a593Smuzhiyun 	u32 ecdr;
416*4882a593Smuzhiyun 	u32 eer;
417*4882a593Smuzhiyun 	u32 eatcr;
418*4882a593Smuzhiyun 	u32 eacr;
419*4882a593Smuzhiyun 	u32 eeacr;
420*4882a593Smuzhiyun 	u32 edlcr;
421*4882a593Smuzhiyun 	u32 edhcr;
422*4882a593Smuzhiyun 	u32 gcr;
423*4882a593Smuzhiyun 	u32 ecr;
424*4882a593Smuzhiyun 	u32 gsr;
425*4882a593Smuzhiyun 	u8 res0[12];
426*4882a593Smuzhiyun 	u32 pitar2;
427*4882a593Smuzhiyun 	u8 res1[4];
428*4882a593Smuzhiyun 	u32 pibar2;
429*4882a593Smuzhiyun 	u32 piebar2;
430*4882a593Smuzhiyun 	u32 piwar2;
431*4882a593Smuzhiyun 	u8 res2[4];
432*4882a593Smuzhiyun 	u32 pitar1;
433*4882a593Smuzhiyun 	u8 res3[4];
434*4882a593Smuzhiyun 	u32 pibar1;
435*4882a593Smuzhiyun 	u32 piebar1;
436*4882a593Smuzhiyun 	u32 piwar1;
437*4882a593Smuzhiyun 	u8 res4[4];
438*4882a593Smuzhiyun 	u32 pitar0;
439*4882a593Smuzhiyun 	u8 res5[4];
440*4882a593Smuzhiyun 	u32 pibar0;
441*4882a593Smuzhiyun 	u8 res6[4];
442*4882a593Smuzhiyun 	u32 piwar0;
443*4882a593Smuzhiyun 	u8 res7[132];
444*4882a593Smuzhiyun } pcictrl83xx_t;
445*4882a593Smuzhiyun 
446*4882a593Smuzhiyun /*
447*4882a593Smuzhiyun  * USB
448*4882a593Smuzhiyun  */
449*4882a593Smuzhiyun typedef struct usb83xx {
450*4882a593Smuzhiyun 	u8 fixme[0x1000];
451*4882a593Smuzhiyun } usb83xx_t;
452*4882a593Smuzhiyun 
453*4882a593Smuzhiyun /*
454*4882a593Smuzhiyun  * TSEC
455*4882a593Smuzhiyun  */
456*4882a593Smuzhiyun typedef struct tsec83xx {
457*4882a593Smuzhiyun 	u8 fixme[0x1000];
458*4882a593Smuzhiyun } tsec83xx_t;
459*4882a593Smuzhiyun 
460*4882a593Smuzhiyun /*
461*4882a593Smuzhiyun  * Security
462*4882a593Smuzhiyun  */
463*4882a593Smuzhiyun typedef struct security83xx {
464*4882a593Smuzhiyun 	u8 fixme[0x10000];
465*4882a593Smuzhiyun } security83xx_t;
466*4882a593Smuzhiyun 
467*4882a593Smuzhiyun /*
468*4882a593Smuzhiyun  *  PCI Express
469*4882a593Smuzhiyun  */
470*4882a593Smuzhiyun struct pex_inbound_window {
471*4882a593Smuzhiyun 	u32 ar;
472*4882a593Smuzhiyun 	u32 tar;
473*4882a593Smuzhiyun 	u32 barl;
474*4882a593Smuzhiyun 	u32 barh;
475*4882a593Smuzhiyun };
476*4882a593Smuzhiyun 
477*4882a593Smuzhiyun struct pex_outbound_window {
478*4882a593Smuzhiyun 	u32 ar;
479*4882a593Smuzhiyun 	u32 bar;
480*4882a593Smuzhiyun 	u32 tarl;
481*4882a593Smuzhiyun 	u32 tarh;
482*4882a593Smuzhiyun };
483*4882a593Smuzhiyun 
484*4882a593Smuzhiyun struct pex_csb_bridge {
485*4882a593Smuzhiyun 	u32 pex_csb_ver;
486*4882a593Smuzhiyun 	u32 pex_csb_cab;
487*4882a593Smuzhiyun 	u32 pex_csb_ctrl;
488*4882a593Smuzhiyun 	u8 res0[8];
489*4882a593Smuzhiyun 	u32 pex_dms_dstmr;
490*4882a593Smuzhiyun 	u8 res1[4];
491*4882a593Smuzhiyun 	u32 pex_cbs_stat;
492*4882a593Smuzhiyun 	u8 res2[0x20];
493*4882a593Smuzhiyun 	u32 pex_csb_obctrl;
494*4882a593Smuzhiyun 	u32 pex_csb_obstat;
495*4882a593Smuzhiyun 	u8 res3[0x98];
496*4882a593Smuzhiyun 	u32 pex_csb_ibctrl;
497*4882a593Smuzhiyun 	u32 pex_csb_ibstat;
498*4882a593Smuzhiyun 	u8 res4[0xb8];
499*4882a593Smuzhiyun 	u32 pex_wdma_ctrl;
500*4882a593Smuzhiyun 	u32 pex_wdma_addr;
501*4882a593Smuzhiyun 	u32 pex_wdma_stat;
502*4882a593Smuzhiyun 	u8 res5[0x94];
503*4882a593Smuzhiyun 	u32 pex_rdma_ctrl;
504*4882a593Smuzhiyun 	u32 pex_rdma_addr;
505*4882a593Smuzhiyun 	u32 pex_rdma_stat;
506*4882a593Smuzhiyun 	u8 res6[0xd4];
507*4882a593Smuzhiyun 	u32 pex_ombcr;
508*4882a593Smuzhiyun 	u32 pex_ombdr;
509*4882a593Smuzhiyun 	u8 res7[0x38];
510*4882a593Smuzhiyun 	u32 pex_imbcr;
511*4882a593Smuzhiyun 	u32 pex_imbdr;
512*4882a593Smuzhiyun 	u8 res8[0x38];
513*4882a593Smuzhiyun 	u32 pex_int_enb;
514*4882a593Smuzhiyun 	u32 pex_int_stat;
515*4882a593Smuzhiyun 	u32 pex_int_apio_vec1;
516*4882a593Smuzhiyun 	u32 pex_int_apio_vec2;
517*4882a593Smuzhiyun 	u8 res9[0x10];
518*4882a593Smuzhiyun 	u32 pex_int_ppio_vec1;
519*4882a593Smuzhiyun 	u32 pex_int_ppio_vec2;
520*4882a593Smuzhiyun 	u32 pex_int_wdma_vec1;
521*4882a593Smuzhiyun 	u32 pex_int_wdma_vec2;
522*4882a593Smuzhiyun 	u32 pex_int_rdma_vec1;
523*4882a593Smuzhiyun 	u32 pex_int_rdma_vec2;
524*4882a593Smuzhiyun 	u32 pex_int_misc_vec;
525*4882a593Smuzhiyun 	u8 res10[4];
526*4882a593Smuzhiyun 	u32 pex_int_axi_pio_enb;
527*4882a593Smuzhiyun 	u32 pex_int_axi_wdma_enb;
528*4882a593Smuzhiyun 	u32 pex_int_axi_rdma_enb;
529*4882a593Smuzhiyun 	u32 pex_int_axi_misc_enb;
530*4882a593Smuzhiyun 	u32 pex_int_axi_pio_stat;
531*4882a593Smuzhiyun 	u32 pex_int_axi_wdma_stat;
532*4882a593Smuzhiyun 	u32 pex_int_axi_rdma_stat;
533*4882a593Smuzhiyun 	u32 pex_int_axi_misc_stat;
534*4882a593Smuzhiyun 	u8 res11[0xa0];
535*4882a593Smuzhiyun 	struct pex_outbound_window pex_outbound_win[4];
536*4882a593Smuzhiyun 	u8 res12[0x100];
537*4882a593Smuzhiyun 	u32 pex_epiwtar0;
538*4882a593Smuzhiyun 	u32 pex_epiwtar1;
539*4882a593Smuzhiyun 	u32 pex_epiwtar2;
540*4882a593Smuzhiyun 	u32 pex_epiwtar3;
541*4882a593Smuzhiyun 	u8 res13[0x70];
542*4882a593Smuzhiyun 	struct pex_inbound_window pex_inbound_win[4];
543*4882a593Smuzhiyun };
544*4882a593Smuzhiyun 
545*4882a593Smuzhiyun typedef struct pex83xx {
546*4882a593Smuzhiyun 	u8 pex_cfg_header[0x404];
547*4882a593Smuzhiyun 	u32 pex_ltssm_stat;
548*4882a593Smuzhiyun 	u8 res0[0x30];
549*4882a593Smuzhiyun 	u32 pex_ack_replay_timeout;
550*4882a593Smuzhiyun 	u8 res1[4];
551*4882a593Smuzhiyun 	u32 pex_gclk_ratio;
552*4882a593Smuzhiyun 	u8 res2[0xc];
553*4882a593Smuzhiyun 	u32 pex_pm_timer;
554*4882a593Smuzhiyun 	u32 pex_pme_timeout;
555*4882a593Smuzhiyun 	u8 res3[4];
556*4882a593Smuzhiyun 	u32 pex_aspm_req_timer;
557*4882a593Smuzhiyun 	u8 res4[0x18];
558*4882a593Smuzhiyun 	u32 pex_ssvid_update;
559*4882a593Smuzhiyun 	u8 res5[0x34];
560*4882a593Smuzhiyun 	u32 pex_cfg_ready;
561*4882a593Smuzhiyun 	u8 res6[0x24];
562*4882a593Smuzhiyun 	u32 pex_bar_sizel;
563*4882a593Smuzhiyun 	u8 res7[4];
564*4882a593Smuzhiyun 	u32 pex_bar_sel;
565*4882a593Smuzhiyun 	u8 res8[0x20];
566*4882a593Smuzhiyun 	u32 pex_bar_pf;
567*4882a593Smuzhiyun 	u8 res9[0x88];
568*4882a593Smuzhiyun 	u32 pex_pme_to_ack_tor;
569*4882a593Smuzhiyun 	u8 res10[0xc];
570*4882a593Smuzhiyun 	u32 pex_ss_intr_mask;
571*4882a593Smuzhiyun 	u8 res11[0x25c];
572*4882a593Smuzhiyun 	struct pex_csb_bridge bridge;
573*4882a593Smuzhiyun 	u8 res12[0x160];
574*4882a593Smuzhiyun } pex83xx_t;
575*4882a593Smuzhiyun 
576*4882a593Smuzhiyun /*
577*4882a593Smuzhiyun  * SATA
578*4882a593Smuzhiyun  */
579*4882a593Smuzhiyun typedef struct sata83xx {
580*4882a593Smuzhiyun 	u8 fixme[0x1000];
581*4882a593Smuzhiyun } sata83xx_t;
582*4882a593Smuzhiyun 
583*4882a593Smuzhiyun /*
584*4882a593Smuzhiyun  * eSDHC
585*4882a593Smuzhiyun  */
586*4882a593Smuzhiyun typedef struct sdhc83xx {
587*4882a593Smuzhiyun 	u8 fixme[0x1000];
588*4882a593Smuzhiyun } sdhc83xx_t;
589*4882a593Smuzhiyun 
590*4882a593Smuzhiyun /*
591*4882a593Smuzhiyun  * SerDes
592*4882a593Smuzhiyun  */
593*4882a593Smuzhiyun typedef struct serdes83xx {
594*4882a593Smuzhiyun 	u32 srdscr0;
595*4882a593Smuzhiyun 	u32 srdscr1;
596*4882a593Smuzhiyun 	u32 srdscr2;
597*4882a593Smuzhiyun 	u32 srdscr3;
598*4882a593Smuzhiyun 	u32 srdscr4;
599*4882a593Smuzhiyun 	u8 res0[0xc];
600*4882a593Smuzhiyun 	u32 srdsrstctl;
601*4882a593Smuzhiyun 	u8 res1[0xdc];
602*4882a593Smuzhiyun } serdes83xx_t;
603*4882a593Smuzhiyun 
604*4882a593Smuzhiyun /*
605*4882a593Smuzhiyun  * On Chip ROM
606*4882a593Smuzhiyun  */
607*4882a593Smuzhiyun typedef struct rom83xx {
608*4882a593Smuzhiyun #if defined(CONFIG_MPC8309)
609*4882a593Smuzhiyun 	u8 mem[0x8000];
610*4882a593Smuzhiyun #else
611*4882a593Smuzhiyun 	u8 mem[0x10000];
612*4882a593Smuzhiyun #endif
613*4882a593Smuzhiyun } rom83xx_t;
614*4882a593Smuzhiyun 
615*4882a593Smuzhiyun /*
616*4882a593Smuzhiyun  * TDM
617*4882a593Smuzhiyun  */
618*4882a593Smuzhiyun typedef struct tdm83xx {
619*4882a593Smuzhiyun 	u8 fixme[0x200];
620*4882a593Smuzhiyun } tdm83xx_t;
621*4882a593Smuzhiyun 
622*4882a593Smuzhiyun /*
623*4882a593Smuzhiyun  * TDM DMAC
624*4882a593Smuzhiyun  */
625*4882a593Smuzhiyun typedef struct tdmdmac83xx {
626*4882a593Smuzhiyun 	u8 fixme[0x2000];
627*4882a593Smuzhiyun } tdmdmac83xx_t;
628*4882a593Smuzhiyun 
629*4882a593Smuzhiyun #if defined(CONFIG_MPC834x)
630*4882a593Smuzhiyun typedef struct immap {
631*4882a593Smuzhiyun 	sysconf83xx_t		sysconf;	/* System configuration */
632*4882a593Smuzhiyun 	wdt83xx_t		wdt;		/* Watch Dog Timer (WDT) Registers */
633*4882a593Smuzhiyun 	rtclk83xx_t		rtc;		/* Real Time Clock Module Registers */
634*4882a593Smuzhiyun 	rtclk83xx_t		pit;		/* Periodic Interval Timer */
635*4882a593Smuzhiyun 	gtm83xx_t		gtm[2];		/* Global Timers Module */
636*4882a593Smuzhiyun 	ipic83xx_t		ipic;		/* Integrated Programmable Interrupt Controller */
637*4882a593Smuzhiyun 	arbiter83xx_t		arbiter;	/* System Arbiter Registers */
638*4882a593Smuzhiyun 	reset83xx_t		reset;		/* Reset Module */
639*4882a593Smuzhiyun 	clk83xx_t		clk;		/* System Clock Module */
640*4882a593Smuzhiyun 	pmc83xx_t		pmc;		/* Power Management Control Module */
641*4882a593Smuzhiyun 	gpio83xx_t		gpio[2];	/* General purpose I/O module */
642*4882a593Smuzhiyun 	u8			res0[0x200];
643*4882a593Smuzhiyun 	u8			dll_ddr[0x100];
644*4882a593Smuzhiyun 	u8			dll_lbc[0x100];
645*4882a593Smuzhiyun 	u8			res1[0xE00];
646*4882a593Smuzhiyun #if defined(CONFIG_SYS_FSL_DDR2) || defined(CONFIG_SYS_FSL_DDR3)
647*4882a593Smuzhiyun 	struct ccsr_ddr		ddr;	/* DDR Memory Controller Memory */
648*4882a593Smuzhiyun #else
649*4882a593Smuzhiyun 	ddr83xx_t		ddr;	/* DDR Memory Controller Memory */
650*4882a593Smuzhiyun #endif
651*4882a593Smuzhiyun 	fsl_i2c_t		i2c[2];		/* I2C Controllers */
652*4882a593Smuzhiyun 	u8			res2[0x1300];
653*4882a593Smuzhiyun 	duart83xx_t		duart[2];	/* DUART */
654*4882a593Smuzhiyun 	u8			res3[0x900];
655*4882a593Smuzhiyun 	fsl_lbc_t		im_lbc;		/* Local Bus Controller Regs */
656*4882a593Smuzhiyun 	u8			res4[0x1000];
657*4882a593Smuzhiyun 	spi8xxx_t		spi;		/* Serial Peripheral Interface */
658*4882a593Smuzhiyun 	dma83xx_t		dma;		/* DMA */
659*4882a593Smuzhiyun 	pciconf83xx_t		pci_conf[2];	/* PCI Software Configuration Registers */
660*4882a593Smuzhiyun 	ios83xx_t		ios;		/* Sequencer */
661*4882a593Smuzhiyun 	pcictrl83xx_t		pci_ctrl[2];	/* PCI Controller Control and Status Registers */
662*4882a593Smuzhiyun 	u8			res5[0x19900];
663*4882a593Smuzhiyun 	usb83xx_t		usb[2];
664*4882a593Smuzhiyun 	tsec83xx_t		tsec[2];
665*4882a593Smuzhiyun 	u8			res6[0xA000];
666*4882a593Smuzhiyun 	security83xx_t		security;
667*4882a593Smuzhiyun 	u8			res7[0xC0000];
668*4882a593Smuzhiyun } immap_t;
669*4882a593Smuzhiyun 
670*4882a593Smuzhiyun #ifndef	CONFIG_MPC834x
671*4882a593Smuzhiyun #ifdef CONFIG_HAS_FSL_MPH_USB
672*4882a593Smuzhiyun #define CONFIG_SYS_MPC83xx_USB1_OFFSET  0x22000	/* use the MPH controller */
673*4882a593Smuzhiyun #define CONFIG_SYS_MPC83xx_USB2_OFFSET	0
674*4882a593Smuzhiyun #else
675*4882a593Smuzhiyun #define CONFIG_SYS_MPC83xx_USB1_OFFSET	0
676*4882a593Smuzhiyun #define CONFIG_SYS_MPC83xx_USB2_OFFSET  0x23000	/* use the DR controller */
677*4882a593Smuzhiyun #endif
678*4882a593Smuzhiyun #else
679*4882a593Smuzhiyun #define CONFIG_SYS_MPC83xx_USB1_OFFSET	0x22000
680*4882a593Smuzhiyun #define CONFIG_SYS_MPC83xx_USB2_OFFSET  0x23000
681*4882a593Smuzhiyun #endif
682*4882a593Smuzhiyun 
683*4882a593Smuzhiyun #elif defined(CONFIG_MPC8313)
684*4882a593Smuzhiyun typedef struct immap {
685*4882a593Smuzhiyun 	sysconf83xx_t		sysconf;	/* System configuration */
686*4882a593Smuzhiyun 	wdt83xx_t		wdt;		/* Watch Dog Timer (WDT) Registers */
687*4882a593Smuzhiyun 	rtclk83xx_t		rtc;		/* Real Time Clock Module Registers */
688*4882a593Smuzhiyun 	rtclk83xx_t		pit;		/* Periodic Interval Timer */
689*4882a593Smuzhiyun 	gtm83xx_t		gtm[2];		/* Global Timers Module */
690*4882a593Smuzhiyun 	ipic83xx_t		ipic;		/* Integrated Programmable Interrupt Controller */
691*4882a593Smuzhiyun 	arbiter83xx_t		arbiter;	/* System Arbiter Registers */
692*4882a593Smuzhiyun 	reset83xx_t		reset;		/* Reset Module */
693*4882a593Smuzhiyun 	clk83xx_t		clk;		/* System Clock Module */
694*4882a593Smuzhiyun 	pmc83xx_t		pmc;		/* Power Management Control Module */
695*4882a593Smuzhiyun 	gpio83xx_t		gpio[1];	/* General purpose I/O module */
696*4882a593Smuzhiyun 	u8			res0[0x1300];
697*4882a593Smuzhiyun 	ddr83xx_t		ddr;		/* DDR Memory Controller Memory */
698*4882a593Smuzhiyun 	fsl_i2c_t		i2c[2];		/* I2C Controllers */
699*4882a593Smuzhiyun 	u8			res1[0x1300];
700*4882a593Smuzhiyun 	duart83xx_t		duart[2];	/* DUART */
701*4882a593Smuzhiyun 	u8			res2[0x900];
702*4882a593Smuzhiyun 	fsl_lbc_t		im_lbc;		/* Local Bus Controller Regs */
703*4882a593Smuzhiyun 	u8			res3[0x1000];
704*4882a593Smuzhiyun 	spi8xxx_t		spi;		/* Serial Peripheral Interface */
705*4882a593Smuzhiyun 	dma83xx_t		dma;		/* DMA */
706*4882a593Smuzhiyun 	pciconf83xx_t		pci_conf[1];	/* PCI Software Configuration Registers */
707*4882a593Smuzhiyun 	u8			res4[0x80];
708*4882a593Smuzhiyun 	ios83xx_t		ios;		/* Sequencer */
709*4882a593Smuzhiyun 	pcictrl83xx_t		pci_ctrl[1];	/* PCI Controller Control and Status Registers */
710*4882a593Smuzhiyun 	u8			res5[0x1aa00];
711*4882a593Smuzhiyun 	usb83xx_t		usb[1];
712*4882a593Smuzhiyun 	tsec83xx_t		tsec[2];
713*4882a593Smuzhiyun 	u8			res6[0xA000];
714*4882a593Smuzhiyun 	security83xx_t		security;
715*4882a593Smuzhiyun 	u8			res7[0xC0000];
716*4882a593Smuzhiyun } immap_t;
717*4882a593Smuzhiyun 
718*4882a593Smuzhiyun #elif defined(CONFIG_MPC8308) || defined(CONFIG_MPC8315)
719*4882a593Smuzhiyun typedef struct immap {
720*4882a593Smuzhiyun 	sysconf83xx_t		sysconf;	/* System configuration */
721*4882a593Smuzhiyun 	wdt83xx_t		wdt;		/* Watch Dog Timer (WDT) Registers */
722*4882a593Smuzhiyun 	rtclk83xx_t		rtc;		/* Real Time Clock Module Registers */
723*4882a593Smuzhiyun 	rtclk83xx_t		pit;		/* Periodic Interval Timer */
724*4882a593Smuzhiyun 	gtm83xx_t		gtm[2];		/* Global Timers Module */
725*4882a593Smuzhiyun 	ipic83xx_t		ipic;		/* Integrated Programmable Interrupt Controller */
726*4882a593Smuzhiyun 	arbiter83xx_t		arbiter;	/* System Arbiter Registers */
727*4882a593Smuzhiyun 	reset83xx_t		reset;		/* Reset Module */
728*4882a593Smuzhiyun 	clk83xx_t		clk;		/* System Clock Module */
729*4882a593Smuzhiyun 	pmc83xx_t		pmc;		/* Power Management Control Module */
730*4882a593Smuzhiyun 	gpio83xx_t		gpio[1];	/* General purpose I/O module */
731*4882a593Smuzhiyun 	u8			res0[0x1300];
732*4882a593Smuzhiyun 	ddr83xx_t		ddr;		/* DDR Memory Controller Memory */
733*4882a593Smuzhiyun 	fsl_i2c_t		i2c[2];		/* I2C Controllers */
734*4882a593Smuzhiyun 	u8			res1[0x1300];
735*4882a593Smuzhiyun 	duart83xx_t		duart[2];	/* DUART */
736*4882a593Smuzhiyun 	u8			res2[0x900];
737*4882a593Smuzhiyun 	fsl_lbc_t		im_lbc;		/* Local Bus Controller Regs */
738*4882a593Smuzhiyun 	u8			res3[0x1000];
739*4882a593Smuzhiyun 	spi8xxx_t		spi;		/* Serial Peripheral Interface */
740*4882a593Smuzhiyun 	dma83xx_t		dma;		/* DMA */
741*4882a593Smuzhiyun 	pciconf83xx_t		pci_conf[1];	/* PCI Software Configuration Registers */
742*4882a593Smuzhiyun 	u8			res4[0x80];
743*4882a593Smuzhiyun 	ios83xx_t		ios;		/* Sequencer */
744*4882a593Smuzhiyun 	pcictrl83xx_t		pci_ctrl[1];	/* PCI Controller Control and Status Registers */
745*4882a593Smuzhiyun 	u8			res5[0xa00];
746*4882a593Smuzhiyun 	pex83xx_t		pciexp[2];	/* PCI Express Controller */
747*4882a593Smuzhiyun 	u8			res6[0xb000];
748*4882a593Smuzhiyun 	tdm83xx_t		tdm;		/* TDM Controller */
749*4882a593Smuzhiyun 	u8			res7[0x1e00];
750*4882a593Smuzhiyun 	sata83xx_t		sata[2];	/* SATA Controller */
751*4882a593Smuzhiyun 	u8			res8[0x9000];
752*4882a593Smuzhiyun 	usb83xx_t		usb[1];		/* USB DR Controller */
753*4882a593Smuzhiyun 	tsec83xx_t		tsec[2];
754*4882a593Smuzhiyun 	u8			res9[0x6000];
755*4882a593Smuzhiyun 	tdmdmac83xx_t		tdmdmac;	/* TDM DMAC */
756*4882a593Smuzhiyun 	u8			res10[0x2000];
757*4882a593Smuzhiyun 	security83xx_t		security;
758*4882a593Smuzhiyun 	u8			res11[0xA3000];
759*4882a593Smuzhiyun 	serdes83xx_t		serdes[1];	/* SerDes Registers */
760*4882a593Smuzhiyun 	u8			res12[0x1CF00];
761*4882a593Smuzhiyun } immap_t;
762*4882a593Smuzhiyun 
763*4882a593Smuzhiyun #elif defined(CONFIG_MPC837x)
764*4882a593Smuzhiyun typedef struct immap {
765*4882a593Smuzhiyun 	sysconf83xx_t		sysconf;	/* System configuration */
766*4882a593Smuzhiyun 	wdt83xx_t		wdt;		/* Watch Dog Timer (WDT) Registers */
767*4882a593Smuzhiyun 	rtclk83xx_t		rtc;		/* Real Time Clock Module Registers */
768*4882a593Smuzhiyun 	rtclk83xx_t		pit;		/* Periodic Interval Timer */
769*4882a593Smuzhiyun 	gtm83xx_t		gtm[2];		/* Global Timers Module */
770*4882a593Smuzhiyun 	ipic83xx_t		ipic;		/* Integrated Programmable Interrupt Controller */
771*4882a593Smuzhiyun 	arbiter83xx_t		arbiter;	/* System Arbiter Registers */
772*4882a593Smuzhiyun 	reset83xx_t		reset;		/* Reset Module */
773*4882a593Smuzhiyun 	clk83xx_t		clk;		/* System Clock Module */
774*4882a593Smuzhiyun 	pmc83xx_t		pmc;		/* Power Management Control Module */
775*4882a593Smuzhiyun 	gpio83xx_t		gpio[2];	/* General purpose I/O module */
776*4882a593Smuzhiyun 	u8			res0[0x1200];
777*4882a593Smuzhiyun 	ddr83xx_t		ddr;		/* DDR Memory Controller Memory */
778*4882a593Smuzhiyun 	fsl_i2c_t		i2c[2];		/* I2C Controllers */
779*4882a593Smuzhiyun 	u8			res1[0x1300];
780*4882a593Smuzhiyun 	duart83xx_t		duart[2];	/* DUART */
781*4882a593Smuzhiyun 	u8			res2[0x900];
782*4882a593Smuzhiyun 	fsl_lbc_t		im_lbc;		/* Local Bus Controller Regs */
783*4882a593Smuzhiyun 	u8			res3[0x1000];
784*4882a593Smuzhiyun 	spi8xxx_t		spi;		/* Serial Peripheral Interface */
785*4882a593Smuzhiyun 	dma83xx_t		dma;		/* DMA */
786*4882a593Smuzhiyun 	pciconf83xx_t		pci_conf[1];	/* PCI Software Configuration Registers */
787*4882a593Smuzhiyun 	u8			res4[0x80];
788*4882a593Smuzhiyun 	ios83xx_t		ios;		/* Sequencer */
789*4882a593Smuzhiyun 	pcictrl83xx_t		pci_ctrl[1];	/* PCI Controller Control and Status Registers */
790*4882a593Smuzhiyun 	u8			res5[0xa00];
791*4882a593Smuzhiyun 	pex83xx_t		pciexp[2];	/* PCI Express Controller */
792*4882a593Smuzhiyun 	u8			res6[0xd000];
793*4882a593Smuzhiyun 	sata83xx_t		sata[4];	/* SATA Controller */
794*4882a593Smuzhiyun 	u8			res7[0x7000];
795*4882a593Smuzhiyun 	usb83xx_t		usb[1];		/* USB DR Controller */
796*4882a593Smuzhiyun 	tsec83xx_t		tsec[2];
797*4882a593Smuzhiyun 	u8			res8[0x8000];
798*4882a593Smuzhiyun 	sdhc83xx_t		sdhc;		/* SDHC Controller */
799*4882a593Smuzhiyun 	u8			res9[0x1000];
800*4882a593Smuzhiyun 	security83xx_t		security;
801*4882a593Smuzhiyun 	u8			res10[0xA3000];
802*4882a593Smuzhiyun 	serdes83xx_t		serdes[2];	/* SerDes Registers */
803*4882a593Smuzhiyun 	u8			res11[0xCE00];
804*4882a593Smuzhiyun 	rom83xx_t		rom;		/* On Chip ROM */
805*4882a593Smuzhiyun } immap_t;
806*4882a593Smuzhiyun 
807*4882a593Smuzhiyun #elif defined(CONFIG_MPC8360)
808*4882a593Smuzhiyun typedef struct immap {
809*4882a593Smuzhiyun 	sysconf83xx_t		sysconf;	/* System configuration */
810*4882a593Smuzhiyun 	wdt83xx_t		wdt;		/* Watch Dog Timer (WDT) Registers */
811*4882a593Smuzhiyun 	rtclk83xx_t		rtc;		/* Real Time Clock Module Registers */
812*4882a593Smuzhiyun 	rtclk83xx_t		pit;		/* Periodic Interval Timer */
813*4882a593Smuzhiyun 	u8			res0[0x200];
814*4882a593Smuzhiyun 	ipic83xx_t		ipic;		/* Integrated Programmable Interrupt Controller */
815*4882a593Smuzhiyun 	arbiter83xx_t		arbiter;	/* System Arbiter Registers */
816*4882a593Smuzhiyun 	reset83xx_t		reset;		/* Reset Module */
817*4882a593Smuzhiyun 	clk83xx_t		clk;		/* System Clock Module */
818*4882a593Smuzhiyun 	pmc83xx_t		pmc;		/* Power Management Control Module */
819*4882a593Smuzhiyun 	qepi83xx_t		qepi;		/* QE Ports Interrupts Registers */
820*4882a593Smuzhiyun 	u8			res1[0x300];
821*4882a593Smuzhiyun 	u8			dll_ddr[0x100];
822*4882a593Smuzhiyun 	u8			dll_lbc[0x100];
823*4882a593Smuzhiyun 	u8			res2[0x200];
824*4882a593Smuzhiyun 	qepio83xx_t		qepio;		/* QE Parallel I/O ports */
825*4882a593Smuzhiyun 	qesba83xx_t		qesba;		/* QE Secondary Bus Access Windows */
826*4882a593Smuzhiyun 	u8			res3[0x400];
827*4882a593Smuzhiyun 	ddr83xx_t		ddr;		/* DDR Memory Controller Memory */
828*4882a593Smuzhiyun 	fsl_i2c_t		i2c[2];		/* I2C Controllers */
829*4882a593Smuzhiyun 	u8			res4[0x1300];
830*4882a593Smuzhiyun 	duart83xx_t		duart[2];	/* DUART */
831*4882a593Smuzhiyun 	u8			res5[0x900];
832*4882a593Smuzhiyun 	fsl_lbc_t		im_lbc;		/* Local Bus Controller Regs */
833*4882a593Smuzhiyun 	u8			res6[0x2000];
834*4882a593Smuzhiyun 	dma83xx_t		dma;		/* DMA */
835*4882a593Smuzhiyun 	pciconf83xx_t		pci_conf[1];	/* PCI Software Configuration Registers */
836*4882a593Smuzhiyun 	u8			res7[128];
837*4882a593Smuzhiyun 	ios83xx_t		ios;		/* Sequencer (IOS) */
838*4882a593Smuzhiyun 	pcictrl83xx_t		pci_ctrl[1];	/* PCI Controller Control and Status Registers */
839*4882a593Smuzhiyun 	u8			res8[0x4A00];
840*4882a593Smuzhiyun 	ddr83xx_t		ddr_secondary;	/* Secondary DDR Memory Controller Memory Map */
841*4882a593Smuzhiyun 	u8			res9[0x22000];
842*4882a593Smuzhiyun 	security83xx_t		security;
843*4882a593Smuzhiyun 	u8			res10[0xC0000];
844*4882a593Smuzhiyun 	u8			qe[0x100000];	/* QE block */
845*4882a593Smuzhiyun } immap_t;
846*4882a593Smuzhiyun 
847*4882a593Smuzhiyun #elif defined(CONFIG_MPC832x)
848*4882a593Smuzhiyun typedef struct immap {
849*4882a593Smuzhiyun 	sysconf83xx_t		sysconf;	/* System configuration */
850*4882a593Smuzhiyun 	wdt83xx_t		wdt;		/* Watch Dog Timer (WDT) Registers */
851*4882a593Smuzhiyun 	rtclk83xx_t		rtc;		/* Real Time Clock Module Registers */
852*4882a593Smuzhiyun 	rtclk83xx_t		pit;		/* Periodic Interval Timer */
853*4882a593Smuzhiyun 	gtm83xx_t		gtm[2];		/* Global Timers Module */
854*4882a593Smuzhiyun 	ipic83xx_t		ipic;		/* Integrated Programmable Interrupt Controller */
855*4882a593Smuzhiyun 	arbiter83xx_t		arbiter;	/* System Arbiter Registers */
856*4882a593Smuzhiyun 	reset83xx_t		reset;		/* Reset Module */
857*4882a593Smuzhiyun 	clk83xx_t		clk;		/* System Clock Module */
858*4882a593Smuzhiyun 	pmc83xx_t		pmc;		/* Power Management Control Module */
859*4882a593Smuzhiyun 	qepi83xx_t		qepi;		/* QE Ports Interrupts Registers */
860*4882a593Smuzhiyun 	u8			res0[0x300];
861*4882a593Smuzhiyun 	u8			dll_ddr[0x100];
862*4882a593Smuzhiyun 	u8			dll_lbc[0x100];
863*4882a593Smuzhiyun 	u8			res1[0x200];
864*4882a593Smuzhiyun 	qepio83xx_t		qepio;		/* QE Parallel I/O ports */
865*4882a593Smuzhiyun 	u8			res2[0x800];
866*4882a593Smuzhiyun 	ddr83xx_t		ddr;		/* DDR Memory Controller Memory */
867*4882a593Smuzhiyun 	fsl_i2c_t		i2c[2];		/* I2C Controllers */
868*4882a593Smuzhiyun 	u8			res3[0x1300];
869*4882a593Smuzhiyun 	duart83xx_t		duart[2];	/* DUART */
870*4882a593Smuzhiyun 	u8			res4[0x900];
871*4882a593Smuzhiyun 	fsl_lbc_t		im_lbc;		/* Local Bus Controller Regs */
872*4882a593Smuzhiyun 	u8			res5[0x2000];
873*4882a593Smuzhiyun 	dma83xx_t		dma;		/* DMA */
874*4882a593Smuzhiyun 	pciconf83xx_t		pci_conf[1];	/* PCI Software Configuration Registers */
875*4882a593Smuzhiyun 	u8			res6[128];
876*4882a593Smuzhiyun 	ios83xx_t		ios;		/* Sequencer (IOS) */
877*4882a593Smuzhiyun 	pcictrl83xx_t		pci_ctrl[1];	/* PCI Controller Control and Status Registers */
878*4882a593Smuzhiyun 	u8			res7[0x27A00];
879*4882a593Smuzhiyun 	security83xx_t		security;
880*4882a593Smuzhiyun 	u8			res8[0xC0000];
881*4882a593Smuzhiyun 	u8			qe[0x100000];	/* QE block */
882*4882a593Smuzhiyun } immap_t;
883*4882a593Smuzhiyun #elif defined(CONFIG_MPC8309)
884*4882a593Smuzhiyun typedef struct immap {
885*4882a593Smuzhiyun 	sysconf83xx_t		sysconf;	/* System configuration */
886*4882a593Smuzhiyun 	wdt83xx_t		wdt;		/* Watch Dog Timer (WDT) Registers */
887*4882a593Smuzhiyun 	rtclk83xx_t		rtc;		/* Real Time Clock Module Registers */
888*4882a593Smuzhiyun 	rtclk83xx_t		pit;		/* Periodic Interval Timer */
889*4882a593Smuzhiyun 	gtm83xx_t		gtm[2];		/* Global Timers Module */
890*4882a593Smuzhiyun 	ipic83xx_t		ipic;		/* Integrated Programmable Interrupt Controller */
891*4882a593Smuzhiyun 	arbiter83xx_t		arbiter;	/* System Arbiter Registers */
892*4882a593Smuzhiyun 	reset83xx_t		reset;		/* Reset Module */
893*4882a593Smuzhiyun 	clk83xx_t		clk;		/* System Clock Module */
894*4882a593Smuzhiyun 	pmc83xx_t		pmc;		/* Power Management Control Module */
895*4882a593Smuzhiyun 	gpio83xx_t		gpio[2];	/* General purpose I/O module */
896*4882a593Smuzhiyun 	u8			res0[0x500];	/* res0 1.25 KBytes added for 8309 */
897*4882a593Smuzhiyun 	qepi83xx_t		qepi;		/* QE Ports Interrupts Registers */
898*4882a593Smuzhiyun 	qepio83xx_t		qepio;		/* QE Parallel I/O ports */
899*4882a593Smuzhiyun 	u8			res1[0x800];
900*4882a593Smuzhiyun 	ddr83xx_t		ddr;		/* DDR Memory Controller Memory */
901*4882a593Smuzhiyun 	fsl_i2c_t		i2c[2];		/* I2C Controllers */
902*4882a593Smuzhiyun 	u8			res2[0x1300];
903*4882a593Smuzhiyun 	duart83xx_t		duart[2];	/* DUART */
904*4882a593Smuzhiyun 	u8			res3[0x200];
905*4882a593Smuzhiyun 	duart83xx_t		duart1[2];	/* DUART */
906*4882a593Smuzhiyun 	u8			res4[0x500];
907*4882a593Smuzhiyun 	fsl_lbc_t		im_lbc;		/* Local Bus Controller Regs */
908*4882a593Smuzhiyun 	u8			res5[0x1000];
909*4882a593Smuzhiyun 	u8			spi[0x100];
910*4882a593Smuzhiyun 	u8			res6[0xf00];
911*4882a593Smuzhiyun 	dma83xx_t		dma;		/* DMA */
912*4882a593Smuzhiyun 	pciconf83xx_t		pci_conf[1];	/* PCI Configuration Registers */
913*4882a593Smuzhiyun 	u8			res7[0x80];
914*4882a593Smuzhiyun 	ios83xx_t		ios;		/* Sequencer (IOS) */
915*4882a593Smuzhiyun 	pcictrl83xx_t		pci_ctrl[1];	/* PCI Control & Status Registers */
916*4882a593Smuzhiyun 	u8			res8[0x13A00];
917*4882a593Smuzhiyun 	u8			can1[0x1000];	/* Flexcan 1 */
918*4882a593Smuzhiyun 	u8			can2[0x1000];	/* Flexcan 2 */
919*4882a593Smuzhiyun 	u8			res9[0x5000];
920*4882a593Smuzhiyun 	usb83xx_t		usb;
921*4882a593Smuzhiyun 	u8			res10[0x5000];
922*4882a593Smuzhiyun 	u8			can3[0x1000];	/* Flexcan 3 */
923*4882a593Smuzhiyun 	u8			can4[0x1000];	/* Flexcan 4 */
924*4882a593Smuzhiyun 	u8			res11[0x1000];
925*4882a593Smuzhiyun 	u8			dma1[0x2000];	/* DMA */
926*4882a593Smuzhiyun 	sdhc83xx_t		sdhc;		/* SDHC Controller */
927*4882a593Smuzhiyun 	u8			res12[0xC1000];
928*4882a593Smuzhiyun 	rom83xx_t		rom;		/* On Chip ROM */
929*4882a593Smuzhiyun 	u8			res13[0x8000];
930*4882a593Smuzhiyun 	u8			qe[0x100000];	/* QE block */
931*4882a593Smuzhiyun 	u8			res14[0xE00000];/* Added for 8309 */
932*4882a593Smuzhiyun } immap_t;
933*4882a593Smuzhiyun #endif
934*4882a593Smuzhiyun 
935*4882a593Smuzhiyun #define CONFIG_SYS_MPC8xxx_DDR_OFFSET	(0x2000)
936*4882a593Smuzhiyun #define CONFIG_SYS_FSL_DDR_ADDR \
937*4882a593Smuzhiyun 			(CONFIG_SYS_IMMR + CONFIG_SYS_MPC8xxx_DDR_OFFSET)
938*4882a593Smuzhiyun #define CONFIG_SYS_MPC83xx_DMA_OFFSET	(0x8000)
939*4882a593Smuzhiyun #define CONFIG_SYS_MPC83xx_DMA_ADDR \
940*4882a593Smuzhiyun 			(CONFIG_SYS_IMMR + CONFIG_SYS_MPC83xx_DMA_OFFSET)
941*4882a593Smuzhiyun #define CONFIG_SYS_MPC83xx_ESDHC_OFFSET	(0x2e000)
942*4882a593Smuzhiyun #define CONFIG_SYS_MPC83xx_ESDHC_ADDR \
943*4882a593Smuzhiyun 			(CONFIG_SYS_IMMR + CONFIG_SYS_MPC83xx_ESDHC_OFFSET)
944*4882a593Smuzhiyun 
945*4882a593Smuzhiyun #ifndef CONFIG_SYS_MPC83xx_USB1_OFFSET
946*4882a593Smuzhiyun #define CONFIG_SYS_MPC83xx_USB1_OFFSET  0x23000
947*4882a593Smuzhiyun #endif
948*4882a593Smuzhiyun #define CONFIG_SYS_MPC83xx_USB1_ADDR \
949*4882a593Smuzhiyun 			(CONFIG_SYS_IMMR + CONFIG_SYS_MPC83xx_USB1_OFFSET)
950*4882a593Smuzhiyun #if defined(CONFIG_MPC834x)
951*4882a593Smuzhiyun #define CONFIG_SYS_MPC83xx_USB2_ADDR \
952*4882a593Smuzhiyun 			(CONFIG_SYS_IMMR + CONFIG_SYS_MPC83xx_USB2_OFFSET)
953*4882a593Smuzhiyun #endif
954*4882a593Smuzhiyun #define CONFIG_SYS_LBC_ADDR (&((immap_t *)CONFIG_SYS_IMMR)->im_lbc)
955*4882a593Smuzhiyun 
956*4882a593Smuzhiyun #define CONFIG_SYS_TSEC1_OFFSET		0x24000
957*4882a593Smuzhiyun #define CONFIG_SYS_MDIO1_OFFSET		0x24000
958*4882a593Smuzhiyun 
959*4882a593Smuzhiyun #define TSEC_BASE_ADDR		(CONFIG_SYS_IMMR + CONFIG_SYS_TSEC1_OFFSET)
960*4882a593Smuzhiyun #define MDIO_BASE_ADDR		(CONFIG_SYS_IMMR + CONFIG_SYS_MDIO1_OFFSET)
961*4882a593Smuzhiyun #endif				/* __IMMAP_83xx__ */
962