xref: /OK3568_Linux_fs/u-boot/include/configs/p1_p2_rdb_pc.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun /*
2*4882a593Smuzhiyun  * Copyright 2010-2011 Freescale Semiconductor, Inc.
3*4882a593Smuzhiyun  *
4*4882a593Smuzhiyun  * SPDX-License-Identifier:	GPL-2.0+
5*4882a593Smuzhiyun  */
6*4882a593Smuzhiyun 
7*4882a593Smuzhiyun /*
8*4882a593Smuzhiyun  * QorIQ RDB boards configuration file
9*4882a593Smuzhiyun  */
10*4882a593Smuzhiyun #ifndef __CONFIG_H
11*4882a593Smuzhiyun #define __CONFIG_H
12*4882a593Smuzhiyun 
13*4882a593Smuzhiyun #if defined(CONFIG_TARGET_P1020MBG)
14*4882a593Smuzhiyun #define CONFIG_BOARDNAME "P1020MBG-PC"
15*4882a593Smuzhiyun #define CONFIG_VSC7385_ENET
16*4882a593Smuzhiyun #define CONFIG_SLIC
17*4882a593Smuzhiyun #define __SW_BOOT_MASK		0x03
18*4882a593Smuzhiyun #define __SW_BOOT_NOR		0xe4
19*4882a593Smuzhiyun #define __SW_BOOT_SD		0x54
20*4882a593Smuzhiyun #define CONFIG_SYS_L2_SIZE	(256 << 10)
21*4882a593Smuzhiyun #endif
22*4882a593Smuzhiyun 
23*4882a593Smuzhiyun #if defined(CONFIG_TARGET_P1020UTM)
24*4882a593Smuzhiyun #define CONFIG_BOARDNAME "P1020UTM-PC"
25*4882a593Smuzhiyun #define __SW_BOOT_MASK		0x03
26*4882a593Smuzhiyun #define __SW_BOOT_NOR		0xe0
27*4882a593Smuzhiyun #define __SW_BOOT_SD		0x50
28*4882a593Smuzhiyun #define CONFIG_SYS_L2_SIZE	(256 << 10)
29*4882a593Smuzhiyun #endif
30*4882a593Smuzhiyun 
31*4882a593Smuzhiyun #if defined(CONFIG_TARGET_P1020RDB_PC)
32*4882a593Smuzhiyun #define CONFIG_BOARDNAME "P1020RDB-PC"
33*4882a593Smuzhiyun #define CONFIG_NAND_FSL_ELBC
34*4882a593Smuzhiyun #define CONFIG_VSC7385_ENET
35*4882a593Smuzhiyun #define CONFIG_SLIC
36*4882a593Smuzhiyun #define __SW_BOOT_MASK		0x03
37*4882a593Smuzhiyun #define __SW_BOOT_NOR		0x5c
38*4882a593Smuzhiyun #define __SW_BOOT_SPI		0x1c
39*4882a593Smuzhiyun #define __SW_BOOT_SD		0x9c
40*4882a593Smuzhiyun #define __SW_BOOT_NAND		0xec
41*4882a593Smuzhiyun #define __SW_BOOT_PCIE		0x6c
42*4882a593Smuzhiyun #define CONFIG_SYS_L2_SIZE	(256 << 10)
43*4882a593Smuzhiyun #endif
44*4882a593Smuzhiyun 
45*4882a593Smuzhiyun /*
46*4882a593Smuzhiyun  * P1020RDB-PD board has user selectable switches for evaluating different
47*4882a593Smuzhiyun  * frequency and boot options for the P1020 device. The table that
48*4882a593Smuzhiyun  * follow describe the available options. The front six binary number was in
49*4882a593Smuzhiyun  * accordance with SW3[1:6].
50*4882a593Smuzhiyun  * 111101 533 533 267 667 NOR Core0 boot; Core1 hold-off
51*4882a593Smuzhiyun  * 101101 667 667 333 667 NOR Core0 boot; Core1 hold-off
52*4882a593Smuzhiyun  * 011001 800 800 400 667 NOR Core0 boot; Core1 hold-off
53*4882a593Smuzhiyun  * 001001 800 800 400 667 SD/MMC Core0 boot; Core1 hold-off
54*4882a593Smuzhiyun  * 001101 800 800 400 667 SPI Core0 boot; Core1 hold-off
55*4882a593Smuzhiyun  * 010001 800 800 400 667 NAND Core0 boot; Core1 hold-off
56*4882a593Smuzhiyun  * 011101 800 800 400 667 PCIe-2 Core0 boot; Core1 hold-off
57*4882a593Smuzhiyun  */
58*4882a593Smuzhiyun #if defined(CONFIG_TARGET_P1020RDB_PD)
59*4882a593Smuzhiyun #define CONFIG_BOARDNAME "P1020RDB-PD"
60*4882a593Smuzhiyun #define CONFIG_NAND_FSL_ELBC
61*4882a593Smuzhiyun #define CONFIG_VSC7385_ENET
62*4882a593Smuzhiyun #define CONFIG_SLIC
63*4882a593Smuzhiyun #define __SW_BOOT_MASK		0x03
64*4882a593Smuzhiyun #define __SW_BOOT_NOR		0x64
65*4882a593Smuzhiyun #define __SW_BOOT_SPI		0x34
66*4882a593Smuzhiyun #define __SW_BOOT_SD		0x24
67*4882a593Smuzhiyun #define __SW_BOOT_NAND		0x44
68*4882a593Smuzhiyun #define __SW_BOOT_PCIE		0x74
69*4882a593Smuzhiyun #define CONFIG_SYS_L2_SIZE	(256 << 10)
70*4882a593Smuzhiyun /*
71*4882a593Smuzhiyun  * Dynamic MTD Partition support with mtdparts
72*4882a593Smuzhiyun  */
73*4882a593Smuzhiyun #define CONFIG_FLASH_CFI_MTD
74*4882a593Smuzhiyun #define MTDIDS_DEFAULT "nor0=ec000000.nor"
75*4882a593Smuzhiyun #define MTDPARTS_DEFAULT "mtdparts=ec000000.nor:128k(dtb),6016k(kernel)," \
76*4882a593Smuzhiyun 			"57088k(fs),1m(vsc7385-firmware),1280k(u-boot)"
77*4882a593Smuzhiyun #endif
78*4882a593Smuzhiyun 
79*4882a593Smuzhiyun #if defined(CONFIG_TARGET_P1021RDB)
80*4882a593Smuzhiyun #define CONFIG_BOARDNAME "P1021RDB-PC"
81*4882a593Smuzhiyun #define CONFIG_NAND_FSL_ELBC
82*4882a593Smuzhiyun #define CONFIG_QE
83*4882a593Smuzhiyun #define CONFIG_VSC7385_ENET
84*4882a593Smuzhiyun #define CONFIG_SYS_LBC_LBCR	0x00080000	/* Implement conversion of
85*4882a593Smuzhiyun 						addresses in the LBC */
86*4882a593Smuzhiyun #define __SW_BOOT_MASK		0x03
87*4882a593Smuzhiyun #define __SW_BOOT_NOR		0x5c
88*4882a593Smuzhiyun #define __SW_BOOT_SPI		0x1c
89*4882a593Smuzhiyun #define __SW_BOOT_SD		0x9c
90*4882a593Smuzhiyun #define __SW_BOOT_NAND		0xec
91*4882a593Smuzhiyun #define __SW_BOOT_PCIE		0x6c
92*4882a593Smuzhiyun #define CONFIG_SYS_L2_SIZE	(256 << 10)
93*4882a593Smuzhiyun /*
94*4882a593Smuzhiyun  * Dynamic MTD Partition support with mtdparts
95*4882a593Smuzhiyun  */
96*4882a593Smuzhiyun #define CONFIG_FLASH_CFI_MTD
97*4882a593Smuzhiyun #ifdef CONFIG_PHYS_64BIT
98*4882a593Smuzhiyun #define MTDIDS_DEFAULT "nor0=fef000000.nor"
99*4882a593Smuzhiyun #define MTDPARTS_DEFAULT "mtdparts=fef000000.nor:256k(vsc7385-firmware)," \
100*4882a593Smuzhiyun 			"256k(dtb),4608k(kernel),9728k(fs)," \
101*4882a593Smuzhiyun 			"256k(qe-ucode-firmware),1280k(u-boot)"
102*4882a593Smuzhiyun #else
103*4882a593Smuzhiyun #define MTDIDS_DEFAULT "nor0=ef000000.nor"
104*4882a593Smuzhiyun #define MTDPARTS_DEFAULT "mtdparts=ef000000.nor:256k(vsc7385-firmware)," \
105*4882a593Smuzhiyun 			"256k(dtb),4608k(kernel),9728k(fs)," \
106*4882a593Smuzhiyun 			"256k(qe-ucode-firmware),1280k(u-boot)"
107*4882a593Smuzhiyun #endif
108*4882a593Smuzhiyun #endif
109*4882a593Smuzhiyun 
110*4882a593Smuzhiyun #if defined(CONFIG_TARGET_P1024RDB)
111*4882a593Smuzhiyun #define CONFIG_BOARDNAME "P1024RDB"
112*4882a593Smuzhiyun #define CONFIG_NAND_FSL_ELBC
113*4882a593Smuzhiyun #define CONFIG_SLIC
114*4882a593Smuzhiyun #define __SW_BOOT_MASK		0xf3
115*4882a593Smuzhiyun #define __SW_BOOT_NOR		0x00
116*4882a593Smuzhiyun #define __SW_BOOT_SPI		0x08
117*4882a593Smuzhiyun #define __SW_BOOT_SD		0x04
118*4882a593Smuzhiyun #define __SW_BOOT_NAND		0x0c
119*4882a593Smuzhiyun #define CONFIG_SYS_L2_SIZE	(256 << 10)
120*4882a593Smuzhiyun #endif
121*4882a593Smuzhiyun 
122*4882a593Smuzhiyun #if defined(CONFIG_TARGET_P1025RDB)
123*4882a593Smuzhiyun #define CONFIG_BOARDNAME "P1025RDB"
124*4882a593Smuzhiyun #define CONFIG_NAND_FSL_ELBC
125*4882a593Smuzhiyun #define CONFIG_QE
126*4882a593Smuzhiyun #define CONFIG_SLIC
127*4882a593Smuzhiyun 
128*4882a593Smuzhiyun #define CONFIG_SYS_LBC_LBCR	0x00080000	/* Implement conversion of
129*4882a593Smuzhiyun 						addresses in the LBC */
130*4882a593Smuzhiyun #define __SW_BOOT_MASK		0xf3
131*4882a593Smuzhiyun #define __SW_BOOT_NOR		0x00
132*4882a593Smuzhiyun #define __SW_BOOT_SPI		0x08
133*4882a593Smuzhiyun #define __SW_BOOT_SD		0x04
134*4882a593Smuzhiyun #define __SW_BOOT_NAND		0x0c
135*4882a593Smuzhiyun #define CONFIG_SYS_L2_SIZE	(256 << 10)
136*4882a593Smuzhiyun #endif
137*4882a593Smuzhiyun 
138*4882a593Smuzhiyun #if defined(CONFIG_TARGET_P2020RDB)
139*4882a593Smuzhiyun #define CONFIG_BOARDNAME "P2020RDB-PC"
140*4882a593Smuzhiyun #define CONFIG_NAND_FSL_ELBC
141*4882a593Smuzhiyun #define CONFIG_VSC7385_ENET
142*4882a593Smuzhiyun #define __SW_BOOT_MASK		0x03
143*4882a593Smuzhiyun #define __SW_BOOT_NOR		0xc8
144*4882a593Smuzhiyun #define __SW_BOOT_SPI		0x28
145*4882a593Smuzhiyun #define __SW_BOOT_SD		0x68 /* or 0x18 */
146*4882a593Smuzhiyun #define __SW_BOOT_NAND		0xe8
147*4882a593Smuzhiyun #define __SW_BOOT_PCIE		0xa8
148*4882a593Smuzhiyun #define CONFIG_SYS_L2_SIZE	(512 << 10)
149*4882a593Smuzhiyun /*
150*4882a593Smuzhiyun  * Dynamic MTD Partition support with mtdparts
151*4882a593Smuzhiyun  */
152*4882a593Smuzhiyun #define CONFIG_FLASH_CFI_MTD
153*4882a593Smuzhiyun #ifdef CONFIG_PHYS_64BIT
154*4882a593Smuzhiyun #define MTDIDS_DEFAULT "nor0=fef000000.nor"
155*4882a593Smuzhiyun #define MTDPARTS_DEFAULT "mtdparts=fef000000.nor:256k(vsc7385-firmware)," \
156*4882a593Smuzhiyun 			"256k(dtb),4608k(kernel),9984k(fs),1280k(u-boot)"
157*4882a593Smuzhiyun #else
158*4882a593Smuzhiyun #define MTDIDS_DEFAULT "nor0=ef000000.nor"
159*4882a593Smuzhiyun #define MTDPARTS_DEFAULT "mtdparts=ef000000.nor:256k(vsc7385-firmware)," \
160*4882a593Smuzhiyun 			"256k(dtb),4608k(kernel),9984k(fs),1280k(u-boot)"
161*4882a593Smuzhiyun #endif
162*4882a593Smuzhiyun #endif
163*4882a593Smuzhiyun 
164*4882a593Smuzhiyun #ifdef CONFIG_SDCARD
165*4882a593Smuzhiyun #define CONFIG_SPL_MMC_MINIMAL
166*4882a593Smuzhiyun #define CONFIG_SPL_FLUSH_IMAGE
167*4882a593Smuzhiyun #define CONFIG_SPL_TARGET		"u-boot-with-spl.bin"
168*4882a593Smuzhiyun #define CONFIG_SYS_TEXT_BASE		0x11001000
169*4882a593Smuzhiyun #define CONFIG_SPL_TEXT_BASE		0xf8f81000
170*4882a593Smuzhiyun #define CONFIG_SPL_PAD_TO		0x20000
171*4882a593Smuzhiyun #define CONFIG_SPL_MAX_SIZE		(128 * 1024)
172*4882a593Smuzhiyun #define CONFIG_SYS_MMC_U_BOOT_SIZE	(768 << 10)
173*4882a593Smuzhiyun #define CONFIG_SYS_MMC_U_BOOT_DST	(0x11000000)
174*4882a593Smuzhiyun #define CONFIG_SYS_MMC_U_BOOT_START	(0x11000000)
175*4882a593Smuzhiyun #define CONFIG_SYS_MMC_U_BOOT_OFFS	(128 << 10)
176*4882a593Smuzhiyun #define CONFIG_SYS_MPC85XX_NO_RESETVEC
177*4882a593Smuzhiyun #define CONFIG_SYS_LDSCRIPT	"arch/powerpc/cpu/mpc85xx/u-boot.lds"
178*4882a593Smuzhiyun #define CONFIG_SPL_MMC_BOOT
179*4882a593Smuzhiyun #ifdef CONFIG_SPL_BUILD
180*4882a593Smuzhiyun #define CONFIG_SPL_COMMON_INIT_DDR
181*4882a593Smuzhiyun #endif
182*4882a593Smuzhiyun #endif
183*4882a593Smuzhiyun 
184*4882a593Smuzhiyun #ifdef CONFIG_SPIFLASH
185*4882a593Smuzhiyun #define CONFIG_SPL_SPI_FLASH_MINIMAL
186*4882a593Smuzhiyun #define CONFIG_SPL_FLUSH_IMAGE
187*4882a593Smuzhiyun #define CONFIG_SPL_TARGET		"u-boot-with-spl.bin"
188*4882a593Smuzhiyun #define CONFIG_SYS_TEXT_BASE		0x11001000
189*4882a593Smuzhiyun #define CONFIG_SPL_TEXT_BASE		0xf8f81000
190*4882a593Smuzhiyun #define CONFIG_SPL_PAD_TO		0x20000
191*4882a593Smuzhiyun #define CONFIG_SPL_MAX_SIZE		(128 * 1024)
192*4882a593Smuzhiyun #define CONFIG_SYS_SPI_FLASH_U_BOOT_SIZE	(768 << 10)
193*4882a593Smuzhiyun #define CONFIG_SYS_SPI_FLASH_U_BOOT_DST		(0x11000000)
194*4882a593Smuzhiyun #define CONFIG_SYS_SPI_FLASH_U_BOOT_START	(0x11000000)
195*4882a593Smuzhiyun #define CONFIG_SYS_SPI_FLASH_U_BOOT_OFFS	(128 << 10)
196*4882a593Smuzhiyun #define CONFIG_SYS_MPC85XX_NO_RESETVEC
197*4882a593Smuzhiyun #define CONFIG_SYS_LDSCRIPT	"arch/powerpc/cpu/mpc85xx/u-boot.lds"
198*4882a593Smuzhiyun #define CONFIG_SPL_SPI_BOOT
199*4882a593Smuzhiyun #ifdef CONFIG_SPL_BUILD
200*4882a593Smuzhiyun #define CONFIG_SPL_COMMON_INIT_DDR
201*4882a593Smuzhiyun #endif
202*4882a593Smuzhiyun #endif
203*4882a593Smuzhiyun 
204*4882a593Smuzhiyun #ifdef CONFIG_NAND
205*4882a593Smuzhiyun #ifdef CONFIG_TPL_BUILD
206*4882a593Smuzhiyun #define CONFIG_SPL_NAND_BOOT
207*4882a593Smuzhiyun #define CONFIG_SPL_FLUSH_IMAGE
208*4882a593Smuzhiyun #define CONFIG_SPL_NAND_INIT
209*4882a593Smuzhiyun #define CONFIG_SPL_COMMON_INIT_DDR
210*4882a593Smuzhiyun #define CONFIG_SPL_MAX_SIZE		(128 << 10)
211*4882a593Smuzhiyun #define CONFIG_SPL_TEXT_BASE		0xf8f81000
212*4882a593Smuzhiyun #define CONFIG_SYS_MPC85XX_NO_RESETVEC
213*4882a593Smuzhiyun #define CONFIG_SYS_NAND_U_BOOT_SIZE	(832 << 10)
214*4882a593Smuzhiyun #define CONFIG_SYS_NAND_U_BOOT_DST	(0x11000000)
215*4882a593Smuzhiyun #define CONFIG_SYS_NAND_U_BOOT_START	(0x11000000)
216*4882a593Smuzhiyun #define CONFIG_SYS_NAND_U_BOOT_OFFS	((128 + 128) << 10)
217*4882a593Smuzhiyun #elif defined(CONFIG_SPL_BUILD)
218*4882a593Smuzhiyun #define CONFIG_SPL_INIT_MINIMAL
219*4882a593Smuzhiyun #define CONFIG_SPL_FLUSH_IMAGE
220*4882a593Smuzhiyun #define CONFIG_SPL_TARGET		"u-boot-with-spl.bin"
221*4882a593Smuzhiyun #define CONFIG_SPL_TEXT_BASE		0xff800000
222*4882a593Smuzhiyun #define CONFIG_SPL_MAX_SIZE		4096
223*4882a593Smuzhiyun #define CONFIG_SYS_NAND_U_BOOT_SIZE	(128 << 10)
224*4882a593Smuzhiyun #define CONFIG_SYS_NAND_U_BOOT_DST	0xf8f80000
225*4882a593Smuzhiyun #define CONFIG_SYS_NAND_U_BOOT_START	0xf8f80000
226*4882a593Smuzhiyun #define CONFIG_SYS_NAND_U_BOOT_OFFS	(128 << 10)
227*4882a593Smuzhiyun #endif /* not CONFIG_TPL_BUILD */
228*4882a593Smuzhiyun 
229*4882a593Smuzhiyun #define CONFIG_SPL_PAD_TO		0x20000
230*4882a593Smuzhiyun #define CONFIG_TPL_PAD_TO		0x20000
231*4882a593Smuzhiyun #define CONFIG_SPL_TARGET		"u-boot-with-spl.bin"
232*4882a593Smuzhiyun #define CONFIG_SYS_TEXT_BASE		0x11001000
233*4882a593Smuzhiyun #define CONFIG_SYS_LDSCRIPT	"arch/powerpc/cpu/mpc85xx/u-boot-nand.lds"
234*4882a593Smuzhiyun #endif
235*4882a593Smuzhiyun 
236*4882a593Smuzhiyun #ifndef CONFIG_SYS_TEXT_BASE
237*4882a593Smuzhiyun #define CONFIG_SYS_TEXT_BASE		0xeff40000
238*4882a593Smuzhiyun #endif
239*4882a593Smuzhiyun 
240*4882a593Smuzhiyun #ifndef CONFIG_RESET_VECTOR_ADDRESS
241*4882a593Smuzhiyun #define CONFIG_RESET_VECTOR_ADDRESS	0xeffffffc
242*4882a593Smuzhiyun #endif
243*4882a593Smuzhiyun 
244*4882a593Smuzhiyun #ifndef CONFIG_SYS_MONITOR_BASE
245*4882a593Smuzhiyun #ifdef CONFIG_SPL_BUILD
246*4882a593Smuzhiyun #define CONFIG_SYS_MONITOR_BASE	CONFIG_SPL_TEXT_BASE
247*4882a593Smuzhiyun #else
248*4882a593Smuzhiyun #define CONFIG_SYS_MONITOR_BASE	CONFIG_SYS_TEXT_BASE	/* start of monitor */
249*4882a593Smuzhiyun #endif
250*4882a593Smuzhiyun #endif
251*4882a593Smuzhiyun 
252*4882a593Smuzhiyun #define CONFIG_MP
253*4882a593Smuzhiyun 
254*4882a593Smuzhiyun #define CONFIG_PCIE1	/* PCIE controller 1 (slot 1) */
255*4882a593Smuzhiyun #define CONFIG_PCIE2	/* PCIE controller 2 (slot 2) */
256*4882a593Smuzhiyun #define CONFIG_FSL_PCI_INIT	/* Use common FSL init code */
257*4882a593Smuzhiyun #define CONFIG_PCI_INDIRECT_BRIDGE	/* indirect PCI bridge support */
258*4882a593Smuzhiyun #define CONFIG_FSL_PCIE_RESET	/* need PCIe reset errata */
259*4882a593Smuzhiyun #define CONFIG_SYS_PCI_64BIT	/* enable 64-bit PCI resources */
260*4882a593Smuzhiyun 
261*4882a593Smuzhiyun #define CONFIG_TSEC_ENET	/* tsec ethernet support */
262*4882a593Smuzhiyun #define CONFIG_ENV_OVERWRITE
263*4882a593Smuzhiyun 
264*4882a593Smuzhiyun #define CONFIG_SATA_SIL
265*4882a593Smuzhiyun #define CONFIG_SYS_SATA_MAX_DEVICE	2
266*4882a593Smuzhiyun #define CONFIG_LIBATA
267*4882a593Smuzhiyun #define CONFIG_LBA48
268*4882a593Smuzhiyun 
269*4882a593Smuzhiyun #if defined(CONFIG_TARGET_P2020RDB)
270*4882a593Smuzhiyun #define CONFIG_SYS_CLK_FREQ	100000000
271*4882a593Smuzhiyun #else
272*4882a593Smuzhiyun #define CONFIG_SYS_CLK_FREQ	66666666
273*4882a593Smuzhiyun #endif
274*4882a593Smuzhiyun #define CONFIG_DDR_CLK_FREQ	66666666
275*4882a593Smuzhiyun 
276*4882a593Smuzhiyun #define CONFIG_HWCONFIG
277*4882a593Smuzhiyun /*
278*4882a593Smuzhiyun  * These can be toggled for performance analysis, otherwise use default.
279*4882a593Smuzhiyun  */
280*4882a593Smuzhiyun #define CONFIG_L2_CACHE
281*4882a593Smuzhiyun #define CONFIG_BTB
282*4882a593Smuzhiyun 
283*4882a593Smuzhiyun #define CONFIG_ENABLE_36BIT_PHYS
284*4882a593Smuzhiyun 
285*4882a593Smuzhiyun #ifdef CONFIG_PHYS_64BIT
286*4882a593Smuzhiyun #define CONFIG_ADDR_MAP			1
287*4882a593Smuzhiyun #define CONFIG_SYS_NUM_ADDR_MAP		16	/* number of TLB1 entries */
288*4882a593Smuzhiyun #endif
289*4882a593Smuzhiyun 
290*4882a593Smuzhiyun #define CONFIG_SYS_MEMTEST_START	0x00200000	/* memtest works on */
291*4882a593Smuzhiyun #define CONFIG_SYS_MEMTEST_END		0x1fffffff
292*4882a593Smuzhiyun 
293*4882a593Smuzhiyun #define CONFIG_SYS_CCSRBAR		0xffe00000
294*4882a593Smuzhiyun #define CONFIG_SYS_CCSRBAR_PHYS_LOW	CONFIG_SYS_CCSRBAR
295*4882a593Smuzhiyun 
296*4882a593Smuzhiyun /* IN case of NAND bootloader relocate CCSRBAR in RAMboot code not in the 4k
297*4882a593Smuzhiyun        SPL code*/
298*4882a593Smuzhiyun #ifdef CONFIG_SPL_BUILD
299*4882a593Smuzhiyun #define CONFIG_SYS_CCSR_DO_NOT_RELOCATE
300*4882a593Smuzhiyun #endif
301*4882a593Smuzhiyun 
302*4882a593Smuzhiyun /* DDR Setup */
303*4882a593Smuzhiyun #define CONFIG_SYS_DDR_RAW_TIMING
304*4882a593Smuzhiyun #define CONFIG_DDR_SPD
305*4882a593Smuzhiyun #define CONFIG_SYS_SPD_BUS_NUM 1
306*4882a593Smuzhiyun #define SPD_EEPROM_ADDRESS 0x52
307*4882a593Smuzhiyun #undef CONFIG_FSL_DDR_INTERACTIVE
308*4882a593Smuzhiyun 
309*4882a593Smuzhiyun #if (defined(CONFIG_TARGET_P1020MBG) || defined(CONFIG_TARGET_P1020RDB_PD))
310*4882a593Smuzhiyun #define CONFIG_SYS_SDRAM_SIZE_LAW	LAW_SIZE_2G
311*4882a593Smuzhiyun #define CONFIG_CHIP_SELECTS_PER_CTRL	2
312*4882a593Smuzhiyun #else
313*4882a593Smuzhiyun #define CONFIG_SYS_SDRAM_SIZE_LAW	LAW_SIZE_1G
314*4882a593Smuzhiyun #define CONFIG_CHIP_SELECTS_PER_CTRL	1
315*4882a593Smuzhiyun #endif
316*4882a593Smuzhiyun #define CONFIG_SYS_SDRAM_SIZE		(1u << (CONFIG_SYS_SDRAM_SIZE_LAW - 19))
317*4882a593Smuzhiyun #define CONFIG_SYS_DDR_SDRAM_BASE	0x00000000
318*4882a593Smuzhiyun #define CONFIG_SYS_SDRAM_BASE		CONFIG_SYS_DDR_SDRAM_BASE
319*4882a593Smuzhiyun 
320*4882a593Smuzhiyun #define CONFIG_DIMM_SLOTS_PER_CTLR	1
321*4882a593Smuzhiyun 
322*4882a593Smuzhiyun /* Default settings for DDR3 */
323*4882a593Smuzhiyun #ifndef CONFIG_TARGET_P2020RDB
324*4882a593Smuzhiyun #define CONFIG_SYS_DDR_CS0_BNDS		0x0000003f
325*4882a593Smuzhiyun #define CONFIG_SYS_DDR_CS0_CONFIG	0x80014302
326*4882a593Smuzhiyun #define CONFIG_SYS_DDR_CS0_CONFIG_2	0x00000000
327*4882a593Smuzhiyun #define CONFIG_SYS_DDR_CS1_BNDS		0x0040007f
328*4882a593Smuzhiyun #define CONFIG_SYS_DDR_CS1_CONFIG	0x80014302
329*4882a593Smuzhiyun #define CONFIG_SYS_DDR_CS1_CONFIG_2	0x00000000
330*4882a593Smuzhiyun 
331*4882a593Smuzhiyun #define CONFIG_SYS_DDR_DATA_INIT	0xdeadbeef
332*4882a593Smuzhiyun #define CONFIG_SYS_DDR_INIT_ADDR	0x00000000
333*4882a593Smuzhiyun #define CONFIG_SYS_DDR_INIT_EXT_ADDR	0x00000000
334*4882a593Smuzhiyun #define CONFIG_SYS_DDR_MODE_CONTROL	0x00000000
335*4882a593Smuzhiyun 
336*4882a593Smuzhiyun #define CONFIG_SYS_DDR_ZQ_CONTROL	0x89080600
337*4882a593Smuzhiyun #define CONFIG_SYS_DDR_WRLVL_CONTROL	0x8655A608
338*4882a593Smuzhiyun #define CONFIG_SYS_DDR_SR_CNTR		0x00000000
339*4882a593Smuzhiyun #define CONFIG_SYS_DDR_RCW_1		0x00000000
340*4882a593Smuzhiyun #define CONFIG_SYS_DDR_RCW_2		0x00000000
341*4882a593Smuzhiyun #define CONFIG_SYS_DDR_CONTROL		0xC70C0000	/* Type = DDR3	*/
342*4882a593Smuzhiyun #define CONFIG_SYS_DDR_CONTROL_2	0x04401050
343*4882a593Smuzhiyun #define CONFIG_SYS_DDR_TIMING_4		0x00220001
344*4882a593Smuzhiyun #define CONFIG_SYS_DDR_TIMING_5		0x03402400
345*4882a593Smuzhiyun 
346*4882a593Smuzhiyun #define CONFIG_SYS_DDR_TIMING_3		0x00020000
347*4882a593Smuzhiyun #define CONFIG_SYS_DDR_TIMING_0		0x00330004
348*4882a593Smuzhiyun #define CONFIG_SYS_DDR_TIMING_1		0x6f6B4846
349*4882a593Smuzhiyun #define CONFIG_SYS_DDR_TIMING_2		0x0FA8C8CF
350*4882a593Smuzhiyun #define CONFIG_SYS_DDR_CLK_CTRL		0x03000000
351*4882a593Smuzhiyun #define CONFIG_SYS_DDR_MODE_1		0x40461520
352*4882a593Smuzhiyun #define CONFIG_SYS_DDR_MODE_2		0x8000c000
353*4882a593Smuzhiyun #define CONFIG_SYS_DDR_INTERVAL		0x0C300000
354*4882a593Smuzhiyun #endif
355*4882a593Smuzhiyun 
356*4882a593Smuzhiyun #undef CONFIG_CLOCKS_IN_MHZ
357*4882a593Smuzhiyun 
358*4882a593Smuzhiyun /*
359*4882a593Smuzhiyun  * Memory map
360*4882a593Smuzhiyun  *
361*4882a593Smuzhiyun  * 0x0000_0000 0x7fff_ffff	DDR		Up to 2GB cacheable
362*4882a593Smuzhiyun  * 0x8000_0000 0xdfff_ffff	PCI Express Mem	1.5G non-cacheable(PCIe * 3)
363*4882a593Smuzhiyun  * 0xec00_0000 0xefff_ffff	NOR flash	Up to 64M non-cacheable	CS0/1
364*4882a593Smuzhiyun  * 0xf8f8_0000 0xf8ff_ffff	L2 SRAM		Up to 512K cacheable
365*4882a593Smuzhiyun  *   (early boot only)
366*4882a593Smuzhiyun  * 0xff80_0000 0xff80_7fff	NAND flash	32K non-cacheable	CS1/0
367*4882a593Smuzhiyun  * 0xff98_0000 0xff98_ffff	PMC		64K non-cacheable	CS2
368*4882a593Smuzhiyun  * 0xffa0_0000 0xffaf_ffff	CPLD		1M non-cacheable	CS3
369*4882a593Smuzhiyun  * 0xffb0_0000 0xffbf_ffff	VSC7385 switch  1M non-cacheable	CS2
370*4882a593Smuzhiyun  * 0xffc0_0000 0xffc3_ffff	PCI IO range	256k non-cacheable
371*4882a593Smuzhiyun  * 0xffd0_0000 0xffd0_3fff	L1 for stack	16K cacheable
372*4882a593Smuzhiyun  * 0xffe0_0000 0xffef_ffff	CCSR		1M non-cacheable
373*4882a593Smuzhiyun  */
374*4882a593Smuzhiyun 
375*4882a593Smuzhiyun /*
376*4882a593Smuzhiyun  * Local Bus Definitions
377*4882a593Smuzhiyun  */
378*4882a593Smuzhiyun #if (defined(CONFIG_TARGET_P1020MBG) || defined(CONFIG_TARGET_P1020RDB_PD))
379*4882a593Smuzhiyun #define CONFIG_SYS_MAX_FLASH_SECT	512	/* 64M */
380*4882a593Smuzhiyun #define CONFIG_SYS_FLASH_BASE		0xec000000
381*4882a593Smuzhiyun #elif defined(CONFIG_TARGET_P1020UTM)
382*4882a593Smuzhiyun #define CONFIG_SYS_MAX_FLASH_SECT	256	/* 32M */
383*4882a593Smuzhiyun #define CONFIG_SYS_FLASH_BASE		0xee000000
384*4882a593Smuzhiyun #else
385*4882a593Smuzhiyun #define CONFIG_SYS_MAX_FLASH_SECT	128	/* 16M */
386*4882a593Smuzhiyun #define CONFIG_SYS_FLASH_BASE		0xef000000
387*4882a593Smuzhiyun #endif
388*4882a593Smuzhiyun 
389*4882a593Smuzhiyun #ifdef CONFIG_PHYS_64BIT
390*4882a593Smuzhiyun #define CONFIG_SYS_FLASH_BASE_PHYS	(0xf00000000ull | CONFIG_SYS_FLASH_BASE)
391*4882a593Smuzhiyun #else
392*4882a593Smuzhiyun #define CONFIG_SYS_FLASH_BASE_PHYS	CONFIG_SYS_FLASH_BASE
393*4882a593Smuzhiyun #endif
394*4882a593Smuzhiyun 
395*4882a593Smuzhiyun #define CONFIG_FLASH_BR_PRELIM (BR_PHYS_ADDR(CONFIG_SYS_FLASH_BASE_PHYS) \
396*4882a593Smuzhiyun 	| BR_PS_16 | BR_V)
397*4882a593Smuzhiyun 
398*4882a593Smuzhiyun #define CONFIG_FLASH_OR_PRELIM	0xfc000ff7
399*4882a593Smuzhiyun 
400*4882a593Smuzhiyun #define CONFIG_SYS_FLASH_BANKS_LIST	{CONFIG_SYS_FLASH_BASE_PHYS}
401*4882a593Smuzhiyun #define CONFIG_SYS_FLASH_QUIET_TEST
402*4882a593Smuzhiyun #define CONFIG_FLASH_SHOW_PROGRESS	45	/* count down from 45/5: 9..1 */
403*4882a593Smuzhiyun 
404*4882a593Smuzhiyun #define CONFIG_SYS_MAX_FLASH_BANKS	1	/* number of banks */
405*4882a593Smuzhiyun 
406*4882a593Smuzhiyun #undef CONFIG_SYS_FLASH_CHECKSUM
407*4882a593Smuzhiyun #define CONFIG_SYS_FLASH_ERASE_TOUT	60000	/* Flash Erase Timeout (ms) */
408*4882a593Smuzhiyun #define CONFIG_SYS_FLASH_WRITE_TOUT	500	/* Flash Write Timeout (ms) */
409*4882a593Smuzhiyun 
410*4882a593Smuzhiyun #define CONFIG_FLASH_CFI_DRIVER
411*4882a593Smuzhiyun #define CONFIG_SYS_FLASH_CFI
412*4882a593Smuzhiyun #define CONFIG_SYS_FLASH_EMPTY_INFO
413*4882a593Smuzhiyun #define CONFIG_SYS_FLASH_USE_BUFFER_WRITE
414*4882a593Smuzhiyun 
415*4882a593Smuzhiyun /* Nand Flash */
416*4882a593Smuzhiyun #ifdef CONFIG_NAND_FSL_ELBC
417*4882a593Smuzhiyun #define CONFIG_SYS_NAND_BASE		0xff800000
418*4882a593Smuzhiyun #ifdef CONFIG_PHYS_64BIT
419*4882a593Smuzhiyun #define CONFIG_SYS_NAND_BASE_PHYS	0xfff800000ull
420*4882a593Smuzhiyun #else
421*4882a593Smuzhiyun #define CONFIG_SYS_NAND_BASE_PHYS	CONFIG_SYS_NAND_BASE
422*4882a593Smuzhiyun #endif
423*4882a593Smuzhiyun 
424*4882a593Smuzhiyun #define CONFIG_SYS_NAND_BASE_LIST	{ CONFIG_SYS_NAND_BASE }
425*4882a593Smuzhiyun #define CONFIG_SYS_MAX_NAND_DEVICE	1
426*4882a593Smuzhiyun #if defined(CONFIG_TARGET_P1020RDB_PD)
427*4882a593Smuzhiyun #define CONFIG_SYS_NAND_BLOCK_SIZE	(128 * 1024)
428*4882a593Smuzhiyun #else
429*4882a593Smuzhiyun #define CONFIG_SYS_NAND_BLOCK_SIZE	(16 * 1024)
430*4882a593Smuzhiyun #endif
431*4882a593Smuzhiyun 
432*4882a593Smuzhiyun #define CONFIG_SYS_NAND_BR_PRELIM (BR_PHYS_ADDR(CONFIG_SYS_NAND_BASE_PHYS) \
433*4882a593Smuzhiyun 	| (2<<BR_DECC_SHIFT)	/* Use HW ECC */ \
434*4882a593Smuzhiyun 	| BR_PS_8	/* Port Size = 8 bit */ \
435*4882a593Smuzhiyun 	| BR_MS_FCM	/* MSEL = FCM */ \
436*4882a593Smuzhiyun 	| BR_V)	/* valid */
437*4882a593Smuzhiyun #if defined(CONFIG_TARGET_P1020RDB_PD)
438*4882a593Smuzhiyun #define CONFIG_SYS_NAND_OR_PRELIM	(OR_AM_32KB \
439*4882a593Smuzhiyun 	| OR_FCM_PGS	/* Large Page*/ \
440*4882a593Smuzhiyun 	| OR_FCM_CSCT \
441*4882a593Smuzhiyun 	| OR_FCM_CST \
442*4882a593Smuzhiyun 	| OR_FCM_CHT \
443*4882a593Smuzhiyun 	| OR_FCM_SCY_1 \
444*4882a593Smuzhiyun 	| OR_FCM_TRLX \
445*4882a593Smuzhiyun 	| OR_FCM_EHTR)
446*4882a593Smuzhiyun #else
447*4882a593Smuzhiyun #define CONFIG_SYS_NAND_OR_PRELIM	(OR_AM_32KB	/* small page */ \
448*4882a593Smuzhiyun 	| OR_FCM_CSCT \
449*4882a593Smuzhiyun 	| OR_FCM_CST \
450*4882a593Smuzhiyun 	| OR_FCM_CHT \
451*4882a593Smuzhiyun 	| OR_FCM_SCY_1 \
452*4882a593Smuzhiyun 	| OR_FCM_TRLX \
453*4882a593Smuzhiyun 	| OR_FCM_EHTR)
454*4882a593Smuzhiyun #endif
455*4882a593Smuzhiyun #endif /* CONFIG_NAND_FSL_ELBC */
456*4882a593Smuzhiyun 
457*4882a593Smuzhiyun #define CONFIG_BOARD_EARLY_INIT_R	/* call board_early_init_r function */
458*4882a593Smuzhiyun 
459*4882a593Smuzhiyun #define CONFIG_SYS_INIT_RAM_LOCK
460*4882a593Smuzhiyun #define CONFIG_SYS_INIT_RAM_ADDR	0xffd00000 /* stack in RAM */
461*4882a593Smuzhiyun #ifdef CONFIG_PHYS_64BIT
462*4882a593Smuzhiyun #define CONFIG_SYS_INIT_RAM_ADDR_PHYS_HIGH 0xf
463*4882a593Smuzhiyun #define CONFIG_SYS_INIT_RAM_ADDR_PHYS_LOW CONFIG_SYS_INIT_RAM_ADDR
464*4882a593Smuzhiyun /* The assembler doesn't like typecast */
465*4882a593Smuzhiyun #define CONFIG_SYS_INIT_RAM_ADDR_PHYS \
466*4882a593Smuzhiyun 	((CONFIG_SYS_INIT_RAM_ADDR_PHYS_HIGH * 1ull << 32) | \
467*4882a593Smuzhiyun 	  CONFIG_SYS_INIT_RAM_ADDR_PHYS_LOW)
468*4882a593Smuzhiyun #else
469*4882a593Smuzhiyun /* Initial L1 address */
470*4882a593Smuzhiyun #define CONFIG_SYS_INIT_RAM_ADDR_PHYS	CONFIG_SYS_INIT_RAM_ADDR
471*4882a593Smuzhiyun #define CONFIG_SYS_INIT_RAM_ADDR_PHYS_HIGH 0
472*4882a593Smuzhiyun #define CONFIG_SYS_INIT_RAM_ADDR_PHYS_LOW CONFIG_SYS_INIT_RAM_ADDR_PHYS
473*4882a593Smuzhiyun #endif
474*4882a593Smuzhiyun /* Size of used area in RAM */
475*4882a593Smuzhiyun #define CONFIG_SYS_INIT_RAM_SIZE	0x00004000
476*4882a593Smuzhiyun 
477*4882a593Smuzhiyun #define CONFIG_SYS_GBL_DATA_OFFSET	(CONFIG_SYS_INIT_RAM_SIZE - \
478*4882a593Smuzhiyun 					GENERATED_GBL_DATA_SIZE)
479*4882a593Smuzhiyun #define CONFIG_SYS_INIT_SP_OFFSET	CONFIG_SYS_GBL_DATA_OFFSET
480*4882a593Smuzhiyun 
481*4882a593Smuzhiyun #define CONFIG_SYS_MONITOR_LEN	(768 * 1024)
482*4882a593Smuzhiyun #define CONFIG_SYS_MALLOC_LEN	(1024 * 1024)/* Reserved for malloc */
483*4882a593Smuzhiyun 
484*4882a593Smuzhiyun #define CONFIG_SYS_CPLD_BASE	0xffa00000
485*4882a593Smuzhiyun #ifdef CONFIG_PHYS_64BIT
486*4882a593Smuzhiyun #define CONFIG_SYS_CPLD_BASE_PHYS	0xfffa00000ull
487*4882a593Smuzhiyun #else
488*4882a593Smuzhiyun #define CONFIG_SYS_CPLD_BASE_PHYS	CONFIG_SYS_CPLD_BASE
489*4882a593Smuzhiyun #endif
490*4882a593Smuzhiyun /* CPLD config size: 1Mb */
491*4882a593Smuzhiyun #define CONFIG_CPLD_BR_PRELIM	(BR_PHYS_ADDR(CONFIG_SYS_CPLD_BASE_PHYS) | \
492*4882a593Smuzhiyun 					BR_PS_8 | BR_V)
493*4882a593Smuzhiyun #define CONFIG_CPLD_OR_PRELIM	(0xfff009f7)
494*4882a593Smuzhiyun 
495*4882a593Smuzhiyun #define CONFIG_SYS_PMC_BASE	0xff980000
496*4882a593Smuzhiyun #define CONFIG_SYS_PMC_BASE_PHYS	CONFIG_SYS_PMC_BASE
497*4882a593Smuzhiyun #define CONFIG_PMC_BR_PRELIM	(BR_PHYS_ADDR(CONFIG_SYS_PMC_BASE_PHYS) | \
498*4882a593Smuzhiyun 					BR_PS_8 | BR_V)
499*4882a593Smuzhiyun #define CONFIG_PMC_OR_PRELIM	(OR_AM_64KB | OR_GPCM_CSNT | OR_GPCM_XACS | \
500*4882a593Smuzhiyun 				 OR_GPCM_SCY | OR_GPCM_TRLX | OR_GPCM_EHTR | \
501*4882a593Smuzhiyun 				 OR_GPCM_EAD)
502*4882a593Smuzhiyun 
503*4882a593Smuzhiyun #ifdef CONFIG_NAND
504*4882a593Smuzhiyun #define CONFIG_SYS_BR0_PRELIM	CONFIG_SYS_NAND_BR_PRELIM /* NAND Base Addr */
505*4882a593Smuzhiyun #define CONFIG_SYS_OR0_PRELIM	CONFIG_SYS_NAND_OR_PRELIM /* NAND Options */
506*4882a593Smuzhiyun #define CONFIG_SYS_BR1_PRELIM	CONFIG_FLASH_BR_PRELIM	/* NOR Base Address */
507*4882a593Smuzhiyun #define CONFIG_SYS_OR1_PRELIM	CONFIG_FLASH_OR_PRELIM	/* NOR Options */
508*4882a593Smuzhiyun #else
509*4882a593Smuzhiyun #define CONFIG_SYS_BR0_PRELIM	CONFIG_FLASH_BR_PRELIM	/* NOR Base Address */
510*4882a593Smuzhiyun #define CONFIG_SYS_OR0_PRELIM	CONFIG_FLASH_OR_PRELIM	/* NOR Options */
511*4882a593Smuzhiyun #ifdef CONFIG_NAND_FSL_ELBC
512*4882a593Smuzhiyun #define CONFIG_SYS_BR1_PRELIM	CONFIG_SYS_NAND_BR_PRELIM /* NAND Base Addr */
513*4882a593Smuzhiyun #define CONFIG_SYS_OR1_PRELIM	CONFIG_SYS_NAND_OR_PRELIM /* NAND Options */
514*4882a593Smuzhiyun #endif
515*4882a593Smuzhiyun #endif
516*4882a593Smuzhiyun #define CONFIG_SYS_BR3_PRELIM	CONFIG_CPLD_BR_PRELIM	/* CPLD Base Address */
517*4882a593Smuzhiyun #define CONFIG_SYS_OR3_PRELIM	CONFIG_CPLD_OR_PRELIM	/* CPLD Options */
518*4882a593Smuzhiyun 
519*4882a593Smuzhiyun /* Vsc7385 switch */
520*4882a593Smuzhiyun #ifdef CONFIG_VSC7385_ENET
521*4882a593Smuzhiyun #define CONFIG_SYS_VSC7385_BASE		0xffb00000
522*4882a593Smuzhiyun 
523*4882a593Smuzhiyun #ifdef CONFIG_PHYS_64BIT
524*4882a593Smuzhiyun #define CONFIG_SYS_VSC7385_BASE_PHYS	0xfffb00000ull
525*4882a593Smuzhiyun #else
526*4882a593Smuzhiyun #define CONFIG_SYS_VSC7385_BASE_PHYS	CONFIG_SYS_VSC7385_BASE
527*4882a593Smuzhiyun #endif
528*4882a593Smuzhiyun 
529*4882a593Smuzhiyun #define CONFIG_SYS_VSC7385_BR_PRELIM	\
530*4882a593Smuzhiyun 	(BR_PHYS_ADDR(CONFIG_SYS_VSC7385_BASE_PHYS) | BR_PS_8 | BR_V)
531*4882a593Smuzhiyun #define CONFIG_SYS_VSC7385_OR_PRELIM	(OR_AM_128KB | OR_GPCM_CSNT | \
532*4882a593Smuzhiyun 			OR_GPCM_XACS |  OR_GPCM_SCY_15 | OR_GPCM_SETA | \
533*4882a593Smuzhiyun 			OR_GPCM_TRLX |  OR_GPCM_EHTR | OR_GPCM_EAD)
534*4882a593Smuzhiyun 
535*4882a593Smuzhiyun #define CONFIG_SYS_BR2_PRELIM	CONFIG_SYS_VSC7385_BR_PRELIM
536*4882a593Smuzhiyun #define CONFIG_SYS_OR2_PRELIM	CONFIG_SYS_VSC7385_OR_PRELIM
537*4882a593Smuzhiyun 
538*4882a593Smuzhiyun /* The size of the VSC7385 firmware image */
539*4882a593Smuzhiyun #define CONFIG_VSC7385_IMAGE_SIZE	8192
540*4882a593Smuzhiyun #endif
541*4882a593Smuzhiyun 
542*4882a593Smuzhiyun /*
543*4882a593Smuzhiyun  * Config the L2 Cache as L2 SRAM
544*4882a593Smuzhiyun */
545*4882a593Smuzhiyun #if defined(CONFIG_SPL_BUILD)
546*4882a593Smuzhiyun #if defined(CONFIG_SDCARD) || defined(CONFIG_SPIFLASH)
547*4882a593Smuzhiyun #define CONFIG_SYS_INIT_L2_ADDR		0xf8f80000
548*4882a593Smuzhiyun #define CONFIG_SYS_INIT_L2_ADDR_PHYS	CONFIG_SYS_INIT_L2_ADDR
549*4882a593Smuzhiyun #define CONFIG_SYS_INIT_L2_END	(CONFIG_SYS_INIT_L2_ADDR + CONFIG_SYS_L2_SIZE)
550*4882a593Smuzhiyun #define CONFIG_SPL_RELOC_TEXT_BASE	0xf8f81000
551*4882a593Smuzhiyun #define CONFIG_SPL_GD_ADDR		(CONFIG_SYS_INIT_L2_ADDR + 112 * 1024)
552*4882a593Smuzhiyun #define CONFIG_SPL_RELOC_STACK		(CONFIG_SYS_INIT_L2_ADDR + 116 * 1024)
553*4882a593Smuzhiyun #define CONFIG_SPL_RELOC_STACK_SIZE	(32 << 10)
554*4882a593Smuzhiyun #define CONFIG_SPL_RELOC_MALLOC_ADDR	(CONFIG_SYS_INIT_L2_ADDR + 148 * 1024)
555*4882a593Smuzhiyun #if defined(CONFIG_TARGET_P2020RDB)
556*4882a593Smuzhiyun #define CONFIG_SPL_RELOC_MALLOC_SIZE	(364 << 10)
557*4882a593Smuzhiyun #else
558*4882a593Smuzhiyun #define CONFIG_SPL_RELOC_MALLOC_SIZE	(108 << 10)
559*4882a593Smuzhiyun #endif
560*4882a593Smuzhiyun #elif defined(CONFIG_NAND)
561*4882a593Smuzhiyun #ifdef CONFIG_TPL_BUILD
562*4882a593Smuzhiyun #define CONFIG_SYS_INIT_L2_ADDR		0xf8f80000
563*4882a593Smuzhiyun #define CONFIG_SYS_INIT_L2_ADDR_PHYS	CONFIG_SYS_INIT_L2_ADDR
564*4882a593Smuzhiyun #define CONFIG_SYS_INIT_L2_END	(CONFIG_SYS_INIT_L2_ADDR + CONFIG_SYS_L2_SIZE)
565*4882a593Smuzhiyun #define CONFIG_SPL_RELOC_TEXT_BASE	0xf8f81000
566*4882a593Smuzhiyun #define CONFIG_SPL_RELOC_STACK		(CONFIG_SYS_INIT_L2_ADDR + 192 * 1024)
567*4882a593Smuzhiyun #define CONFIG_SPL_RELOC_MALLOC_ADDR	(CONFIG_SYS_INIT_L2_ADDR + 208 * 1024)
568*4882a593Smuzhiyun #define CONFIG_SPL_RELOC_MALLOC_SIZE	(48 << 10)
569*4882a593Smuzhiyun #define CONFIG_SPL_GD_ADDR		(CONFIG_SYS_INIT_L2_ADDR + 176 * 1024)
570*4882a593Smuzhiyun #else
571*4882a593Smuzhiyun #define CONFIG_SYS_INIT_L2_ADDR		0xf8f80000
572*4882a593Smuzhiyun #define CONFIG_SYS_INIT_L2_ADDR_PHYS	CONFIG_SYS_INIT_L2_ADDR
573*4882a593Smuzhiyun #define CONFIG_SYS_INIT_L2_END	(CONFIG_SYS_INIT_L2_ADDR + CONFIG_SYS_L2_SIZE)
574*4882a593Smuzhiyun #define CONFIG_SPL_RELOC_TEXT_BASE	(CONFIG_SYS_INIT_L2_END - 0x2000)
575*4882a593Smuzhiyun #define CONFIG_SPL_RELOC_STACK		((CONFIG_SYS_INIT_L2_END - 1) & ~0xF)
576*4882a593Smuzhiyun #endif /* CONFIG_TPL_BUILD */
577*4882a593Smuzhiyun #endif
578*4882a593Smuzhiyun #endif
579*4882a593Smuzhiyun 
580*4882a593Smuzhiyun /* Serial Port - controlled on board with jumper J8
581*4882a593Smuzhiyun  * open - index 2
582*4882a593Smuzhiyun  * shorted - index 1
583*4882a593Smuzhiyun  */
584*4882a593Smuzhiyun #define CONFIG_CONS_INDEX		1
585*4882a593Smuzhiyun #undef CONFIG_SERIAL_SOFTWARE_FIFO
586*4882a593Smuzhiyun #define CONFIG_SYS_NS16550_SERIAL
587*4882a593Smuzhiyun #define CONFIG_SYS_NS16550_REG_SIZE	1
588*4882a593Smuzhiyun #define CONFIG_SYS_NS16550_CLK		get_bus_freq(0)
589*4882a593Smuzhiyun #if defined(CONFIG_SPL_BUILD) && defined(CONFIG_SPL_INIT_MINIMAL)
590*4882a593Smuzhiyun #define CONFIG_NS16550_MIN_FUNCTIONS
591*4882a593Smuzhiyun #endif
592*4882a593Smuzhiyun 
593*4882a593Smuzhiyun #define CONFIG_SYS_BAUDRATE_TABLE	\
594*4882a593Smuzhiyun 	{300, 600, 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200}
595*4882a593Smuzhiyun 
596*4882a593Smuzhiyun #define CONFIG_SYS_NS16550_COM1	(CONFIG_SYS_CCSRBAR+0x4500)
597*4882a593Smuzhiyun #define CONFIG_SYS_NS16550_COM2	(CONFIG_SYS_CCSRBAR+0x4600)
598*4882a593Smuzhiyun 
599*4882a593Smuzhiyun /* I2C */
600*4882a593Smuzhiyun #define CONFIG_SYS_I2C
601*4882a593Smuzhiyun #define CONFIG_SYS_I2C_FSL
602*4882a593Smuzhiyun #define CONFIG_SYS_FSL_I2C_SPEED	400000
603*4882a593Smuzhiyun #define CONFIG_SYS_FSL_I2C_SLAVE	0x7F
604*4882a593Smuzhiyun #define CONFIG_SYS_FSL_I2C_OFFSET	0x3000
605*4882a593Smuzhiyun #define CONFIG_SYS_FSL_I2C2_SPEED	400000
606*4882a593Smuzhiyun #define CONFIG_SYS_FSL_I2C2_SLAVE	0x7F
607*4882a593Smuzhiyun #define CONFIG_SYS_FSL_I2C2_OFFSET	0x3100
608*4882a593Smuzhiyun #define CONFIG_SYS_I2C_NOPROBES		{ {0, 0x29} }
609*4882a593Smuzhiyun #define CONFIG_SYS_I2C_EEPROM_ADDR	0x52
610*4882a593Smuzhiyun #define CONFIG_SYS_SPD_BUS_NUM		1 /* For rom_loc and flash bank */
611*4882a593Smuzhiyun 
612*4882a593Smuzhiyun /*
613*4882a593Smuzhiyun  * I2C2 EEPROM
614*4882a593Smuzhiyun  */
615*4882a593Smuzhiyun #undef CONFIG_ID_EEPROM
616*4882a593Smuzhiyun 
617*4882a593Smuzhiyun #define CONFIG_RTC_PT7C4338
618*4882a593Smuzhiyun #define CONFIG_SYS_I2C_RTC_ADDR		0x68
619*4882a593Smuzhiyun #define CONFIG_SYS_I2C_PCA9557_ADDR	0x18
620*4882a593Smuzhiyun 
621*4882a593Smuzhiyun /* enable read and write access to EEPROM */
622*4882a593Smuzhiyun #define CONFIG_SYS_I2C_EEPROM_ADDR_LEN 1
623*4882a593Smuzhiyun #define CONFIG_SYS_EEPROM_PAGE_WRITE_BITS 3
624*4882a593Smuzhiyun #define CONFIG_SYS_EEPROM_PAGE_WRITE_DELAY_MS 5
625*4882a593Smuzhiyun 
626*4882a593Smuzhiyun /*
627*4882a593Smuzhiyun  * eSPI - Enhanced SPI
628*4882a593Smuzhiyun  */
629*4882a593Smuzhiyun #define CONFIG_HARD_SPI
630*4882a593Smuzhiyun 
631*4882a593Smuzhiyun #if defined(CONFIG_SPI_FLASH)
632*4882a593Smuzhiyun #define CONFIG_SF_DEFAULT_SPEED	10000000
633*4882a593Smuzhiyun #define CONFIG_SF_DEFAULT_MODE	0
634*4882a593Smuzhiyun #endif
635*4882a593Smuzhiyun 
636*4882a593Smuzhiyun #if defined(CONFIG_PCI)
637*4882a593Smuzhiyun /*
638*4882a593Smuzhiyun  * General PCI
639*4882a593Smuzhiyun  * Memory space is mapped 1-1, but I/O space must start from 0.
640*4882a593Smuzhiyun  */
641*4882a593Smuzhiyun 
642*4882a593Smuzhiyun /* controller 2, direct to uli, tgtid 2, Base address 9000 */
643*4882a593Smuzhiyun #define CONFIG_SYS_PCIE2_NAME		"PCIe SLOT"
644*4882a593Smuzhiyun #define CONFIG_SYS_PCIE2_MEM_VIRT	0xa0000000
645*4882a593Smuzhiyun #ifdef CONFIG_PHYS_64BIT
646*4882a593Smuzhiyun #define CONFIG_SYS_PCIE2_MEM_BUS	0xc0000000
647*4882a593Smuzhiyun #define CONFIG_SYS_PCIE2_MEM_PHYS	0xc20000000ull
648*4882a593Smuzhiyun #else
649*4882a593Smuzhiyun #define CONFIG_SYS_PCIE2_MEM_BUS	0xa0000000
650*4882a593Smuzhiyun #define CONFIG_SYS_PCIE2_MEM_PHYS	0xa0000000
651*4882a593Smuzhiyun #endif
652*4882a593Smuzhiyun #define CONFIG_SYS_PCIE2_MEM_SIZE	0x20000000	/* 512M */
653*4882a593Smuzhiyun #define CONFIG_SYS_PCIE2_IO_VIRT	0xffc10000
654*4882a593Smuzhiyun #define CONFIG_SYS_PCIE2_IO_BUS		0x00000000
655*4882a593Smuzhiyun #ifdef CONFIG_PHYS_64BIT
656*4882a593Smuzhiyun #define CONFIG_SYS_PCIE2_IO_PHYS	0xfffc10000ull
657*4882a593Smuzhiyun #else
658*4882a593Smuzhiyun #define CONFIG_SYS_PCIE2_IO_PHYS	0xffc10000
659*4882a593Smuzhiyun #endif
660*4882a593Smuzhiyun #define CONFIG_SYS_PCIE2_IO_SIZE	0x00010000	/* 64k */
661*4882a593Smuzhiyun 
662*4882a593Smuzhiyun /* controller 1, Slot 2, tgtid 1, Base address a000 */
663*4882a593Smuzhiyun #define CONFIG_SYS_PCIE1_NAME		"mini PCIe SLOT"
664*4882a593Smuzhiyun #define CONFIG_SYS_PCIE1_MEM_VIRT	0x80000000
665*4882a593Smuzhiyun #ifdef CONFIG_PHYS_64BIT
666*4882a593Smuzhiyun #define CONFIG_SYS_PCIE1_MEM_BUS	0x80000000
667*4882a593Smuzhiyun #define CONFIG_SYS_PCIE1_MEM_PHYS	0xc00000000ull
668*4882a593Smuzhiyun #else
669*4882a593Smuzhiyun #define CONFIG_SYS_PCIE1_MEM_BUS	0x80000000
670*4882a593Smuzhiyun #define CONFIG_SYS_PCIE1_MEM_PHYS	0x80000000
671*4882a593Smuzhiyun #endif
672*4882a593Smuzhiyun #define CONFIG_SYS_PCIE1_MEM_SIZE	0x20000000	/* 512M */
673*4882a593Smuzhiyun #define CONFIG_SYS_PCIE1_IO_VIRT	0xffc00000
674*4882a593Smuzhiyun #define CONFIG_SYS_PCIE1_IO_BUS		0x00000000
675*4882a593Smuzhiyun #ifdef CONFIG_PHYS_64BIT
676*4882a593Smuzhiyun #define CONFIG_SYS_PCIE1_IO_PHYS	0xfffc00000ull
677*4882a593Smuzhiyun #else
678*4882a593Smuzhiyun #define CONFIG_SYS_PCIE1_IO_PHYS	0xffc00000
679*4882a593Smuzhiyun #endif
680*4882a593Smuzhiyun #define CONFIG_SYS_PCIE1_IO_SIZE	0x00010000	/* 64k */
681*4882a593Smuzhiyun 
682*4882a593Smuzhiyun #define CONFIG_PCI_SCAN_SHOW	/* show pci devices on startup */
683*4882a593Smuzhiyun #endif /* CONFIG_PCI */
684*4882a593Smuzhiyun 
685*4882a593Smuzhiyun #if defined(CONFIG_TSEC_ENET)
686*4882a593Smuzhiyun #define CONFIG_MII		/* MII PHY management */
687*4882a593Smuzhiyun #define CONFIG_TSEC1
688*4882a593Smuzhiyun #define CONFIG_TSEC1_NAME	"eTSEC1"
689*4882a593Smuzhiyun #define CONFIG_TSEC2
690*4882a593Smuzhiyun #define CONFIG_TSEC2_NAME	"eTSEC2"
691*4882a593Smuzhiyun #define CONFIG_TSEC3
692*4882a593Smuzhiyun #define CONFIG_TSEC3_NAME	"eTSEC3"
693*4882a593Smuzhiyun 
694*4882a593Smuzhiyun #define TSEC1_PHY_ADDR	2
695*4882a593Smuzhiyun #define TSEC2_PHY_ADDR	0
696*4882a593Smuzhiyun #define TSEC3_PHY_ADDR	1
697*4882a593Smuzhiyun 
698*4882a593Smuzhiyun #define TSEC1_FLAGS	(TSEC_GIGABIT | TSEC_REDUCED)
699*4882a593Smuzhiyun #define TSEC2_FLAGS	(TSEC_GIGABIT | TSEC_REDUCED)
700*4882a593Smuzhiyun #define TSEC3_FLAGS	(TSEC_GIGABIT | TSEC_REDUCED)
701*4882a593Smuzhiyun 
702*4882a593Smuzhiyun #define TSEC1_PHYIDX	0
703*4882a593Smuzhiyun #define TSEC2_PHYIDX	0
704*4882a593Smuzhiyun #define TSEC3_PHYIDX	0
705*4882a593Smuzhiyun 
706*4882a593Smuzhiyun #define CONFIG_ETHPRIME	"eTSEC1"
707*4882a593Smuzhiyun 
708*4882a593Smuzhiyun #define CONFIG_HAS_ETH0
709*4882a593Smuzhiyun #define CONFIG_HAS_ETH1
710*4882a593Smuzhiyun #define CONFIG_HAS_ETH2
711*4882a593Smuzhiyun #endif /* CONFIG_TSEC_ENET */
712*4882a593Smuzhiyun 
713*4882a593Smuzhiyun #ifdef CONFIG_QE
714*4882a593Smuzhiyun /* QE microcode/firmware address */
715*4882a593Smuzhiyun #define CONFIG_SYS_QE_FMAN_FW_IN_NOR
716*4882a593Smuzhiyun #define CONFIG_SYS_QE_FW_ADDR	0xefec0000
717*4882a593Smuzhiyun #define CONFIG_SYS_QE_FMAN_FW_LENGTH	0x10000
718*4882a593Smuzhiyun #endif /* CONFIG_QE */
719*4882a593Smuzhiyun 
720*4882a593Smuzhiyun #ifdef CONFIG_TARGET_P1025RDB
721*4882a593Smuzhiyun /*
722*4882a593Smuzhiyun  * QE UEC ethernet configuration
723*4882a593Smuzhiyun  */
724*4882a593Smuzhiyun #define CONFIG_MIIM_ADDRESS	(CONFIG_SYS_CCSRBAR + 0x82120)
725*4882a593Smuzhiyun 
726*4882a593Smuzhiyun #undef CONFIG_UEC_ETH
727*4882a593Smuzhiyun #define CONFIG_PHY_MODE_NEED_CHANGE
728*4882a593Smuzhiyun 
729*4882a593Smuzhiyun #define CONFIG_UEC_ETH1	/* ETH1 */
730*4882a593Smuzhiyun #define CONFIG_HAS_ETH0
731*4882a593Smuzhiyun 
732*4882a593Smuzhiyun #ifdef CONFIG_UEC_ETH1
733*4882a593Smuzhiyun #define CONFIG_SYS_UEC1_UCC_NUM	0	/* UCC1 */
734*4882a593Smuzhiyun #define CONFIG_SYS_UEC1_RX_CLK	QE_CLK12 /* CLK12 for MII */
735*4882a593Smuzhiyun #define CONFIG_SYS_UEC1_TX_CLK	QE_CLK9 /* CLK9 for MII */
736*4882a593Smuzhiyun #define CONFIG_SYS_UEC1_ETH_TYPE	FAST_ETH
737*4882a593Smuzhiyun #define CONFIG_SYS_UEC1_PHY_ADDR	0x0	/* 0x0 for MII */
738*4882a593Smuzhiyun #define CONFIG_SYS_UEC1_INTERFACE_TYPE PHY_INTERFACE_MODE_RMII
739*4882a593Smuzhiyun #define CONFIG_SYS_UEC1_INTERFACE_SPEED	100
740*4882a593Smuzhiyun #endif /* CONFIG_UEC_ETH1 */
741*4882a593Smuzhiyun 
742*4882a593Smuzhiyun #define CONFIG_UEC_ETH5	/* ETH5 */
743*4882a593Smuzhiyun #define CONFIG_HAS_ETH1
744*4882a593Smuzhiyun 
745*4882a593Smuzhiyun #ifdef CONFIG_UEC_ETH5
746*4882a593Smuzhiyun #define CONFIG_SYS_UEC5_UCC_NUM	4	/* UCC5 */
747*4882a593Smuzhiyun #define CONFIG_SYS_UEC5_RX_CLK	QE_CLK_NONE
748*4882a593Smuzhiyun #define CONFIG_SYS_UEC5_TX_CLK	QE_CLK13 /* CLK 13 for RMII */
749*4882a593Smuzhiyun #define CONFIG_SYS_UEC5_ETH_TYPE	FAST_ETH
750*4882a593Smuzhiyun #define CONFIG_SYS_UEC5_PHY_ADDR	0x3	/* 0x3 for RMII */
751*4882a593Smuzhiyun #define CONFIG_SYS_UEC5_INTERFACE_TYPE PHY_INTERFACE_MODE_RMII
752*4882a593Smuzhiyun #define CONFIG_SYS_UEC5_INTERFACE_SPEED	100
753*4882a593Smuzhiyun #endif /* CONFIG_UEC_ETH5 */
754*4882a593Smuzhiyun #endif /* CONFIG_TARGET_P1025RDB */
755*4882a593Smuzhiyun 
756*4882a593Smuzhiyun /*
757*4882a593Smuzhiyun  * Environment
758*4882a593Smuzhiyun  */
759*4882a593Smuzhiyun #ifdef CONFIG_SPIFLASH
760*4882a593Smuzhiyun #define CONFIG_ENV_SPI_BUS	0
761*4882a593Smuzhiyun #define CONFIG_ENV_SPI_CS	0
762*4882a593Smuzhiyun #define CONFIG_ENV_SPI_MAX_HZ	10000000
763*4882a593Smuzhiyun #define CONFIG_ENV_SPI_MODE	0
764*4882a593Smuzhiyun #define CONFIG_ENV_SIZE		0x2000	/* 8KB */
765*4882a593Smuzhiyun #define CONFIG_ENV_OFFSET	0x100000	/* 1MB */
766*4882a593Smuzhiyun #define CONFIG_ENV_SECT_SIZE	0x10000
767*4882a593Smuzhiyun #elif defined(CONFIG_SDCARD)
768*4882a593Smuzhiyun #define CONFIG_FSL_FIXED_MMC_LOCATION
769*4882a593Smuzhiyun #define CONFIG_ENV_SIZE		0x2000
770*4882a593Smuzhiyun #define CONFIG_SYS_MMC_ENV_DEV	0
771*4882a593Smuzhiyun #elif defined(CONFIG_NAND)
772*4882a593Smuzhiyun #ifdef CONFIG_TPL_BUILD
773*4882a593Smuzhiyun #define CONFIG_ENV_SIZE		0x2000
774*4882a593Smuzhiyun #define CONFIG_ENV_ADDR		(CONFIG_SYS_INIT_L2_ADDR + (160 << 10))
775*4882a593Smuzhiyun #else
776*4882a593Smuzhiyun #define CONFIG_ENV_SIZE		CONFIG_SYS_NAND_BLOCK_SIZE
777*4882a593Smuzhiyun #endif
778*4882a593Smuzhiyun #define CONFIG_ENV_OFFSET	(1024 * 1024)
779*4882a593Smuzhiyun #define CONFIG_ENV_RANGE	(3 * CONFIG_ENV_SIZE)
780*4882a593Smuzhiyun #elif defined(CONFIG_SYS_RAMBOOT)
781*4882a593Smuzhiyun #define CONFIG_ENV_ADDR		(CONFIG_SYS_MONITOR_BASE - 0x1000)
782*4882a593Smuzhiyun #define CONFIG_ENV_SIZE		0x2000
783*4882a593Smuzhiyun #else
784*4882a593Smuzhiyun #define CONFIG_ENV_ADDR	(CONFIG_SYS_MONITOR_BASE - CONFIG_ENV_SECT_SIZE)
785*4882a593Smuzhiyun #define CONFIG_ENV_SIZE		0x2000
786*4882a593Smuzhiyun #define CONFIG_ENV_SECT_SIZE	0x20000 /* 128K (one sector) */
787*4882a593Smuzhiyun #endif
788*4882a593Smuzhiyun 
789*4882a593Smuzhiyun #define CONFIG_LOADS_ECHO		/* echo on for serial download */
790*4882a593Smuzhiyun #define CONFIG_SYS_LOADS_BAUD_CHANGE	/* allow baudrate change */
791*4882a593Smuzhiyun 
792*4882a593Smuzhiyun /*
793*4882a593Smuzhiyun  * USB
794*4882a593Smuzhiyun  */
795*4882a593Smuzhiyun #define CONFIG_HAS_FSL_DR_USB
796*4882a593Smuzhiyun 
797*4882a593Smuzhiyun #if defined(CONFIG_HAS_FSL_DR_USB)
798*4882a593Smuzhiyun #ifdef CONFIG_USB_EHCI_HCD
799*4882a593Smuzhiyun #define CONFIG_EHCI_HCD_INIT_AFTER_RESET
800*4882a593Smuzhiyun #define CONFIG_USB_EHCI_FSL
801*4882a593Smuzhiyun #endif
802*4882a593Smuzhiyun #endif
803*4882a593Smuzhiyun 
804*4882a593Smuzhiyun #if defined(CONFIG_TARGET_P1020RDB_PD)
805*4882a593Smuzhiyun #define CONFIG_USB_MAX_CONTROLLER_COUNT	1
806*4882a593Smuzhiyun #endif
807*4882a593Smuzhiyun 
808*4882a593Smuzhiyun #ifdef CONFIG_MMC
809*4882a593Smuzhiyun #define CONFIG_FSL_ESDHC
810*4882a593Smuzhiyun #define CONFIG_SYS_FSL_ESDHC_ADDR	CONFIG_SYS_MPC85xx_ESDHC_ADDR
811*4882a593Smuzhiyun #endif
812*4882a593Smuzhiyun 
813*4882a593Smuzhiyun #undef CONFIG_WATCHDOG	/* watchdog disabled */
814*4882a593Smuzhiyun 
815*4882a593Smuzhiyun /*
816*4882a593Smuzhiyun  * Miscellaneous configurable options
817*4882a593Smuzhiyun  */
818*4882a593Smuzhiyun #define CONFIG_SYS_LONGHELP			/* undef to save memory */
819*4882a593Smuzhiyun #define CONFIG_CMDLINE_EDITING			/* Command-line editing */
820*4882a593Smuzhiyun #define CONFIG_SYS_LOAD_ADDR	0x2000000	/* default load address */
821*4882a593Smuzhiyun 
822*4882a593Smuzhiyun /*
823*4882a593Smuzhiyun  * For booting Linux, the board info and command line data
824*4882a593Smuzhiyun  * have to be in the first 64 MB of memory, since this is
825*4882a593Smuzhiyun  * the maximum mapped by the Linux kernel during initialization.
826*4882a593Smuzhiyun  */
827*4882a593Smuzhiyun #define CONFIG_SYS_BOOTMAPSZ	(64 << 20)	/* Initial Memory for Linux*/
828*4882a593Smuzhiyun #define CONFIG_SYS_BOOTM_LEN	(64 << 20)	/* Increase max gunzip size */
829*4882a593Smuzhiyun 
830*4882a593Smuzhiyun #if defined(CONFIG_CMD_KGDB)
831*4882a593Smuzhiyun #define CONFIG_KGDB_BAUDRATE	230400	/* speed to run kgdb serial port */
832*4882a593Smuzhiyun #endif
833*4882a593Smuzhiyun 
834*4882a593Smuzhiyun /*
835*4882a593Smuzhiyun  * Environment Configuration
836*4882a593Smuzhiyun  */
837*4882a593Smuzhiyun #define CONFIG_HOSTNAME		unknown
838*4882a593Smuzhiyun #define CONFIG_ROOTPATH		"/opt/nfsroot"
839*4882a593Smuzhiyun #define CONFIG_BOOTFILE		"uImage"
840*4882a593Smuzhiyun #define CONFIG_UBOOTPATH	u-boot.bin /* U-Boot image on TFTP server */
841*4882a593Smuzhiyun 
842*4882a593Smuzhiyun /* default location for tftp and bootm */
843*4882a593Smuzhiyun #define CONFIG_LOADADDR	1000000
844*4882a593Smuzhiyun 
845*4882a593Smuzhiyun #ifdef __SW_BOOT_NOR
846*4882a593Smuzhiyun #define __NOR_RST_CMD	\
847*4882a593Smuzhiyun norboot=i2c dev 1; i2c mw 18 1 __SW_BOOT_NOR 1; \
848*4882a593Smuzhiyun i2c mw 18 3 __SW_BOOT_MASK 1; reset
849*4882a593Smuzhiyun #endif
850*4882a593Smuzhiyun #ifdef __SW_BOOT_SPI
851*4882a593Smuzhiyun #define __SPI_RST_CMD	\
852*4882a593Smuzhiyun spiboot=i2c dev 1; i2c mw 18 1 __SW_BOOT_SPI 1; \
853*4882a593Smuzhiyun i2c mw 18 3 __SW_BOOT_MASK 1; reset
854*4882a593Smuzhiyun #endif
855*4882a593Smuzhiyun #ifdef __SW_BOOT_SD
856*4882a593Smuzhiyun #define __SD_RST_CMD	\
857*4882a593Smuzhiyun sdboot=i2c dev 1; i2c mw 18 1 __SW_BOOT_SD 1; \
858*4882a593Smuzhiyun i2c mw 18 3 __SW_BOOT_MASK 1; reset
859*4882a593Smuzhiyun #endif
860*4882a593Smuzhiyun #ifdef __SW_BOOT_NAND
861*4882a593Smuzhiyun #define __NAND_RST_CMD	\
862*4882a593Smuzhiyun nandboot=i2c dev 1; i2c mw 18 1 __SW_BOOT_NAND 1; \
863*4882a593Smuzhiyun i2c mw 18 3 __SW_BOOT_MASK 1; reset
864*4882a593Smuzhiyun #endif
865*4882a593Smuzhiyun #ifdef __SW_BOOT_PCIE
866*4882a593Smuzhiyun #define __PCIE_RST_CMD	\
867*4882a593Smuzhiyun pciboot=i2c dev 1; i2c mw 18 1 __SW_BOOT_PCIE 1; \
868*4882a593Smuzhiyun i2c mw 18 3 __SW_BOOT_MASK 1; reset
869*4882a593Smuzhiyun #endif
870*4882a593Smuzhiyun 
871*4882a593Smuzhiyun #define	CONFIG_EXTRA_ENV_SETTINGS	\
872*4882a593Smuzhiyun "netdev=eth0\0"	\
873*4882a593Smuzhiyun "uboot=" __stringify(CONFIG_UBOOTPATH) "\0"	\
874*4882a593Smuzhiyun "loadaddr=1000000\0"	\
875*4882a593Smuzhiyun "bootfile=uImage\0"	\
876*4882a593Smuzhiyun "tftpflash=tftpboot $loadaddr $uboot; "	\
877*4882a593Smuzhiyun 	"protect off " __stringify(CONFIG_SYS_TEXT_BASE) " +$filesize; " \
878*4882a593Smuzhiyun 	"erase " __stringify(CONFIG_SYS_TEXT_BASE) " +$filesize; "	\
879*4882a593Smuzhiyun 	"cp.b $loadaddr " __stringify(CONFIG_SYS_TEXT_BASE) " $filesize; " \
880*4882a593Smuzhiyun 	"protect on " __stringify(CONFIG_SYS_TEXT_BASE) " +$filesize; "	\
881*4882a593Smuzhiyun 	"cmp.b $loadaddr " __stringify(CONFIG_SYS_TEXT_BASE) " $filesize\0" \
882*4882a593Smuzhiyun "hwconfig=usb1:dr_mode=host,phy_type=ulpi\0"    \
883*4882a593Smuzhiyun "consoledev=ttyS0\0"	\
884*4882a593Smuzhiyun "ramdiskaddr=2000000\0"	\
885*4882a593Smuzhiyun "ramdiskfile=rootfs.ext2.gz.uboot\0"	\
886*4882a593Smuzhiyun "fdtaddr=1e00000\0"	\
887*4882a593Smuzhiyun "bdev=sda1\0" \
888*4882a593Smuzhiyun "jffs2nor=mtdblock3\0"	\
889*4882a593Smuzhiyun "norbootaddr=ef080000\0"	\
890*4882a593Smuzhiyun "norfdtaddr=ef040000\0"	\
891*4882a593Smuzhiyun "jffs2nand=mtdblock9\0"	\
892*4882a593Smuzhiyun "nandbootaddr=100000\0"	\
893*4882a593Smuzhiyun "nandfdtaddr=80000\0"		\
894*4882a593Smuzhiyun "ramdisk_size=120000\0"	\
895*4882a593Smuzhiyun "map_lowernorbank=i2c dev 1; i2c mw 18 1 02 1; i2c mw 18 3 fd 1\0" \
896*4882a593Smuzhiyun "map_uppernorbank=i2c dev 1; i2c mw 18 1 00 1; i2c mw 18 3 fd 1\0" \
897*4882a593Smuzhiyun __stringify(__NOR_RST_CMD)"\0" \
898*4882a593Smuzhiyun __stringify(__SPI_RST_CMD)"\0" \
899*4882a593Smuzhiyun __stringify(__SD_RST_CMD)"\0" \
900*4882a593Smuzhiyun __stringify(__NAND_RST_CMD)"\0" \
901*4882a593Smuzhiyun __stringify(__PCIE_RST_CMD)"\0"
902*4882a593Smuzhiyun 
903*4882a593Smuzhiyun #define CONFIG_NFSBOOTCOMMAND	\
904*4882a593Smuzhiyun "setenv bootargs root=/dev/nfs rw "	\
905*4882a593Smuzhiyun "nfsroot=$serverip:$rootpath "	\
906*4882a593Smuzhiyun "ip=$ipaddr:$serverip:$gatewayip:$netmask:$hostname:$netdev:off " \
907*4882a593Smuzhiyun "console=$consoledev,$baudrate $othbootargs;" \
908*4882a593Smuzhiyun "tftp $loadaddr $bootfile;"	\
909*4882a593Smuzhiyun "tftp $fdtaddr $fdtfile;"	\
910*4882a593Smuzhiyun "bootm $loadaddr - $fdtaddr"
911*4882a593Smuzhiyun 
912*4882a593Smuzhiyun #define CONFIG_HDBOOT	\
913*4882a593Smuzhiyun "setenv bootargs root=/dev/$bdev rw rootdelay=30 "	\
914*4882a593Smuzhiyun "console=$consoledev,$baudrate $othbootargs;" \
915*4882a593Smuzhiyun "usb start;"	\
916*4882a593Smuzhiyun "ext2load usb 0:1 $loadaddr /boot/$bootfile;"	\
917*4882a593Smuzhiyun "ext2load usb 0:1 $fdtaddr /boot/$fdtfile;"	\
918*4882a593Smuzhiyun "bootm $loadaddr - $fdtaddr"
919*4882a593Smuzhiyun 
920*4882a593Smuzhiyun #define CONFIG_USB_FAT_BOOT	\
921*4882a593Smuzhiyun "setenv bootargs root=/dev/ram rw "	\
922*4882a593Smuzhiyun "console=$consoledev,$baudrate $othbootargs " \
923*4882a593Smuzhiyun "ramdisk_size=$ramdisk_size;"	\
924*4882a593Smuzhiyun "usb start;"	\
925*4882a593Smuzhiyun "fatload usb 0:2 $loadaddr $bootfile;"	\
926*4882a593Smuzhiyun "fatload usb 0:2 $fdtaddr $fdtfile;"	\
927*4882a593Smuzhiyun "fatload usb 0:2 $ramdiskaddr $ramdiskfile;"	\
928*4882a593Smuzhiyun "bootm $loadaddr $ramdiskaddr $fdtaddr"
929*4882a593Smuzhiyun 
930*4882a593Smuzhiyun #define CONFIG_USB_EXT2_BOOT	\
931*4882a593Smuzhiyun "setenv bootargs root=/dev/ram rw "	\
932*4882a593Smuzhiyun "console=$consoledev,$baudrate $othbootargs " \
933*4882a593Smuzhiyun "ramdisk_size=$ramdisk_size;"	\
934*4882a593Smuzhiyun "usb start;"	\
935*4882a593Smuzhiyun "ext2load usb 0:4 $loadaddr $bootfile;"	\
936*4882a593Smuzhiyun "ext2load usb 0:4 $fdtaddr $fdtfile;" \
937*4882a593Smuzhiyun "ext2load usb 0:4 $ramdiskaddr $ramdiskfile;" \
938*4882a593Smuzhiyun "bootm $loadaddr $ramdiskaddr $fdtaddr"
939*4882a593Smuzhiyun 
940*4882a593Smuzhiyun #define CONFIG_NORBOOT	\
941*4882a593Smuzhiyun "setenv bootargs root=/dev/$jffs2nor rw "	\
942*4882a593Smuzhiyun "console=$consoledev,$baudrate rootfstype=jffs2 $othbootargs;"	\
943*4882a593Smuzhiyun "bootm $norbootaddr - $norfdtaddr"
944*4882a593Smuzhiyun 
945*4882a593Smuzhiyun #define CONFIG_RAMBOOTCOMMAND	\
946*4882a593Smuzhiyun "setenv bootargs root=/dev/ram rw "	\
947*4882a593Smuzhiyun "console=$consoledev,$baudrate $othbootargs " \
948*4882a593Smuzhiyun "ramdisk_size=$ramdisk_size;"	\
949*4882a593Smuzhiyun "tftp $ramdiskaddr $ramdiskfile;"	\
950*4882a593Smuzhiyun "tftp $loadaddr $bootfile;"	\
951*4882a593Smuzhiyun "tftp $fdtaddr $fdtfile;"	\
952*4882a593Smuzhiyun "bootm $loadaddr $ramdiskaddr $fdtaddr"
953*4882a593Smuzhiyun 
954*4882a593Smuzhiyun #define CONFIG_BOOTCOMMAND	CONFIG_HDBOOT
955*4882a593Smuzhiyun 
956*4882a593Smuzhiyun #endif /* __CONFIG_H */
957