xref: /OK3568_Linux_fs/u-boot/include/configs/devkit3250.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun /*
2*4882a593Smuzhiyun  * Embest/Timll DevKit3250 board configuration file
3*4882a593Smuzhiyun  *
4*4882a593Smuzhiyun  * Copyright (C) 2011-2015 Vladimir Zapolskiy <vz@mleia.com>
5*4882a593Smuzhiyun  *
6*4882a593Smuzhiyun  * SPDX-License-Identifier:	GPL-2.0+
7*4882a593Smuzhiyun  */
8*4882a593Smuzhiyun 
9*4882a593Smuzhiyun #ifndef __CONFIG_DEVKIT3250_H__
10*4882a593Smuzhiyun #define __CONFIG_DEVKIT3250_H__
11*4882a593Smuzhiyun 
12*4882a593Smuzhiyun /* SoC and board defines */
13*4882a593Smuzhiyun #include <linux/sizes.h>
14*4882a593Smuzhiyun #include <asm/arch/cpu.h>
15*4882a593Smuzhiyun 
16*4882a593Smuzhiyun #define CONFIG_MACH_TYPE		MACH_TYPE_DEVKIT3250
17*4882a593Smuzhiyun 
18*4882a593Smuzhiyun #define CONFIG_SYS_ICACHE_OFF
19*4882a593Smuzhiyun #define CONFIG_SYS_DCACHE_OFF
20*4882a593Smuzhiyun #if !defined(CONFIG_SPL_BUILD)
21*4882a593Smuzhiyun #define CONFIG_SKIP_LOWLEVEL_INIT
22*4882a593Smuzhiyun #endif
23*4882a593Smuzhiyun 
24*4882a593Smuzhiyun /*
25*4882a593Smuzhiyun  * Memory configurations
26*4882a593Smuzhiyun  */
27*4882a593Smuzhiyun #define CONFIG_NR_DRAM_BANKS		1
28*4882a593Smuzhiyun #define CONFIG_SYS_MALLOC_LEN		SZ_1M
29*4882a593Smuzhiyun #define CONFIG_SYS_SDRAM_BASE		EMC_DYCS0_BASE
30*4882a593Smuzhiyun #define CONFIG_SYS_SDRAM_SIZE		SZ_64M
31*4882a593Smuzhiyun #define CONFIG_SYS_TEXT_BASE		0x83F00000
32*4882a593Smuzhiyun #define CONFIG_SYS_MEMTEST_START	(CONFIG_SYS_SDRAM_BASE + SZ_32K)
33*4882a593Smuzhiyun #define CONFIG_SYS_MEMTEST_END		(CONFIG_SYS_TEXT_BASE - SZ_1M)
34*4882a593Smuzhiyun 
35*4882a593Smuzhiyun #define CONFIG_SYS_LOAD_ADDR		(CONFIG_SYS_SDRAM_BASE + SZ_32K)
36*4882a593Smuzhiyun 
37*4882a593Smuzhiyun #define CONFIG_SYS_INIT_SP_ADDR		(CONFIG_SYS_SDRAM_BASE + SZ_4K \
38*4882a593Smuzhiyun 					 - GENERATED_GBL_DATA_SIZE)
39*4882a593Smuzhiyun 
40*4882a593Smuzhiyun /*
41*4882a593Smuzhiyun  * Serial Driver
42*4882a593Smuzhiyun  */
43*4882a593Smuzhiyun #define CONFIG_SYS_LPC32XX_UART		5   /* UART5 */
44*4882a593Smuzhiyun 
45*4882a593Smuzhiyun /*
46*4882a593Smuzhiyun  * DMA
47*4882a593Smuzhiyun  */
48*4882a593Smuzhiyun #if !defined(CONFIG_SPL_BUILD)
49*4882a593Smuzhiyun #define CONFIG_DMA_LPC32XX
50*4882a593Smuzhiyun #endif
51*4882a593Smuzhiyun 
52*4882a593Smuzhiyun /*
53*4882a593Smuzhiyun  * I2C
54*4882a593Smuzhiyun  */
55*4882a593Smuzhiyun #define CONFIG_SYS_I2C
56*4882a593Smuzhiyun #define CONFIG_SYS_I2C_LPC32XX
57*4882a593Smuzhiyun #define CONFIG_SYS_I2C_SPEED		100000
58*4882a593Smuzhiyun 
59*4882a593Smuzhiyun /*
60*4882a593Smuzhiyun  * GPIO
61*4882a593Smuzhiyun  */
62*4882a593Smuzhiyun #define CONFIG_LPC32XX_GPIO
63*4882a593Smuzhiyun 
64*4882a593Smuzhiyun /*
65*4882a593Smuzhiyun  * SSP/SPI
66*4882a593Smuzhiyun  */
67*4882a593Smuzhiyun #define CONFIG_LPC32XX_SSP_TIMEOUT	100000
68*4882a593Smuzhiyun 
69*4882a593Smuzhiyun /*
70*4882a593Smuzhiyun  * Ethernet
71*4882a593Smuzhiyun  */
72*4882a593Smuzhiyun #define CONFIG_RMII
73*4882a593Smuzhiyun #define CONFIG_PHY_SMSC
74*4882a593Smuzhiyun #define CONFIG_LPC32XX_ETH
75*4882a593Smuzhiyun #define CONFIG_PHY_ADDR			0x1F
76*4882a593Smuzhiyun #define CONFIG_SYS_FAULT_ECHO_LINK_DOWN
77*4882a593Smuzhiyun 
78*4882a593Smuzhiyun /*
79*4882a593Smuzhiyun  * NOR Flash
80*4882a593Smuzhiyun  */
81*4882a593Smuzhiyun #define CONFIG_SYS_MAX_FLASH_BANKS	1
82*4882a593Smuzhiyun #define CONFIG_SYS_MAX_FLASH_SECT	71
83*4882a593Smuzhiyun #define CONFIG_SYS_FLASH_BASE		EMC_CS0_BASE
84*4882a593Smuzhiyun #define CONFIG_SYS_FLASH_SIZE		SZ_4M
85*4882a593Smuzhiyun #define CONFIG_SYS_FLASH_CFI
86*4882a593Smuzhiyun 
87*4882a593Smuzhiyun /*
88*4882a593Smuzhiyun  * NAND controller
89*4882a593Smuzhiyun  */
90*4882a593Smuzhiyun #define CONFIG_SYS_NAND_BASE		SLC_NAND_BASE
91*4882a593Smuzhiyun #define CONFIG_SYS_MAX_NAND_DEVICE	1
92*4882a593Smuzhiyun #define CONFIG_SYS_NAND_BASE_LIST	{ CONFIG_SYS_NAND_BASE }
93*4882a593Smuzhiyun 
94*4882a593Smuzhiyun /*
95*4882a593Smuzhiyun  * NAND chip timings
96*4882a593Smuzhiyun  */
97*4882a593Smuzhiyun #define CONFIG_LPC32XX_NAND_SLC_WDR_CLKS	14
98*4882a593Smuzhiyun #define CONFIG_LPC32XX_NAND_SLC_WWIDTH		66666666
99*4882a593Smuzhiyun #define CONFIG_LPC32XX_NAND_SLC_WHOLD		200000000
100*4882a593Smuzhiyun #define CONFIG_LPC32XX_NAND_SLC_WSETUP		50000000
101*4882a593Smuzhiyun #define CONFIG_LPC32XX_NAND_SLC_RDR_CLKS	14
102*4882a593Smuzhiyun #define CONFIG_LPC32XX_NAND_SLC_RWIDTH		66666666
103*4882a593Smuzhiyun #define CONFIG_LPC32XX_NAND_SLC_RHOLD		200000000
104*4882a593Smuzhiyun #define CONFIG_LPC32XX_NAND_SLC_RSETUP		50000000
105*4882a593Smuzhiyun 
106*4882a593Smuzhiyun #define CONFIG_SYS_NAND_BLOCK_SIZE		0x20000
107*4882a593Smuzhiyun #define CONFIG_SYS_NAND_PAGE_SIZE		NAND_LARGE_BLOCK_PAGE_SIZE
108*4882a593Smuzhiyun #define CONFIG_SYS_NAND_USE_FLASH_BBT
109*4882a593Smuzhiyun 
110*4882a593Smuzhiyun /*
111*4882a593Smuzhiyun  * USB
112*4882a593Smuzhiyun  */
113*4882a593Smuzhiyun #define CONFIG_USB_OHCI_LPC32XX
114*4882a593Smuzhiyun #define CONFIG_USB_ISP1301_I2C_ADDR		0x2d
115*4882a593Smuzhiyun 
116*4882a593Smuzhiyun /*
117*4882a593Smuzhiyun  * U-Boot General Configurations
118*4882a593Smuzhiyun  */
119*4882a593Smuzhiyun #define CONFIG_SYS_LONGHELP
120*4882a593Smuzhiyun #define CONFIG_SYS_CBSIZE		1024
121*4882a593Smuzhiyun #define CONFIG_SYS_BARGSIZE		CONFIG_SYS_CBSIZE
122*4882a593Smuzhiyun 
123*4882a593Smuzhiyun #define CONFIG_AUTO_COMPLETE
124*4882a593Smuzhiyun #define CONFIG_CMDLINE_EDITING
125*4882a593Smuzhiyun 
126*4882a593Smuzhiyun /*
127*4882a593Smuzhiyun  * Pass open firmware flat tree
128*4882a593Smuzhiyun  */
129*4882a593Smuzhiyun 
130*4882a593Smuzhiyun /*
131*4882a593Smuzhiyun  * Environment
132*4882a593Smuzhiyun  */
133*4882a593Smuzhiyun #define CONFIG_ENV_SIZE			SZ_128K
134*4882a593Smuzhiyun #define CONFIG_ENV_OFFSET		0x000A0000
135*4882a593Smuzhiyun 
136*4882a593Smuzhiyun #define CONFIG_BOOTCOMMAND			\
137*4882a593Smuzhiyun 	"dhcp; "				\
138*4882a593Smuzhiyun 	"tftp ${loadaddr} ${serverip}:${tftpdir}/${bootfile}; "		\
139*4882a593Smuzhiyun 	"tftp ${dtbaddr} ${serverip}:${tftpdir}/devkit3250.dtb; "	\
140*4882a593Smuzhiyun 	"setenv nfsargs ip=dhcp root=/dev/nfs nfsroot=${serverip}:${nfsroot},tcp; "	\
141*4882a593Smuzhiyun 	"setenv bootargs ${bootargs} ${nfsargs} ${userargs}; "			\
142*4882a593Smuzhiyun 	"bootm ${loadaddr} - ${dtbaddr}"
143*4882a593Smuzhiyun 
144*4882a593Smuzhiyun #define CONFIG_EXTRA_ENV_SETTINGS		\
145*4882a593Smuzhiyun 	"autoload=no\0"				\
146*4882a593Smuzhiyun 	"ethaddr=00:01:90:00:C0:81\0"		\
147*4882a593Smuzhiyun 	"dtbaddr=0x81000000\0"			\
148*4882a593Smuzhiyun 	"nfsroot=/opt/projects/images/vladimir/oe/devkit3250/rootfs\0"	\
149*4882a593Smuzhiyun 	"tftpdir=vladimir/oe/devkit3250\0"	\
150*4882a593Smuzhiyun 	"userargs=oops=panic\0"
151*4882a593Smuzhiyun 
152*4882a593Smuzhiyun /*
153*4882a593Smuzhiyun  * U-Boot Commands
154*4882a593Smuzhiyun  */
155*4882a593Smuzhiyun 
156*4882a593Smuzhiyun /*
157*4882a593Smuzhiyun  * Boot Linux
158*4882a593Smuzhiyun  */
159*4882a593Smuzhiyun #define CONFIG_CMDLINE_TAG
160*4882a593Smuzhiyun #define CONFIG_SETUP_MEMORY_TAGS
161*4882a593Smuzhiyun 
162*4882a593Smuzhiyun #define CONFIG_BOOTFILE			"uImage"
163*4882a593Smuzhiyun #define CONFIG_LOADADDR			0x80008000
164*4882a593Smuzhiyun 
165*4882a593Smuzhiyun /*
166*4882a593Smuzhiyun  * SPL specific defines
167*4882a593Smuzhiyun  */
168*4882a593Smuzhiyun /* SPL will be executed at offset 0 */
169*4882a593Smuzhiyun #define CONFIG_SPL_TEXT_BASE		0x00000000
170*4882a593Smuzhiyun 
171*4882a593Smuzhiyun /* SPL will use SRAM as stack */
172*4882a593Smuzhiyun #define CONFIG_SPL_STACK		0x0000FFF8
173*4882a593Smuzhiyun 
174*4882a593Smuzhiyun /* Use the framework and generic lib */
175*4882a593Smuzhiyun #define CONFIG_SPL_FRAMEWORK
176*4882a593Smuzhiyun 
177*4882a593Smuzhiyun /* SPL will use serial */
178*4882a593Smuzhiyun 
179*4882a593Smuzhiyun /* SPL loads an image from NAND */
180*4882a593Smuzhiyun #define CONFIG_SPL_NAND_RAW_ONLY
181*4882a593Smuzhiyun #define CONFIG_SPL_NAND_DRIVERS
182*4882a593Smuzhiyun 
183*4882a593Smuzhiyun #define CONFIG_SPL_NAND_ECC
184*4882a593Smuzhiyun #define CONFIG_SPL_NAND_SOFTECC
185*4882a593Smuzhiyun 
186*4882a593Smuzhiyun #define CONFIG_SPL_MAX_SIZE		0x20000
187*4882a593Smuzhiyun #define CONFIG_SPL_PAD_TO		CONFIG_SPL_MAX_SIZE
188*4882a593Smuzhiyun 
189*4882a593Smuzhiyun /* U-Boot will be 0x60000 bytes, loaded and run at CONFIG_SYS_TEXT_BASE */
190*4882a593Smuzhiyun #define CONFIG_SYS_NAND_U_BOOT_OFFS	0x40000
191*4882a593Smuzhiyun #define CONFIG_SYS_NAND_U_BOOT_SIZE	0x60000
192*4882a593Smuzhiyun 
193*4882a593Smuzhiyun #define CONFIG_SYS_NAND_U_BOOT_START	CONFIG_SYS_TEXT_BASE
194*4882a593Smuzhiyun #define CONFIG_SYS_NAND_U_BOOT_DST	CONFIG_SYS_TEXT_BASE
195*4882a593Smuzhiyun 
196*4882a593Smuzhiyun /* See common/spl/spl.c  spl_set_header_raw_uboot() */
197*4882a593Smuzhiyun #define CONFIG_SYS_MONITOR_LEN		CONFIG_SYS_NAND_U_BOOT_SIZE
198*4882a593Smuzhiyun 
199*4882a593Smuzhiyun /*
200*4882a593Smuzhiyun  * Include SoC specific configuration
201*4882a593Smuzhiyun  */
202*4882a593Smuzhiyun #include <asm/arch/config.h>
203*4882a593Smuzhiyun 
204*4882a593Smuzhiyun #endif  /* __CONFIG_DEVKIT3250_H__*/
205