xref: /rk3399_rockchip-uboot/include/configs/flea3.h (revision deb53483df20d3a02bb041624ca91c93adc3ec87)
1*deb53483SStefano Babic /*
2*deb53483SStefano Babic  * (C) Copyright 2011, Stefano Babic <sbabic@denx.de>
3*deb53483SStefano Babic  *
4*deb53483SStefano Babic  * (C) Copyright 2008-2010 Freescale Semiconductor, Inc.
5*deb53483SStefano Babic  *
6*deb53483SStefano Babic  * Copyright (C) 2007, Guennadi Liakhovetski <lg@denx.de>
7*deb53483SStefano Babic  *
8*deb53483SStefano Babic  * Configuration for the flea3 board.
9*deb53483SStefano Babic  *
10*deb53483SStefano Babic  * This program is free software; you can redistribute it and/or
11*deb53483SStefano Babic  * modify it under the terms of the GNU General Public License as
12*deb53483SStefano Babic  * published by the Free Software Foundation; either version 2 of
13*deb53483SStefano Babic  * the License, or (at your option) any later version.
14*deb53483SStefano Babic  *
15*deb53483SStefano Babic  * This program is distributed in the hope that it will be useful,
16*deb53483SStefano Babic  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17*deb53483SStefano Babic  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	 See the
18*deb53483SStefano Babic  * GNU General Public License for more details.
19*deb53483SStefano Babic  *
20*deb53483SStefano Babic  * You should have received a copy of the GNU General Public License
21*deb53483SStefano Babic  * along with this program; if not, write to the Free Software
22*deb53483SStefano Babic  * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
23*deb53483SStefano Babic  * MA 02111-1307 USA
24*deb53483SStefano Babic  */
25*deb53483SStefano Babic 
26*deb53483SStefano Babic #ifndef __CONFIG_H
27*deb53483SStefano Babic #define __CONFIG_H
28*deb53483SStefano Babic 
29*deb53483SStefano Babic #include <asm/arch/imx-regs.h>
30*deb53483SStefano Babic 
31*deb53483SStefano Babic  /* High Level Configuration Options */
32*deb53483SStefano Babic #define CONFIG_ARM1136	/* This is an arm1136 CPU core */
33*deb53483SStefano Babic #define CONFIG_MX35
34*deb53483SStefano Babic #define CONFIG_MX35_HCLK_FREQ	24000000
35*deb53483SStefano Babic 
36*deb53483SStefano Babic #define CONFIG_SYS_DCACHE_OFF
37*deb53483SStefano Babic 
38*deb53483SStefano Babic #define CONFIG_DISPLAY_CPUINFO
39*deb53483SStefano Babic 
40*deb53483SStefano Babic /* Only in case the value is not present in mach-types.h */
41*deb53483SStefano Babic #ifndef MACH_TYPE_FLEA3
42*deb53483SStefano Babic #define MACH_TYPE_FLEA3                3668
43*deb53483SStefano Babic #endif
44*deb53483SStefano Babic 
45*deb53483SStefano Babic #define CONFIG_MACH_TYPE		MACH_TYPE_FLEA3
46*deb53483SStefano Babic 
47*deb53483SStefano Babic /* Set TEXT at the beginning of the NOR flash */
48*deb53483SStefano Babic #define CONFIG_SYS_TEXT_BASE	0xA0000000
49*deb53483SStefano Babic 
50*deb53483SStefano Babic #define CONFIG_SYS_64BIT_VSPRINTF
51*deb53483SStefano Babic 
52*deb53483SStefano Babic /* This is required to setup the ESDC controller */
53*deb53483SStefano Babic #define CONFIG_BOARD_EARLY_INIT_F
54*deb53483SStefano Babic 
55*deb53483SStefano Babic #define CONFIG_CMDLINE_TAG		/* enable passing of ATAGs */
56*deb53483SStefano Babic #define CONFIG_REVISION_TAG
57*deb53483SStefano Babic #define CONFIG_SETUP_MEMORY_TAGS
58*deb53483SStefano Babic #define CONFIG_INITRD_TAG
59*deb53483SStefano Babic 
60*deb53483SStefano Babic /*
61*deb53483SStefano Babic  * Size of malloc() pool
62*deb53483SStefano Babic  */
63*deb53483SStefano Babic #define CONFIG_SYS_MALLOC_LEN		(CONFIG_ENV_SIZE + 1024 * 1024)
64*deb53483SStefano Babic 
65*deb53483SStefano Babic /*
66*deb53483SStefano Babic  * Hardware drivers
67*deb53483SStefano Babic  */
68*deb53483SStefano Babic #define CONFIG_HARD_I2C
69*deb53483SStefano Babic #define CONFIG_I2C_MXC
70*deb53483SStefano Babic #define CONFIG_SYS_I2C_MX35_PORT3
71*deb53483SStefano Babic #define CONFIG_SYS_I2C_SPEED		100000
72*deb53483SStefano Babic #define CONFIG_SYS_I2C_SLAVE		0xfe
73*deb53483SStefano Babic #define CONFIG_MXC_SPI
74*deb53483SStefano Babic #define CONFIG_MXC_GPIO
75*deb53483SStefano Babic 
76*deb53483SStefano Babic /*
77*deb53483SStefano Babic  * UART (console)
78*deb53483SStefano Babic  */
79*deb53483SStefano Babic #define CONFIG_MXC_UART
80*deb53483SStefano Babic #define CONFIG_SYS_MX35_UART3
81*deb53483SStefano Babic 
82*deb53483SStefano Babic /* allow to overwrite serial and ethaddr */
83*deb53483SStefano Babic #define CONFIG_ENV_OVERWRITE
84*deb53483SStefano Babic #define CONFIG_CONS_INDEX	1
85*deb53483SStefano Babic #define CONFIG_BAUDRATE		115200
86*deb53483SStefano Babic #define CONFIG_SYS_BAUDRATE_TABLE	{9600, 19200, 38400, 57600, 115200}
87*deb53483SStefano Babic 
88*deb53483SStefano Babic /*
89*deb53483SStefano Babic  * Command definition
90*deb53483SStefano Babic  */
91*deb53483SStefano Babic 
92*deb53483SStefano Babic #include <config_cmd_default.h>
93*deb53483SStefano Babic 
94*deb53483SStefano Babic #define CONFIG_CMD_PING
95*deb53483SStefano Babic #define CONFIG_CMD_DHCP
96*deb53483SStefano Babic #define CONFIG_BOOTP_SUBNETMASK
97*deb53483SStefano Babic #define CONFIG_BOOTP_GATEWAY
98*deb53483SStefano Babic #define CONFIG_BOOTP_DNS
99*deb53483SStefano Babic 
100*deb53483SStefano Babic #define CONFIG_CMD_NAND
101*deb53483SStefano Babic 
102*deb53483SStefano Babic #define CONFIG_CMD_I2C
103*deb53483SStefano Babic #define CONFIG_CMD_SPI
104*deb53483SStefano Babic #define CONFIG_CMD_MII
105*deb53483SStefano Babic #define CONFIG_CMD_NET
106*deb53483SStefano Babic #define CONFIG_NET_RETRY_COUNT	100
107*deb53483SStefano Babic 
108*deb53483SStefano Babic #define CONFIG_BOOTDELAY	3
109*deb53483SStefano Babic 
110*deb53483SStefano Babic #define CONFIG_LOADADDR		0x90800000	/* loadaddr env var */
111*deb53483SStefano Babic 
112*deb53483SStefano Babic 
113*deb53483SStefano Babic /*
114*deb53483SStefano Babic  * Ethernet on SOC (FEC)
115*deb53483SStefano Babic  */
116*deb53483SStefano Babic #define CONFIG_NET_MULTI
117*deb53483SStefano Babic #define CONFIG_FEC_MXC
118*deb53483SStefano Babic #define IMX_FEC_BASE	FEC_BASE_ADDR
119*deb53483SStefano Babic #define CONFIG_PHYLIB
120*deb53483SStefano Babic #define CONFIG_PHY_MICREL
121*deb53483SStefano Babic #define CONFIG_FEC_MXC_PHYADDR	0x1
122*deb53483SStefano Babic 
123*deb53483SStefano Babic #define CONFIG_MII
124*deb53483SStefano Babic #define CONFIG_DISCOVER_PHY
125*deb53483SStefano Babic 
126*deb53483SStefano Babic #define CONFIG_ARP_TIMEOUT	200UL
127*deb53483SStefano Babic 
128*deb53483SStefano Babic /*
129*deb53483SStefano Babic  * Miscellaneous configurable options
130*deb53483SStefano Babic  */
131*deb53483SStefano Babic #define CONFIG_SYS_LONGHELP	/* undef to save memory */
132*deb53483SStefano Babic #define CONFIG_SYS_PROMPT	"flea3 U-Boot > "
133*deb53483SStefano Babic #define CONFIG_CMDLINE_EDITING
134*deb53483SStefano Babic #define CONFIG_SYS_HUSH_PARSER	/* Use the HUSH parser */
135*deb53483SStefano Babic #define	CONFIG_SYS_PROMPT_HUSH_PS2	"> "
136*deb53483SStefano Babic 
137*deb53483SStefano Babic #define CONFIG_AUTO_COMPLETE
138*deb53483SStefano Babic #define CONFIG_SYS_CBSIZE	256	/* Console I/O Buffer Size */
139*deb53483SStefano Babic /* Print Buffer Size */
140*deb53483SStefano Babic #define CONFIG_SYS_PBSIZE (CONFIG_SYS_CBSIZE + sizeof(CONFIG_SYS_PROMPT) + 16)
141*deb53483SStefano Babic #define CONFIG_SYS_MAXARGS	16	/* max number of command args */
142*deb53483SStefano Babic #define CONFIG_SYS_BARGSIZE CONFIG_SYS_CBSIZE /* Boot Argument Buffer Size */
143*deb53483SStefano Babic 
144*deb53483SStefano Babic #define CONFIG_SYS_MEMTEST_START	0	/* memtest works on */
145*deb53483SStefano Babic #define CONFIG_SYS_MEMTEST_END		0x10000
146*deb53483SStefano Babic 
147*deb53483SStefano Babic #undef	CONFIG_SYS_CLKS_IN_HZ	/* everything, incl board info, in Hz */
148*deb53483SStefano Babic 
149*deb53483SStefano Babic #define CONFIG_SYS_LOAD_ADDR		CONFIG_LOADADDR
150*deb53483SStefano Babic 
151*deb53483SStefano Babic #define CONFIG_SYS_HZ				1000
152*deb53483SStefano Babic 
153*deb53483SStefano Babic 
154*deb53483SStefano Babic /*
155*deb53483SStefano Babic  * Stack sizes
156*deb53483SStefano Babic  *
157*deb53483SStefano Babic  * The stack sizes are set up in start.S using the settings below
158*deb53483SStefano Babic  */
159*deb53483SStefano Babic #define CONFIG_STACKSIZE	(128 * 1024)	/* regular stack */
160*deb53483SStefano Babic 
161*deb53483SStefano Babic /*
162*deb53483SStefano Babic  * Physical Memory Map
163*deb53483SStefano Babic  */
164*deb53483SStefano Babic #define CONFIG_NR_DRAM_BANKS	1
165*deb53483SStefano Babic #define PHYS_SDRAM_1		CSD1_BASE_ADDR
166*deb53483SStefano Babic #define PHYS_SDRAM_1_SIZE	(128 * 1024 * 1024)
167*deb53483SStefano Babic 
168*deb53483SStefano Babic #define CONFIG_SYS_SDRAM_BASE		CSD1_BASE_ADDR
169*deb53483SStefano Babic #define CONFIG_SYS_INIT_RAM_ADDR	(IRAM_BASE_ADDR + 0x10000)
170*deb53483SStefano Babic #define CONFIG_SYS_INIT_RAM_SIZE		(IRAM_SIZE / 2)
171*deb53483SStefano Babic #define CONFIG_SYS_GBL_DATA_OFFSET	(CONFIG_SYS_INIT_RAM_SIZE - \
172*deb53483SStefano Babic 					GENERATED_GBL_DATA_SIZE)
173*deb53483SStefano Babic #define CONFIG_SYS_INIT_SP_ADDR		(CONFIG_SYS_INIT_RAM_ADDR + \
174*deb53483SStefano Babic 					CONFIG_SYS_GBL_DATA_OFFSET)
175*deb53483SStefano Babic 
176*deb53483SStefano Babic /*
177*deb53483SStefano Babic  * MTD Command for mtdparts
178*deb53483SStefano Babic  */
179*deb53483SStefano Babic #define CONFIG_CMD_MTDPARTS
180*deb53483SStefano Babic #define CONFIG_MTD_DEVICE
181*deb53483SStefano Babic #define CONFIG_FLASH_CFI_MTD
182*deb53483SStefano Babic #define CONFIG_MTD_PARTITIONS
183*deb53483SStefano Babic #define MTDIDS_DEFAULT		"nand0=mxc_nand,nor0=physmap-flash.0"
184*deb53483SStefano Babic #define MTDPARTS_DEFAULT	"mtdparts=mxc_nand:196m(root1)," \
185*deb53483SStefano Babic 				"196m(root2),-(user);"	\
186*deb53483SStefano Babic 				"physmap-flash.0:512k(u-boot),64k(env1)," \
187*deb53483SStefano Babic 				"64k(env2),3776k(kernel1),3776k(kernel2)"
188*deb53483SStefano Babic /*
189*deb53483SStefano Babic  * FLASH and environment organization
190*deb53483SStefano Babic  */
191*deb53483SStefano Babic #define CONFIG_SYS_FLASH_BASE		CS0_BASE_ADDR
192*deb53483SStefano Babic #define CONFIG_SYS_MAX_FLASH_BANKS 1	/* max number of memory banks */
193*deb53483SStefano Babic #define CONFIG_SYS_MAX_FLASH_SECT 512	/* max number of sectors on one chip */
194*deb53483SStefano Babic /* Monitor at beginning of flash */
195*deb53483SStefano Babic #define CONFIG_SYS_MONITOR_BASE	CONFIG_SYS_FLASH_BASE
196*deb53483SStefano Babic #define CONFIG_SYS_MONITOR_LEN		(512 * 1024)
197*deb53483SStefano Babic 
198*deb53483SStefano Babic #define CONFIG_ENV_SECT_SIZE	(64 * 1024)
199*deb53483SStefano Babic #define CONFIG_ENV_SIZE		CONFIG_ENV_SECT_SIZE
200*deb53483SStefano Babic 
201*deb53483SStefano Babic /* Address and size of Redundant Environment Sector	*/
202*deb53483SStefano Babic #define CONFIG_ENV_OFFSET_REDUND	(CONFIG_ENV_OFFSET + CONFIG_ENV_SIZE)
203*deb53483SStefano Babic #define CONFIG_ENV_SIZE_REDUND	CONFIG_ENV_SIZE
204*deb53483SStefano Babic 
205*deb53483SStefano Babic #define CONFIG_ENV_ADDR		(CONFIG_SYS_MONITOR_BASE + \
206*deb53483SStefano Babic 				CONFIG_SYS_MONITOR_LEN)
207*deb53483SStefano Babic 
208*deb53483SStefano Babic #define CONFIG_ENV_IS_IN_FLASH
209*deb53483SStefano Babic 
210*deb53483SStefano Babic /*
211*deb53483SStefano Babic  * CFI FLASH driver setup
212*deb53483SStefano Babic  */
213*deb53483SStefano Babic #define CONFIG_SYS_FLASH_CFI		/* Flash memory is CFI compliant */
214*deb53483SStefano Babic #define CONFIG_FLASH_CFI_DRIVER
215*deb53483SStefano Babic 
216*deb53483SStefano Babic /* A non-standard buffered write algorithm */
217*deb53483SStefano Babic #define CONFIG_SYS_FLASH_USE_BUFFER_WRITE	/* faster */
218*deb53483SStefano Babic #define CONFIG_SYS_FLASH_PROTECTION	/* Use hardware sector protection */
219*deb53483SStefano Babic 
220*deb53483SStefano Babic /*
221*deb53483SStefano Babic  * NAND FLASH driver setup
222*deb53483SStefano Babic  */
223*deb53483SStefano Babic #define CONFIG_NAND_MXC
224*deb53483SStefano Babic #define CONFIG_NAND_MXC_V1_1
225*deb53483SStefano Babic #define CONFIG_MXC_NAND_REGS_BASE	(NFC_BASE_ADDR)
226*deb53483SStefano Babic #define CONFIG_SYS_MAX_NAND_DEVICE	1
227*deb53483SStefano Babic #define CONFIG_SYS_NAND_BASE		(NFC_BASE_ADDR)
228*deb53483SStefano Babic #define CONFIG_MXC_NAND_HWECC
229*deb53483SStefano Babic #define CONFIG_SYS_NAND_LARGEPAGE
230*deb53483SStefano Babic 
231*deb53483SStefano Babic /*
232*deb53483SStefano Babic  * Default environment and default scripts
233*deb53483SStefano Babic  * to update uboot and load kernel
234*deb53483SStefano Babic  */
235*deb53483SStefano Babic #define xstr(s)	str(s)
236*deb53483SStefano Babic #define str(s)	#s
237*deb53483SStefano Babic 
238*deb53483SStefano Babic #define CONFIG_HOSTNAME flea3
239*deb53483SStefano Babic #define	CONFIG_EXTRA_ENV_SETTINGS					\
240*deb53483SStefano Babic 	"netdev=eth0\0"							\
241*deb53483SStefano Babic 	"nfsargs=setenv bootargs root=/dev/nfs rw "			\
242*deb53483SStefano Babic 		"nfsroot=${serverip}:${rootpath}\0"			\
243*deb53483SStefano Babic 	"ramargs=setenv bootargs root=/dev/ram rw\0"			\
244*deb53483SStefano Babic 	"addip_sta=setenv bootargs ${bootargs} "			\
245*deb53483SStefano Babic 		"ip=${ipaddr}:${serverip}:${gatewayip}:${netmask}"	\
246*deb53483SStefano Babic 		":${hostname}:${netdev}:off panic=1\0"			\
247*deb53483SStefano Babic 	"addip_dyn=setenv bootargs ${bootargs} ip=dhcp\0"		\
248*deb53483SStefano Babic 	"addip=if test -n ${ipdyn};then run addip_dyn;"			\
249*deb53483SStefano Babic 		"else run addip_sta;fi\0"	\
250*deb53483SStefano Babic 	"addmtd=setenv bootargs ${bootargs} ${mtdparts}\0"		\
251*deb53483SStefano Babic 	"addtty=setenv bootargs ${bootargs}"				\
252*deb53483SStefano Babic 		" console=ttymxc0,${baudrate}\0"			\
253*deb53483SStefano Babic 	"addmisc=setenv bootargs ${bootargs} ${misc}\0"			\
254*deb53483SStefano Babic 	"loadaddr=90800000\0"						\
255*deb53483SStefano Babic 	"kernel_addr_r=90800000\0"					\
256*deb53483SStefano Babic 	"hostname=" xstr(CONFIG_HOSTNAME) "\0"				\
257*deb53483SStefano Babic 	"bootfile=" xstr(CONFIG_HOSTNAME) "/uImage\0"			\
258*deb53483SStefano Babic 	"ramdisk_file=" xstr(CONFIG_HOSTNAME) "/uRamdisk\0"		\
259*deb53483SStefano Babic 	"flash_self=run ramargs addip addtty addmtd addmisc;"		\
260*deb53483SStefano Babic 		"bootm ${kernel_addr} ${ramdisk_addr}\0"		\
261*deb53483SStefano Babic 	"flash_nfs=run nfsargs addip addtty addmtd addmisc;"		\
262*deb53483SStefano Babic 		"bootm ${kernel_addr}\0"				\
263*deb53483SStefano Babic 	"net_nfs=tftp ${kernel_addr_r} ${bootfile}; "			\
264*deb53483SStefano Babic 		"run nfsargs addip addtty addmtd addmisc;"		\
265*deb53483SStefano Babic 		"bootm ${kernel_addr_r}\0"				\
266*deb53483SStefano Babic 	"net_self_load=tftp ${kernel_addr_r} ${bootfile};"		\
267*deb53483SStefano Babic 		"tftp ${ramdisk_addr_r} ${ramdisk_file};\0"		\
268*deb53483SStefano Babic 	"net_self=if run net_self_load;then "				\
269*deb53483SStefano Babic 		"run ramargs addip addtty addmtd addmisc;"		\
270*deb53483SStefano Babic 		"bootm ${kernel_addr_r} ${ramdisk_addr_r};"		\
271*deb53483SStefano Babic 		"else echo Images not loades;fi\0"			\
272*deb53483SStefano Babic 	"u-boot=" xstr(CONFIG_HOSTNAME) "/u-boot.bin\0"			\
273*deb53483SStefano Babic 	"load=tftp ${loadaddr} ${u-boot}\0"				\
274*deb53483SStefano Babic 	"uboot_addr=" xstr(CONFIG_SYS_MONITOR_BASE) "\0"		\
275*deb53483SStefano Babic 	"update=protect off ${uboot_addr} +40000;"			\
276*deb53483SStefano Babic 		"erase ${uboot_addr} +40000;"				\
277*deb53483SStefano Babic 		"cp.b ${loadaddr} ${uboot_addr} ${filesize}\0"		\
278*deb53483SStefano Babic 	"upd=if run load;then echo Updating u-boot;if run update;"	\
279*deb53483SStefano Babic 		"then echo U-Boot updated;"				\
280*deb53483SStefano Babic 			"else echo Error updating u-boot !;"		\
281*deb53483SStefano Babic 			"echo Board without bootloader !!;"		\
282*deb53483SStefano Babic 		"fi;"							\
283*deb53483SStefano Babic 		"else echo U-Boot not downloaded..exiting;fi\0"		\
284*deb53483SStefano Babic 	"bootcmd=run net_nfs\0"
285*deb53483SStefano Babic 
286*deb53483SStefano Babic #endif				/* __CONFIG_H */
287