xref: /rk3399_rockchip-uboot/include/configs/MPC832XEMDS.h (revision 24c3aca3f1358b113d3215adb5433b156e99f72b)
1*24c3aca3SDave Liu /*
2*24c3aca3SDave Liu  * Copyright (C) 2006 Freescale Semiconductor, Inc.
3*24c3aca3SDave Liu  *
4*24c3aca3SDave Liu  * This program is free software; you can redistribute it and/or
5*24c3aca3SDave Liu  * modify it under the terms of the GNU General Public License as
6*24c3aca3SDave Liu  * published by the Free Software Foundation; either version 2 of
7*24c3aca3SDave Liu  * the License, or (at your option) any later version.
8*24c3aca3SDave Liu  *
9*24c3aca3SDave Liu  * This program is distributed in the hope that it will be useful,
10*24c3aca3SDave Liu  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11*24c3aca3SDave Liu  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	See the
12*24c3aca3SDave Liu  * GNU General Public License for more details.
13*24c3aca3SDave Liu  *
14*24c3aca3SDave Liu  * You should have received a copy of the GNU General Public License
15*24c3aca3SDave Liu  * along with this program; if not, write to the Free Software
16*24c3aca3SDave Liu  * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
17*24c3aca3SDave Liu  * MA 02111-1307 USA
18*24c3aca3SDave Liu  */
19*24c3aca3SDave Liu 
20*24c3aca3SDave Liu #ifndef __CONFIG_H
21*24c3aca3SDave Liu #define __CONFIG_H
22*24c3aca3SDave Liu 
23*24c3aca3SDave Liu #undef DEBUG
24*24c3aca3SDave Liu 
25*24c3aca3SDave Liu /*
26*24c3aca3SDave Liu  * High Level Configuration Options
27*24c3aca3SDave Liu  */
28*24c3aca3SDave Liu #define CONFIG_E300		1	/* E300 family */
29*24c3aca3SDave Liu #define CONFIG_QE		1	/* Has QE */
30*24c3aca3SDave Liu #define CONFIG_MPC83XX		1	/* MPC83xx family */
31*24c3aca3SDave Liu #define CONFIG_MPC832X		1	/* MPC832x CPU specific */
32*24c3aca3SDave Liu #define CONFIG_MPC832XEMDS	1	/* MPC832XEMDS board specific */
33*24c3aca3SDave Liu 
34*24c3aca3SDave Liu /*
35*24c3aca3SDave Liu  * System Clock Setup
36*24c3aca3SDave Liu  */
37*24c3aca3SDave Liu #ifdef CONFIG_PCISLAVE
38*24c3aca3SDave Liu #define CONFIG_83XX_PCICLK	66000000	/* in HZ */
39*24c3aca3SDave Liu #else
40*24c3aca3SDave Liu #define CONFIG_83XX_CLKIN	66000000	/* in Hz */
41*24c3aca3SDave Liu #endif
42*24c3aca3SDave Liu 
43*24c3aca3SDave Liu #ifndef CONFIG_SYS_CLK_FREQ
44*24c3aca3SDave Liu #define CONFIG_SYS_CLK_FREQ	66000000
45*24c3aca3SDave Liu #endif
46*24c3aca3SDave Liu 
47*24c3aca3SDave Liu /*
48*24c3aca3SDave Liu  * Hardware Reset Configuration Word
49*24c3aca3SDave Liu  */
50*24c3aca3SDave Liu #define CFG_HRCW_LOW (\
51*24c3aca3SDave Liu 	HRCWL_LCL_BUS_TO_SCB_CLK_1X1 |\
52*24c3aca3SDave Liu 	HRCWL_DDR_TO_SCB_CLK_2X1 |\
53*24c3aca3SDave Liu 	HRCWL_VCO_1X2 |\
54*24c3aca3SDave Liu 	HRCWL_CSB_TO_CLKIN_2X1 |\
55*24c3aca3SDave Liu 	HRCWL_CORE_TO_CSB_2X1 |\
56*24c3aca3SDave Liu 	HRCWL_CE_PLL_VCO_DIV_2 |\
57*24c3aca3SDave Liu 	HRCWL_CE_PLL_DIV_1X1 |\
58*24c3aca3SDave Liu 	HRCWL_CE_TO_PLL_1X3)
59*24c3aca3SDave Liu 
60*24c3aca3SDave Liu #ifdef CONFIG_PCISLAVE
61*24c3aca3SDave Liu #define CFG_HRCW_HIGH (\
62*24c3aca3SDave Liu 	HRCWH_PCI_AGENT |\
63*24c3aca3SDave Liu 	HRCWH_PCI1_ARBITER_DISABLE |\
64*24c3aca3SDave Liu 	HRCWH_CORE_ENABLE |\
65*24c3aca3SDave Liu 	HRCWH_FROM_0XFFF00100 |\
66*24c3aca3SDave Liu 	HRCWH_BOOTSEQ_DISABLE |\
67*24c3aca3SDave Liu 	HRCWH_SW_WATCHDOG_DISABLE |\
68*24c3aca3SDave Liu 	HRCWH_ROM_LOC_LOCAL_16BIT |\
69*24c3aca3SDave Liu 	HRCWH_BIG_ENDIAN |\
70*24c3aca3SDave Liu 	HRCWH_LALE_NORMAL)
71*24c3aca3SDave Liu #else
72*24c3aca3SDave Liu #define CFG_HRCW_HIGH (\
73*24c3aca3SDave Liu 	HRCWH_PCI_HOST |\
74*24c3aca3SDave Liu 	HRCWH_PCI1_ARBITER_ENABLE |\
75*24c3aca3SDave Liu 	HRCWH_CORE_ENABLE |\
76*24c3aca3SDave Liu 	HRCWH_FROM_0X00000100 |\
77*24c3aca3SDave Liu 	HRCWH_BOOTSEQ_DISABLE |\
78*24c3aca3SDave Liu 	HRCWH_SW_WATCHDOG_DISABLE |\
79*24c3aca3SDave Liu 	HRCWH_ROM_LOC_LOCAL_16BIT |\
80*24c3aca3SDave Liu 	HRCWH_BIG_ENDIAN |\
81*24c3aca3SDave Liu 	HRCWH_LALE_NORMAL)
82*24c3aca3SDave Liu #endif
83*24c3aca3SDave Liu 
84*24c3aca3SDave Liu /*
85*24c3aca3SDave Liu  * System IO Config
86*24c3aca3SDave Liu  */
87*24c3aca3SDave Liu #define CFG_SICRL		0x00000000
88*24c3aca3SDave Liu 
89*24c3aca3SDave Liu #define CONFIG_BOARD_EARLY_INIT_F	/* call board_pre_init */
90*24c3aca3SDave Liu 
91*24c3aca3SDave Liu /*
92*24c3aca3SDave Liu  * IMMR new address
93*24c3aca3SDave Liu  */
94*24c3aca3SDave Liu #define CFG_IMMR		0xE0000000
95*24c3aca3SDave Liu 
96*24c3aca3SDave Liu /*
97*24c3aca3SDave Liu  * DDR Setup
98*24c3aca3SDave Liu  */
99*24c3aca3SDave Liu #define CFG_DDR_BASE		0x00000000	/* DDR is system memory */
100*24c3aca3SDave Liu #define CFG_SDRAM_BASE		CFG_DDR_BASE
101*24c3aca3SDave Liu #define CFG_DDR_SDRAM_BASE	CFG_DDR_BASE
102*24c3aca3SDave Liu #define CFG_DDRCDR		0x73000002	/* DDR II voltage is 1.8V */
103*24c3aca3SDave Liu 
104*24c3aca3SDave Liu #undef CONFIG_SPD_EEPROM
105*24c3aca3SDave Liu #if defined(CONFIG_SPD_EEPROM)
106*24c3aca3SDave Liu /* Determine DDR configuration from I2C interface
107*24c3aca3SDave Liu  */
108*24c3aca3SDave Liu #define SPD_EEPROM_ADDRESS	0x51	/* DDR SODIMM */
109*24c3aca3SDave Liu #else
110*24c3aca3SDave Liu /* Manually set up DDR parameters
111*24c3aca3SDave Liu  */
112*24c3aca3SDave Liu #define CFG_DDR_SIZE		128	/* MB */
113*24c3aca3SDave Liu #define CFG_DDR_CS0_CONFIG	0x80840102
114*24c3aca3SDave Liu #define CFG_DDR_TIMING_0	0x00220802
115*24c3aca3SDave Liu #define CFG_DDR_TIMING_1	0x3935d322
116*24c3aca3SDave Liu #define CFG_DDR_TIMING_2	0x0f9048ca
117*24c3aca3SDave Liu #define CFG_DDR_TIMING_3	0x00000000
118*24c3aca3SDave Liu #define CFG_DDR_CLK_CNTL	0x02000000
119*24c3aca3SDave Liu #define CFG_DDR_MODE		0x44400232
120*24c3aca3SDave Liu #define CFG_DDR_MODE2		0x8000c000
121*24c3aca3SDave Liu #define CFG_DDR_INTERVAL	0x03200064
122*24c3aca3SDave Liu #define CFG_DDR_CS0_BNDS	0x00000007
123*24c3aca3SDave Liu #define CFG_DDR_SDRAM_CFG	0x43080000
124*24c3aca3SDave Liu #define CFG_DDR_SDRAM_CFG2	0x00401000
125*24c3aca3SDave Liu #endif
126*24c3aca3SDave Liu 
127*24c3aca3SDave Liu /*
128*24c3aca3SDave Liu  * Memory test
129*24c3aca3SDave Liu  */
130*24c3aca3SDave Liu #undef CFG_DRAM_TEST		/* memory test, takes time */
131*24c3aca3SDave Liu #define CFG_MEMTEST_START	0x00000000	/* memtest region */
132*24c3aca3SDave Liu #define CFG_MEMTEST_END		0x00100000
133*24c3aca3SDave Liu 
134*24c3aca3SDave Liu /*
135*24c3aca3SDave Liu  * The reserved memory
136*24c3aca3SDave Liu  */
137*24c3aca3SDave Liu #define CFG_MONITOR_BASE	TEXT_BASE	/* start of monitor */
138*24c3aca3SDave Liu 
139*24c3aca3SDave Liu #if (CFG_MONITOR_BASE < CFG_FLASH_BASE)
140*24c3aca3SDave Liu #define CFG_RAMBOOT
141*24c3aca3SDave Liu #else
142*24c3aca3SDave Liu #undef  CFG_RAMBOOT
143*24c3aca3SDave Liu #endif
144*24c3aca3SDave Liu 
145*24c3aca3SDave Liu #define CFG_MONITOR_LEN		(256 * 1024)	/* Reserve 256 kB for Mon */
146*24c3aca3SDave Liu #define CFG_MALLOC_LEN		(128 * 1024)	/* Reserved for malloc */
147*24c3aca3SDave Liu 
148*24c3aca3SDave Liu /*
149*24c3aca3SDave Liu  * Initial RAM Base Address Setup
150*24c3aca3SDave Liu  */
151*24c3aca3SDave Liu #define CFG_INIT_RAM_LOCK	1
152*24c3aca3SDave Liu #define CFG_INIT_RAM_ADDR	0xE6000000	/* Initial RAM address */
153*24c3aca3SDave Liu #define CFG_INIT_RAM_END	0x1000		/* End of used area in RAM */
154*24c3aca3SDave Liu #define CFG_GBL_DATA_SIZE	0x100		/* num bytes initial data */
155*24c3aca3SDave Liu #define CFG_GBL_DATA_OFFSET	(CFG_INIT_RAM_END - CFG_GBL_DATA_SIZE)
156*24c3aca3SDave Liu 
157*24c3aca3SDave Liu /*
158*24c3aca3SDave Liu  * Local Bus Configuration & Clock Setup
159*24c3aca3SDave Liu  */
160*24c3aca3SDave Liu #define CFG_LCRR		(LCRR_DBYP | LCRR_CLKDIV_2)
161*24c3aca3SDave Liu #define CFG_LBC_LBCR		0x00000000
162*24c3aca3SDave Liu 
163*24c3aca3SDave Liu /*
164*24c3aca3SDave Liu  * FLASH on the Local Bus
165*24c3aca3SDave Liu  */
166*24c3aca3SDave Liu #define CFG_FLASH_CFI		/* use the Common Flash Interface */
167*24c3aca3SDave Liu #define CFG_FLASH_CFI_DRIVER	/* use the CFI driver */
168*24c3aca3SDave Liu #define CFG_FLASH_BASE		0xFE000000	/* FLASH base address */
169*24c3aca3SDave Liu #define CFG_FLASH_SIZE		16	/* FLASH size is 16M */
170*24c3aca3SDave Liu 
171*24c3aca3SDave Liu #define CFG_LBLAWBAR0_PRELIM	CFG_FLASH_BASE	/* Window base at flash base */
172*24c3aca3SDave Liu #define CFG_LBLAWAR0_PRELIM	0x80000018	/* 32MB window size */
173*24c3aca3SDave Liu 
174*24c3aca3SDave Liu #define CFG_BR0_PRELIM	(CFG_FLASH_BASE |	/* Flash Base address */ \
175*24c3aca3SDave Liu 			(2 << BR_PS_SHIFT) |	/* 16 bit port size */ \
176*24c3aca3SDave Liu 			BR_V)			/* valid */
177*24c3aca3SDave Liu #define CFG_OR0_PRELIM		0xfe006ff7	/* 16MB Flash size */
178*24c3aca3SDave Liu 
179*24c3aca3SDave Liu #define CFG_MAX_FLASH_BANKS	1		/* number of banks */
180*24c3aca3SDave Liu #define CFG_MAX_FLASH_SECT	128		/* sectors per device */
181*24c3aca3SDave Liu 
182*24c3aca3SDave Liu #undef CFG_FLASH_CHECKSUM
183*24c3aca3SDave Liu 
184*24c3aca3SDave Liu /*
185*24c3aca3SDave Liu  * BCSR on the Local Bus
186*24c3aca3SDave Liu  */
187*24c3aca3SDave Liu #define CFG_BCSR		0xF8000000
188*24c3aca3SDave Liu #define CFG_LBLAWBAR1_PRELIM	CFG_BCSR	/* Access window base at BCSR base */
189*24c3aca3SDave Liu #define CFG_LBLAWAR1_PRELIM	0x8000000E	/* Access window size 32K */
190*24c3aca3SDave Liu 
191*24c3aca3SDave Liu #define CFG_BR1_PRELIM		(CFG_BCSR|0x00000801)	/* Port size=8bit, MSEL=GPCM */
192*24c3aca3SDave Liu #define CFG_OR1_PRELIM		0xFFFFE9f7	/* length 32K */
193*24c3aca3SDave Liu 
194*24c3aca3SDave Liu /*
195*24c3aca3SDave Liu  * SDRAM on the Local Bus
196*24c3aca3SDave Liu  */
197*24c3aca3SDave Liu #undef CFG_LB_SDRAM		/* The board has not SRDAM on local bus */
198*24c3aca3SDave Liu 
199*24c3aca3SDave Liu #ifdef CFG_LB_SDRAM
200*24c3aca3SDave Liu #define CFG_LBC_SDRAM_BASE	0xF0000000	/* SDRAM base address */
201*24c3aca3SDave Liu #define CFG_LBC_SDRAM_SIZE	64		/* LBC SDRAM is 64MB */
202*24c3aca3SDave Liu 
203*24c3aca3SDave Liu #define CFG_LBLAWBAR2_PRELIM	CFG_LBC_SDRAM_BASE
204*24c3aca3SDave Liu #define CFG_LBLAWAR2_PRELIM	0x80000019	/* 64MB */
205*24c3aca3SDave Liu 
206*24c3aca3SDave Liu /*local bus BR2, OR2 definition for SDRAM if soldered on the EPB board */
207*24c3aca3SDave Liu /*
208*24c3aca3SDave Liu  * Base Register 2 and Option Register 2 configure SDRAM.
209*24c3aca3SDave Liu  * The SDRAM base address, CFG_LBC_SDRAM_BASE, is 0xf0000000.
210*24c3aca3SDave Liu  *
211*24c3aca3SDave Liu  * For BR2, need:
212*24c3aca3SDave Liu  *    Base address of 0xf0000000 = BR[0:16] = 1111 0000 0000 0000 0
213*24c3aca3SDave Liu  *    port size = 32-bits = BR2[19:20] = 11
214*24c3aca3SDave Liu  *    no parity checking = BR2[21:22] = 00
215*24c3aca3SDave Liu  *    SDRAM for MSEL = BR2[24:26] = 011
216*24c3aca3SDave Liu  *    Valid = BR[31] = 1
217*24c3aca3SDave Liu  *
218*24c3aca3SDave Liu  * 0    4    8    12   16   20   24   28
219*24c3aca3SDave Liu  * 1111 0000 0000 0000 0001 1000 0110 0001 = f0001861
220*24c3aca3SDave Liu  *
221*24c3aca3SDave Liu  * CFG_LBC_SDRAM_BASE should be masked and OR'ed into
222*24c3aca3SDave Liu  * the top 17 bits of BR2.
223*24c3aca3SDave Liu  */
224*24c3aca3SDave Liu 
225*24c3aca3SDave Liu #define CFG_BR2_PRELIM	0xf0001861	/*Port size=32bit, MSEL=SDRAM */
226*24c3aca3SDave Liu 
227*24c3aca3SDave Liu /*
228*24c3aca3SDave Liu  * The SDRAM size in MB, CFG_LBC_SDRAM_SIZE, is 64.
229*24c3aca3SDave Liu  *
230*24c3aca3SDave Liu  * For OR2, need:
231*24c3aca3SDave Liu  *    64MB mask for AM, OR2[0:7] = 1111 1100
232*24c3aca3SDave Liu  *                 XAM, OR2[17:18] = 11
233*24c3aca3SDave Liu  *    9 columns OR2[19-21] = 010
234*24c3aca3SDave Liu  *    13 rows   OR2[23-25] = 100
235*24c3aca3SDave Liu  *    EAD set for extra time OR[31] = 1
236*24c3aca3SDave Liu  *
237*24c3aca3SDave Liu  * 0    4    8    12   16   20   24   28
238*24c3aca3SDave Liu  * 1111 1100 0000 0000 0110 1001 0000 0001 = fc006901
239*24c3aca3SDave Liu  */
240*24c3aca3SDave Liu 
241*24c3aca3SDave Liu #define CFG_OR2_PRELIM	0xfc006901
242*24c3aca3SDave Liu 
243*24c3aca3SDave Liu #define CFG_LBC_LSRT	0x32000000	/* LB sdram refresh timer, about 6us */
244*24c3aca3SDave Liu #define CFG_LBC_MRTPR	0x20000000	/* LB refresh timer prescal, 266MHz/32 */
245*24c3aca3SDave Liu 
246*24c3aca3SDave Liu /*
247*24c3aca3SDave Liu  * LSDMR masks
248*24c3aca3SDave Liu  */
249*24c3aca3SDave Liu #define CFG_LBC_LSDMR_OP_NORMAL	(0 << (31 - 4))
250*24c3aca3SDave Liu #define CFG_LBC_LSDMR_OP_ARFRSH	(1 << (31 - 4))
251*24c3aca3SDave Liu #define CFG_LBC_LSDMR_OP_SRFRSH	(2 << (31 - 4))
252*24c3aca3SDave Liu #define CFG_LBC_LSDMR_OP_MRW	(3 << (31 - 4))
253*24c3aca3SDave Liu #define CFG_LBC_LSDMR_OP_PRECH	(4 << (31 - 4))
254*24c3aca3SDave Liu #define CFG_LBC_LSDMR_OP_PCHALL	(5 << (31 - 4))
255*24c3aca3SDave Liu #define CFG_LBC_LSDMR_OP_ACTBNK	(6 << (31 - 4))
256*24c3aca3SDave Liu #define CFG_LBC_LSDMR_OP_RWINV	(7 << (31 - 4))
257*24c3aca3SDave Liu 
258*24c3aca3SDave Liu #define CFG_LBC_LSDMR_COMMON	0x0063b723
259*24c3aca3SDave Liu 
260*24c3aca3SDave Liu /*
261*24c3aca3SDave Liu  * SDRAM Controller configuration sequence.
262*24c3aca3SDave Liu  */
263*24c3aca3SDave Liu #define CFG_LBC_LSDMR_1		( CFG_LBC_LSDMR_COMMON \
264*24c3aca3SDave Liu 				| CFG_LBC_LSDMR_OP_PCHALL)
265*24c3aca3SDave Liu #define CFG_LBC_LSDMR_2		( CFG_LBC_LSDMR_COMMON \
266*24c3aca3SDave Liu 				| CFG_LBC_LSDMR_OP_ARFRSH)
267*24c3aca3SDave Liu #define CFG_LBC_LSDMR_3		( CFG_LBC_LSDMR_COMMON \
268*24c3aca3SDave Liu 				| CFG_LBC_LSDMR_OP_ARFRSH)
269*24c3aca3SDave Liu #define CFG_LBC_LSDMR_4		( CFG_LBC_LSDMR_COMMON \
270*24c3aca3SDave Liu 				| CFG_LBC_LSDMR_OP_MRW)
271*24c3aca3SDave Liu #define CFG_LBC_LSDMR_5		( CFG_LBC_LSDMR_COMMON \
272*24c3aca3SDave Liu 				| CFG_LBC_LSDMR_OP_NORMAL)
273*24c3aca3SDave Liu 
274*24c3aca3SDave Liu #endif
275*24c3aca3SDave Liu 
276*24c3aca3SDave Liu /*
277*24c3aca3SDave Liu  * Windows to access PIB via local bus
278*24c3aca3SDave Liu  */
279*24c3aca3SDave Liu #define CFG_LBLAWBAR3_PRELIM	0xf8008000	/* windows base 0xf8008000 */
280*24c3aca3SDave Liu #define CFG_LBLAWAR3_PRELIM	0x8000000f	/* windows size 64KB */
281*24c3aca3SDave Liu 
282*24c3aca3SDave Liu /*
283*24c3aca3SDave Liu  * CS2 on Local Bus, to PIB
284*24c3aca3SDave Liu  */
285*24c3aca3SDave Liu #define CFG_BR2_PRELIM	0xf8008801	/* CS2 base address at 0xf8008000 */
286*24c3aca3SDave Liu #define CFG_OR2_PRELIM	0xffffe9f7	/* size 32KB, port size 8bit, GPCM */
287*24c3aca3SDave Liu 
288*24c3aca3SDave Liu /*
289*24c3aca3SDave Liu  * CS3 on Local Bus, to PIB
290*24c3aca3SDave Liu  */
291*24c3aca3SDave Liu #define CFG_BR3_PRELIM	0xf8010801	/* CS3 base address at 0xf8010000 */
292*24c3aca3SDave Liu #define CFG_OR3_PRELIM	0xffffe9f7	/* size 32KB, port size 8bit, GPCM */
293*24c3aca3SDave Liu 
294*24c3aca3SDave Liu /*
295*24c3aca3SDave Liu  * Serial Port
296*24c3aca3SDave Liu  */
297*24c3aca3SDave Liu #define CONFIG_CONS_INDEX	1
298*24c3aca3SDave Liu #undef CONFIG_SERIAL_SOFTWARE_FIFO
299*24c3aca3SDave Liu #define CFG_NS16550
300*24c3aca3SDave Liu #define CFG_NS16550_SERIAL
301*24c3aca3SDave Liu #define CFG_NS16550_REG_SIZE	1
302*24c3aca3SDave Liu #define CFG_NS16550_CLK		get_bus_freq(0)
303*24c3aca3SDave Liu 
304*24c3aca3SDave Liu #define CFG_BAUDRATE_TABLE  \
305*24c3aca3SDave Liu 	{300, 600, 1200, 2400, 4800, 9600, 19200, 38400,115200}
306*24c3aca3SDave Liu 
307*24c3aca3SDave Liu #define CFG_NS16550_COM1	(CFG_IMMR+0x4500)
308*24c3aca3SDave Liu #define CFG_NS16550_COM2	(CFG_IMMR+0x4600)
309*24c3aca3SDave Liu 
310*24c3aca3SDave Liu /* Use the HUSH parser */
311*24c3aca3SDave Liu #define CFG_HUSH_PARSER
312*24c3aca3SDave Liu #ifdef CFG_HUSH_PARSER
313*24c3aca3SDave Liu #define CFG_PROMPT_HUSH_PS2 "> "
314*24c3aca3SDave Liu #endif
315*24c3aca3SDave Liu 
316*24c3aca3SDave Liu /* pass open firmware flat tree */
317*24c3aca3SDave Liu #define CONFIG_OF_FLAT_TREE	1
318*24c3aca3SDave Liu #define CONFIG_OF_BOARD_SETUP	1
319*24c3aca3SDave Liu 
320*24c3aca3SDave Liu /* maximum size of the flat tree (8K) */
321*24c3aca3SDave Liu #define OF_FLAT_TREE_MAX_SIZE	8192
322*24c3aca3SDave Liu 
323*24c3aca3SDave Liu #define OF_CPU			"PowerPC,8323@0"
324*24c3aca3SDave Liu #define OF_SOC			"soc8323@e0000000"
325*24c3aca3SDave Liu #define OF_TBCLK		(bd->bi_busfreq / 4)
326*24c3aca3SDave Liu #define OF_STDOUT_PATH		"/soc8323@e0000000/serial@4500"
327*24c3aca3SDave Liu 
328*24c3aca3SDave Liu /* I2C */
329*24c3aca3SDave Liu #define CONFIG_HARD_I2C		/* I2C with hardware support */
330*24c3aca3SDave Liu #undef CONFIG_SOFT_I2C		/* I2C bit-banged */
331*24c3aca3SDave Liu #define CONFIG_FSL_I2C
332*24c3aca3SDave Liu #define CFG_I2C_SPEED	400000	/* I2C speed and slave address */
333*24c3aca3SDave Liu #define CFG_I2C_SLAVE	0x7F
334*24c3aca3SDave Liu #define CFG_I2C_NOPROBES	{0x51}	/* Don't probe these addrs */
335*24c3aca3SDave Liu #define CFG_I2C_OFFSET	0x3000
336*24c3aca3SDave Liu 
337*24c3aca3SDave Liu /*
338*24c3aca3SDave Liu  * Config on-board RTC
339*24c3aca3SDave Liu  */
340*24c3aca3SDave Liu #define CONFIG_RTC_DS1374		/* use ds1374 rtc via i2c */
341*24c3aca3SDave Liu #define CFG_I2C_RTC_ADDR	0x68	/* at address 0x68 */
342*24c3aca3SDave Liu 
343*24c3aca3SDave Liu /*
344*24c3aca3SDave Liu  * General PCI
345*24c3aca3SDave Liu  * Addresses are mapped 1-1.
346*24c3aca3SDave Liu  */
347*24c3aca3SDave Liu #define CFG_PCI_MEM_BASE	0x80000000
348*24c3aca3SDave Liu #define CFG_PCI_MEM_PHYS	CFG_PCI_MEM_BASE
349*24c3aca3SDave Liu #define CFG_PCI_MEM_SIZE	0x10000000	/* 256M */
350*24c3aca3SDave Liu #define CFG_PCI_MMIO_BASE	0x90000000
351*24c3aca3SDave Liu #define CFG_PCI_MMIO_PHYS	CFG_PCI_MMIO_BASE
352*24c3aca3SDave Liu #define CFG_PCI_MMIO_SIZE	0x10000000	/* 256M */
353*24c3aca3SDave Liu #define CFG_PCI_IO_BASE		0xE0300000
354*24c3aca3SDave Liu #define CFG_PCI_IO_PHYS		0xE0300000
355*24c3aca3SDave Liu #define CFG_PCI_IO_SIZE		0x100000	/* 1M */
356*24c3aca3SDave Liu 
357*24c3aca3SDave Liu #define CFG_PCI_SLV_MEM_LOCAL	CFG_SDRAM_BASE
358*24c3aca3SDave Liu #define CFG_PCI_SLV_MEM_BUS	0x00000000
359*24c3aca3SDave Liu #define CFG_PCI_SLV_MEM_SIZE	0x80000000
360*24c3aca3SDave Liu 
361*24c3aca3SDave Liu 
362*24c3aca3SDave Liu #ifdef CONFIG_PCI
363*24c3aca3SDave Liu 
364*24c3aca3SDave Liu #define CONFIG_NET_MULTI
365*24c3aca3SDave Liu #define CONFIG_PCI_PNP		/* do pci plug-and-play */
366*24c3aca3SDave Liu 
367*24c3aca3SDave Liu #undef CONFIG_EEPRO100
368*24c3aca3SDave Liu #undef CONFIG_PCI_SCAN_SHOW	/* show pci devices on startup */
369*24c3aca3SDave Liu #define CFG_PCI_SUBSYS_VENDORID	0x1957	/* Freescale */
370*24c3aca3SDave Liu 
371*24c3aca3SDave Liu #endif	/* CONFIG_PCI */
372*24c3aca3SDave Liu 
373*24c3aca3SDave Liu 
374*24c3aca3SDave Liu #ifndef CONFIG_NET_MULTI
375*24c3aca3SDave Liu #define CONFIG_NET_MULTI	1
376*24c3aca3SDave Liu #endif
377*24c3aca3SDave Liu 
378*24c3aca3SDave Liu /*
379*24c3aca3SDave Liu  * QE UEC ethernet configuration
380*24c3aca3SDave Liu  */
381*24c3aca3SDave Liu #define CONFIG_UEC_ETH
382*24c3aca3SDave Liu #define CONFIG_ETHPRIME		"Freescale GETH"
383*24c3aca3SDave Liu 
384*24c3aca3SDave Liu #define CONFIG_UEC_ETH1		/* ETH3 */
385*24c3aca3SDave Liu 
386*24c3aca3SDave Liu #ifdef CONFIG_UEC_ETH1
387*24c3aca3SDave Liu #define CFG_UEC1_UCC_NUM	2	/* UCC3 */
388*24c3aca3SDave Liu #define CFG_UEC1_RX_CLK		QE_CLK9
389*24c3aca3SDave Liu #define CFG_UEC1_TX_CLK		QE_CLK10
390*24c3aca3SDave Liu #define CFG_UEC1_ETH_TYPE	FAST_ETH
391*24c3aca3SDave Liu #define CFG_UEC1_PHY_ADDR	3
392*24c3aca3SDave Liu #define CFG_UEC1_INTERFACE_MODE	ENET_100_MII
393*24c3aca3SDave Liu #endif
394*24c3aca3SDave Liu 
395*24c3aca3SDave Liu #define CONFIG_UEC_ETH2		/* ETH4 */
396*24c3aca3SDave Liu 
397*24c3aca3SDave Liu #ifdef CONFIG_UEC_ETH2
398*24c3aca3SDave Liu #define CFG_UEC2_UCC_NUM	3	/* UCC4 */
399*24c3aca3SDave Liu #define CFG_UEC2_RX_CLK		QE_CLK7
400*24c3aca3SDave Liu #define CFG_UEC2_TX_CLK		QE_CLK8
401*24c3aca3SDave Liu #define CFG_UEC2_ETH_TYPE	FAST_ETH
402*24c3aca3SDave Liu #define CFG_UEC2_PHY_ADDR	4
403*24c3aca3SDave Liu #define CFG_UEC2_INTERFACE_MODE	ENET_100_MII
404*24c3aca3SDave Liu #endif
405*24c3aca3SDave Liu 
406*24c3aca3SDave Liu /*
407*24c3aca3SDave Liu  * Environment
408*24c3aca3SDave Liu  */
409*24c3aca3SDave Liu #ifndef CFG_RAMBOOT
410*24c3aca3SDave Liu 	#define CFG_ENV_IS_IN_FLASH	1
411*24c3aca3SDave Liu 	#define CFG_ENV_ADDR		(CFG_MONITOR_BASE + 0x40000)
412*24c3aca3SDave Liu 	#define CFG_ENV_SECT_SIZE	0x40000	/* 256K(one sector) for env */
413*24c3aca3SDave Liu 	#define CFG_ENV_SIZE		0x2000
414*24c3aca3SDave Liu #else
415*24c3aca3SDave Liu 	#define CFG_NO_FLASH		1	/* Flash is not usable now */
416*24c3aca3SDave Liu 	#define CFG_ENV_IS_NOWHERE	1	/* Store ENV in memory only */
417*24c3aca3SDave Liu 	#define CFG_ENV_ADDR		(CFG_MONITOR_BASE - 0x1000)
418*24c3aca3SDave Liu 	#define CFG_ENV_SIZE		0x2000
419*24c3aca3SDave Liu #endif
420*24c3aca3SDave Liu 
421*24c3aca3SDave Liu #define CONFIG_LOADS_ECHO	1	/* echo on for serial download */
422*24c3aca3SDave Liu #define CFG_LOADS_BAUD_CHANGE	1	/* allow baudrate change */
423*24c3aca3SDave Liu 
424*24c3aca3SDave Liu #if defined(CFG_RAMBOOT)
425*24c3aca3SDave Liu #if defined(CONFIG_PCI)
426*24c3aca3SDave Liu #define  CONFIG_COMMANDS	((CONFIG_CMD_DFL \
427*24c3aca3SDave Liu 				| CFG_CMD_PING \
428*24c3aca3SDave Liu 				| CFG_CMD_ASKENV \
429*24c3aca3SDave Liu 				| CFG_CMD_PCI \
430*24c3aca3SDave Liu 				| CFG_CMD_I2C) \
431*24c3aca3SDave Liu 				& \
432*24c3aca3SDave Liu 				~(CFG_CMD_ENV \
433*24c3aca3SDave Liu 				| CFG_CMD_LOADS))
434*24c3aca3SDave Liu #else
435*24c3aca3SDave Liu #define  CONFIG_COMMANDS	((CONFIG_CMD_DFL \
436*24c3aca3SDave Liu 				| CFG_CMD_PING \
437*24c3aca3SDave Liu 				| CFG_CMD_ASKENV \
438*24c3aca3SDave Liu 				| CFG_CMD_I2C) \
439*24c3aca3SDave Liu 				& \
440*24c3aca3SDave Liu 				~(CFG_CMD_ENV \
441*24c3aca3SDave Liu 				| CFG_CMD_LOADS))
442*24c3aca3SDave Liu #endif
443*24c3aca3SDave Liu #else
444*24c3aca3SDave Liu #if defined(CONFIG_PCI)
445*24c3aca3SDave Liu #define  CONFIG_COMMANDS	(CONFIG_CMD_DFL \
446*24c3aca3SDave Liu 				| CFG_CMD_PCI \
447*24c3aca3SDave Liu 				| CFG_CMD_PING \
448*24c3aca3SDave Liu 				| CFG_CMD_ASKENV \
449*24c3aca3SDave Liu 				| CFG_CMD_I2C)
450*24c3aca3SDave Liu #else
451*24c3aca3SDave Liu #define  CONFIG_COMMANDS	(CONFIG_CMD_DFL \
452*24c3aca3SDave Liu 				| CFG_CMD_PING \
453*24c3aca3SDave Liu 				| CFG_CMD_ASKENV \
454*24c3aca3SDave Liu 				| CFG_CMD_I2C  )
455*24c3aca3SDave Liu #endif
456*24c3aca3SDave Liu #endif
457*24c3aca3SDave Liu 
458*24c3aca3SDave Liu #include <cmd_confdefs.h>
459*24c3aca3SDave Liu 
460*24c3aca3SDave Liu #undef CONFIG_WATCHDOG		/* watchdog disabled */
461*24c3aca3SDave Liu 
462*24c3aca3SDave Liu /*
463*24c3aca3SDave Liu  * Miscellaneous configurable options
464*24c3aca3SDave Liu  */
465*24c3aca3SDave Liu #define CFG_LONGHELP		/* undef to save memory */
466*24c3aca3SDave Liu #define CFG_LOAD_ADDR		0x2000000	/* default load address */
467*24c3aca3SDave Liu #define CFG_PROMPT		"=> "	/* Monitor Command Prompt */
468*24c3aca3SDave Liu 
469*24c3aca3SDave Liu #if (CONFIG_COMMANDS & CFG_CMD_KGDB)
470*24c3aca3SDave Liu 	#define CFG_CBSIZE	1024	/* Console I/O Buffer Size */
471*24c3aca3SDave Liu #else
472*24c3aca3SDave Liu 	#define CFG_CBSIZE	256	/* Console I/O Buffer Size */
473*24c3aca3SDave Liu #endif
474*24c3aca3SDave Liu 
475*24c3aca3SDave Liu #define CFG_PBSIZE (CFG_CBSIZE+sizeof(CFG_PROMPT)+16)	/* Print Buffer Size */
476*24c3aca3SDave Liu #define CFG_MAXARGS	16		/* max number of command args */
477*24c3aca3SDave Liu #define CFG_BARGSIZE	CFG_CBSIZE	/* Boot Argument Buffer Size */
478*24c3aca3SDave Liu #define CFG_HZ		1000		/* decrementer freq: 1ms ticks */
479*24c3aca3SDave Liu 
480*24c3aca3SDave Liu /*
481*24c3aca3SDave Liu  * For booting Linux, the board info and command line data
482*24c3aca3SDave Liu  * have to be in the first 8 MB of memory, since this is
483*24c3aca3SDave Liu  * the maximum mapped by the Linux kernel during initialization.
484*24c3aca3SDave Liu  */
485*24c3aca3SDave Liu #define CFG_BOOTMAPSZ		(8 << 20)	/* Initial Memory map for Linux */
486*24c3aca3SDave Liu 
487*24c3aca3SDave Liu /*
488*24c3aca3SDave Liu  * Core HID Setup
489*24c3aca3SDave Liu  */
490*24c3aca3SDave Liu #define CFG_HID0_INIT		0x000000000
491*24c3aca3SDave Liu #define CFG_HID0_FINAL		HID0_ENABLE_MACHINE_CHECK
492*24c3aca3SDave Liu #define CFG_HID2		HID2_HBE
493*24c3aca3SDave Liu 
494*24c3aca3SDave Liu /*
495*24c3aca3SDave Liu  * Cache Config
496*24c3aca3SDave Liu  */
497*24c3aca3SDave Liu #define CFG_DCACHE_SIZE		16384
498*24c3aca3SDave Liu #define CFG_CACHELINE_SIZE	32
499*24c3aca3SDave Liu #if (CONFIG_COMMANDS & CFG_CMD_KGDB)
500*24c3aca3SDave Liu #define CFG_CACHELINE_SHIFT	5	/*log base 2 of the above value */
501*24c3aca3SDave Liu #endif
502*24c3aca3SDave Liu 
503*24c3aca3SDave Liu /*
504*24c3aca3SDave Liu  * MMU Setup
505*24c3aca3SDave Liu  */
506*24c3aca3SDave Liu 
507*24c3aca3SDave Liu /* DDR: cache cacheable */
508*24c3aca3SDave Liu #define CFG_IBAT0L	(CFG_SDRAM_BASE | BATL_PP_10 | BATL_MEMCOHERENCE)
509*24c3aca3SDave Liu #define CFG_IBAT0U	(CFG_SDRAM_BASE | BATU_BL_256M | BATU_VS | BATU_VP)
510*24c3aca3SDave Liu #define CFG_DBAT0L	CFG_IBAT0L
511*24c3aca3SDave Liu #define CFG_DBAT0U	CFG_IBAT0U
512*24c3aca3SDave Liu 
513*24c3aca3SDave Liu /* IMMRBAR & PCI IO: cache-inhibit and guarded */
514*24c3aca3SDave Liu #define CFG_IBAT1L	(CFG_IMMR | BATL_PP_10 | \
515*24c3aca3SDave Liu 			BATL_CACHEINHIBIT | BATL_GUARDEDSTORAGE)
516*24c3aca3SDave Liu #define CFG_IBAT1U	(CFG_IMMR | BATU_BL_4M | BATU_VS | BATU_VP)
517*24c3aca3SDave Liu #define CFG_DBAT1L	CFG_IBAT1L
518*24c3aca3SDave Liu #define CFG_DBAT1U	CFG_IBAT1U
519*24c3aca3SDave Liu 
520*24c3aca3SDave Liu /* BCSR: cache-inhibit and guarded */
521*24c3aca3SDave Liu #define CFG_IBAT2L	(CFG_BCSR | BATL_PP_10 | \
522*24c3aca3SDave Liu 			BATL_CACHEINHIBIT | BATL_GUARDEDSTORAGE)
523*24c3aca3SDave Liu #define CFG_IBAT2U	(CFG_BCSR | BATU_BL_128K | BATU_VS | BATU_VP)
524*24c3aca3SDave Liu #define CFG_DBAT2L	CFG_IBAT2L
525*24c3aca3SDave Liu #define CFG_DBAT2U	CFG_IBAT2U
526*24c3aca3SDave Liu 
527*24c3aca3SDave Liu /* FLASH: icache cacheable, but dcache-inhibit and guarded */
528*24c3aca3SDave Liu #define CFG_IBAT3L	(CFG_FLASH_BASE | BATL_PP_10 | BATL_MEMCOHERENCE)
529*24c3aca3SDave Liu #define CFG_IBAT3U	(CFG_FLASH_BASE | BATU_BL_32M | BATU_VS | BATU_VP)
530*24c3aca3SDave Liu #define CFG_DBAT3L	(CFG_FLASH_BASE | BATL_PP_10 | \
531*24c3aca3SDave Liu 			BATL_CACHEINHIBIT | BATL_GUARDEDSTORAGE)
532*24c3aca3SDave Liu #define CFG_DBAT3U	CFG_IBAT3U
533*24c3aca3SDave Liu 
534*24c3aca3SDave Liu #define CFG_IBAT4L	(0)
535*24c3aca3SDave Liu #define CFG_IBAT4U	(0)
536*24c3aca3SDave Liu #define CFG_DBAT4L	CFG_IBAT4L
537*24c3aca3SDave Liu #define CFG_DBAT4U	CFG_IBAT4U
538*24c3aca3SDave Liu 
539*24c3aca3SDave Liu /* Stack in dcache: cacheable, no memory coherence */
540*24c3aca3SDave Liu #define CFG_IBAT5L	(CFG_INIT_RAM_ADDR | BATL_PP_10)
541*24c3aca3SDave Liu #define CFG_IBAT5U	(CFG_INIT_RAM_ADDR | BATU_BL_128K | BATU_VS | BATU_VP)
542*24c3aca3SDave Liu #define CFG_DBAT5L	CFG_IBAT5L
543*24c3aca3SDave Liu #define CFG_DBAT5U	CFG_IBAT5U
544*24c3aca3SDave Liu 
545*24c3aca3SDave Liu #ifdef CONFIG_PCI
546*24c3aca3SDave Liu /* PCI MEM space: cacheable */
547*24c3aca3SDave Liu #define CFG_IBAT6L	(CFG_PCI_MEM_PHYS | BATL_PP_10 | BATL_MEMCOHERENCE)
548*24c3aca3SDave Liu #define CFG_IBAT6U	(CFG_PCI_MEM_PHYS | BATU_BL_256M | BATU_VS | BATU_VP)
549*24c3aca3SDave Liu #define CFG_DBAT6L	CFG_IBAT6L
550*24c3aca3SDave Liu #define CFG_DBAT6U	CFG_IBAT6U
551*24c3aca3SDave Liu /* PCI MMIO space: cache-inhibit and guarded */
552*24c3aca3SDave Liu #define CFG_IBAT7L	(CFG_PCI_MMIO_PHYS | BATL_PP_10 | \
553*24c3aca3SDave Liu 			BATL_CACHEINHIBIT | BATL_GUARDEDSTORAGE)
554*24c3aca3SDave Liu #define CFG_IBAT7U	(CFG_PCI_MMIO_PHYS | BATU_BL_256M | BATU_VS | BATU_VP)
555*24c3aca3SDave Liu #define CFG_DBAT7L	CFG_IBAT7L
556*24c3aca3SDave Liu #define CFG_DBAT7U	CFG_IBAT7U
557*24c3aca3SDave Liu #else
558*24c3aca3SDave Liu #define CFG_IBAT6L	(0)
559*24c3aca3SDave Liu #define CFG_IBAT6U	(0)
560*24c3aca3SDave Liu #define CFG_IBAT7L	(0)
561*24c3aca3SDave Liu #define CFG_IBAT7U	(0)
562*24c3aca3SDave Liu #define CFG_DBAT6L	CFG_IBAT6L
563*24c3aca3SDave Liu #define CFG_DBAT6U	CFG_IBAT6U
564*24c3aca3SDave Liu #define CFG_DBAT7L	CFG_IBAT7L
565*24c3aca3SDave Liu #define CFG_DBAT7U	CFG_IBAT7U
566*24c3aca3SDave Liu #endif
567*24c3aca3SDave Liu 
568*24c3aca3SDave Liu /*
569*24c3aca3SDave Liu  * Internal Definitions
570*24c3aca3SDave Liu  *
571*24c3aca3SDave Liu  * Boot Flags
572*24c3aca3SDave Liu  */
573*24c3aca3SDave Liu #define BOOTFLAG_COLD	0x01	/* Normal Power-On: Boot from FLASH */
574*24c3aca3SDave Liu #define BOOTFLAG_WARM	0x02	/* Software reboot */
575*24c3aca3SDave Liu 
576*24c3aca3SDave Liu #if (CONFIG_COMMANDS & CFG_CMD_KGDB)
577*24c3aca3SDave Liu #define CONFIG_KGDB_BAUDRATE	230400	/* speed of kgdb serial port */
578*24c3aca3SDave Liu #define CONFIG_KGDB_SER_INDEX	2	/* which serial port to use */
579*24c3aca3SDave Liu #endif
580*24c3aca3SDave Liu 
581*24c3aca3SDave Liu /*
582*24c3aca3SDave Liu  * Environment Configuration
583*24c3aca3SDave Liu  */
584*24c3aca3SDave Liu 
585*24c3aca3SDave Liu #define CONFIG_ENV_OVERWRITE
586*24c3aca3SDave Liu 
587*24c3aca3SDave Liu #if defined(CONFIG_UEC_ETH)
588*24c3aca3SDave Liu #define CONFIG_ETHADDR	00:04:9f:ef:03:01
589*24c3aca3SDave Liu #define CONFIG_HAS_ETH1
590*24c3aca3SDave Liu #define CONFIG_ETH1ADDR	00:04:9f:ef:03:02
591*24c3aca3SDave Liu #endif
592*24c3aca3SDave Liu 
593*24c3aca3SDave Liu #define CONFIG_BAUDRATE	115200
594*24c3aca3SDave Liu 
595*24c3aca3SDave Liu #define CONFIG_LOADADDR	200000	/* default location for tftp and bootm */
596*24c3aca3SDave Liu 
597*24c3aca3SDave Liu #define CONFIG_BOOTDELAY 6 	/* -1 disables auto-boot */
598*24c3aca3SDave Liu #undef  CONFIG_BOOTARGS		/* the boot command will set bootargs */
599*24c3aca3SDave Liu 
600*24c3aca3SDave Liu #define CONFIG_EXTRA_ENV_SETTINGS					\
601*24c3aca3SDave Liu    "netdev=eth0\0"							\
602*24c3aca3SDave Liu    "consoledev=ttyS0\0"							\
603*24c3aca3SDave Liu    "ramdiskaddr=1000000\0"						\
604*24c3aca3SDave Liu    "ramdiskfile=ramfs.83xx\0"						\
605*24c3aca3SDave Liu    "fdtaddr=400000\0"							\
606*24c3aca3SDave Liu    "fdtfile=mpc832xemds.dtb\0"						\
607*24c3aca3SDave Liu    ""
608*24c3aca3SDave Liu 
609*24c3aca3SDave Liu #define CONFIG_NFSBOOTCOMMAND						\
610*24c3aca3SDave Liu    "setenv bootargs root=/dev/nfs rw "					\
611*24c3aca3SDave Liu       "nfsroot=$serverip:$rootpath "					\
612*24c3aca3SDave Liu       "ip=$ipaddr:$serverip:$gatewayip:$netmask:$hostname:$netdev:off "	\
613*24c3aca3SDave Liu       "console=$consoledev,$baudrate $othbootargs;"			\
614*24c3aca3SDave Liu    "tftp $loadaddr $bootfile;"						\
615*24c3aca3SDave Liu    "tftp $fdtaddr $fdtfile;"						\
616*24c3aca3SDave Liu    "bootm $loadaddr - $fdtaddr"
617*24c3aca3SDave Liu 
618*24c3aca3SDave Liu #define CONFIG_RAMBOOTCOMMAND						\
619*24c3aca3SDave Liu    "setenv bootargs root=/dev/ram rw "					\
620*24c3aca3SDave Liu       "console=$consoledev,$baudrate $othbootargs;"			\
621*24c3aca3SDave Liu    "tftp $ramdiskaddr $ramdiskfile;"					\
622*24c3aca3SDave Liu    "tftp $loadaddr $bootfile;"						\
623*24c3aca3SDave Liu    "tftp $fdtaddr $fdtfile;"						\
624*24c3aca3SDave Liu    "bootm $loadaddr $ramdiskaddr $fdtaddr"
625*24c3aca3SDave Liu 
626*24c3aca3SDave Liu 
627*24c3aca3SDave Liu #define CONFIG_BOOTCOMMAND CONFIG_NFSBOOTCOMMAND
628*24c3aca3SDave Liu 
629*24c3aca3SDave Liu #endif	/* __CONFIG_H */
630