xref: /rk3399_rockchip-uboot/include/configs/mx28evk.h (revision 5434caf5ba32d0779f309d7a8d13e985dc667f5b)
129f75a5cSFabio Estevam /*
229f75a5cSFabio Estevam  * (C) Copyright 2011 Freescale Semiconductor, Inc.
329f75a5cSFabio Estevam  * Author: Fabio Estevam <fabio.estevam@freescale.com>
429f75a5cSFabio Estevam  *
529f75a5cSFabio Estevam  * Based on m28evk.h:
629f75a5cSFabio Estevam  * Copyright (C) 2011 Marek Vasut <marek.vasut@gmail.com>
729f75a5cSFabio Estevam  * on behalf of DENX Software Engineering GmbH
829f75a5cSFabio Estevam  *
929f75a5cSFabio Estevam  * This program is free software; you can redistribute it and/or
1029f75a5cSFabio Estevam  * modify it under the terms of the GNU General Public License as
1129f75a5cSFabio Estevam  * published by the Free Software Foundation; either version 2 of
1229f75a5cSFabio Estevam  * the License, or (at your option) any later version.
1329f75a5cSFabio Estevam  *
1429f75a5cSFabio Estevam  * This program is distributed in the hope that it will be useful,
1529f75a5cSFabio Estevam  * but WITHOUT ANY WARRANTY; without even the implied warranty of
1629f75a5cSFabio Estevam  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	 See the
1729f75a5cSFabio Estevam  * GNU General Public License for more details.
1829f75a5cSFabio Estevam  */
19*5434caf5SMarek Vasut #ifndef __CONFIGS_MX28EVK_H__
20*5434caf5SMarek Vasut #define __CONFIGS_MX28EVK_H__
2129f75a5cSFabio Estevam 
22*5434caf5SMarek Vasut /* System configurations */
2329f75a5cSFabio Estevam #define CONFIG_MX28				/* i.MX28 SoC */
2429f75a5cSFabio Estevam #define CONFIG_MACH_TYPE	MACH_TYPE_MX28EVK
25*5434caf5SMarek Vasut #define CONFIG_SYS_PROMPT	"MX28EVK U-Boot > "
2629f75a5cSFabio Estevam 
2740f1daa0SFabio Estevam /* U-Boot Commands */
28*5434caf5SMarek Vasut #define CONFIG_SYS_NO_FLASH
2929f75a5cSFabio Estevam #include <config_cmd_default.h>
3029f75a5cSFabio Estevam #define CONFIG_DISPLAY_CPUINFO
3129f75a5cSFabio Estevam #define CONFIG_DOS_PARTITION
3229f75a5cSFabio Estevam 
3329f75a5cSFabio Estevam #define CONFIG_CMD_CACHE
349588d942SMatthias Fuchs #define CONFIG_CMD_DATE
3529f75a5cSFabio Estevam #define CONFIG_CMD_DHCP
363b4efee9SOtavio Salvador #define CONFIG_CMD_FAT
3729f75a5cSFabio Estevam #define CONFIG_CMD_GPIO
3829f75a5cSFabio Estevam #define CONFIG_CMD_MII
3929f75a5cSFabio Estevam #define CONFIG_CMD_MMC
4029f75a5cSFabio Estevam #define CONFIG_CMD_NET
4129f75a5cSFabio Estevam #define CONFIG_CMD_NFS
4229f75a5cSFabio Estevam #define CONFIG_CMD_PING
43*5434caf5SMarek Vasut #define CONFIG_CMD_SAVEENV
447577a4b3SOtavio Salvador #define CONFIG_CMD_SETEXPR
45ed97abedSMatthias Fuchs #define CONFIG_CMD_SF
46ed97abedSMatthias Fuchs #define CONFIG_CMD_SPI
47598aa2bbSMatthias Fuchs #define CONFIG_CMD_USB
4834990e12SFabio Estevam #define CONFIG_CMD_BOOTZ
49ab461be6SFabio Estevam #define CONFIG_CMD_NAND
508b360c06SEric Benard #define CONFIG_CMD_NAND_TRIMFFS
5168661db2SFabio Estevam #define CONFIG_VIDEO
5229f75a5cSFabio Estevam 
53*5434caf5SMarek Vasut /* Memory configuration */
5429f75a5cSFabio Estevam #define CONFIG_NR_DRAM_BANKS		1		/* 1 bank of DRAM */
5529f75a5cSFabio Estevam #define PHYS_SDRAM_1			0x40000000	/* Base address */
5629f75a5cSFabio Estevam #define PHYS_SDRAM_1_SIZE		0x40000000	/* Max 1 GB RAM */
5729f75a5cSFabio Estevam #define CONFIG_SYS_SDRAM_BASE		PHYS_SDRAM_1
5829f75a5cSFabio Estevam 
59*5434caf5SMarek Vasut /* Environment */
6029f75a5cSFabio Estevam #define CONFIG_ENV_SIZE			(16 * 1024)
61*5434caf5SMarek Vasut #define CONFIG_ENV_OVERWRITE
62*5434caf5SMarek Vasut 
63*5434caf5SMarek Vasut /* Environment is in MMC */
64*5434caf5SMarek Vasut #if defined(CONFIG_CMD_MMC) && defined(CONFIG_ENV_IS_IN_MMC)
65*5434caf5SMarek Vasut #define CONFIG_ENV_OFFSET		(256 * 1024)
6629f75a5cSFabio Estevam #define CONFIG_SYS_MMC_ENV_DEV		0
67ed97abedSMatthias Fuchs #endif
68ab461be6SFabio Estevam 
69ab461be6SFabio Estevam /* Environment is in NAND */
70*5434caf5SMarek Vasut #if defined(CONFIG_CMD_NAND) && defined(CONFIG_ENV_IS_IN_NAND)
71ab461be6SFabio Estevam #define CONFIG_ENV_SIZE_REDUND		CONFIG_ENV_SIZE
72ab461be6SFabio Estevam #define CONFIG_ENV_SECT_SIZE		(128 * 1024)
73ab461be6SFabio Estevam #define CONFIG_ENV_RANGE		(512 * 1024)
74ab461be6SFabio Estevam #define CONFIG_ENV_OFFSET		0x300000
75ab461be6SFabio Estevam #define CONFIG_ENV_OFFSET_REDUND	\
76ab461be6SFabio Estevam 		(CONFIG_ENV_OFFSET + CONFIG_ENV_RANGE)
77da85c9c8STom Rini #endif
78ab461be6SFabio Estevam 
79*5434caf5SMarek Vasut /* Environemnt is in SPI flash */
80*5434caf5SMarek Vasut #if defined(CONFIG_CMD_SF) && defined(CONFIG_ENV_IS_IN_SPI_FLASH)
81*5434caf5SMarek Vasut #define CONFIG_SYS_REDUNDAND_ENVIRONMENT
82*5434caf5SMarek Vasut #define CONFIG_ENV_SIZE			0x1000		/* 4KB */
83*5434caf5SMarek Vasut #define CONFIG_ENV_OFFSET		0x40000		/* 256K */
84*5434caf5SMarek Vasut #define CONFIG_ENV_OFFSET_REDUND	(CONFIG_ENV_OFFSET + CONFIG_ENV_SIZE)
85*5434caf5SMarek Vasut #define CONFIG_ENV_SECT_SIZE		0x1000
86*5434caf5SMarek Vasut #define CONFIG_ENV_SPI_CS		0
87*5434caf5SMarek Vasut #define CONFIG_ENV_SPI_BUS		2
88*5434caf5SMarek Vasut #define CONFIG_ENV_SPI_MAX_HZ		24000000
89*5434caf5SMarek Vasut #define CONFIG_ENV_SPI_MODE		SPI_MODE_0
90*5434caf5SMarek Vasut #endif
91*5434caf5SMarek Vasut 
92*5434caf5SMarek Vasut /* UBI and NAND partitioning */
93*5434caf5SMarek Vasut #ifdef CONFIG_CMD_NAND
94ab461be6SFabio Estevam #define CONFIG_CMD_UBI
95ab461be6SFabio Estevam #define CONFIG_CMD_UBIFS
96ab461be6SFabio Estevam #define CONFIG_CMD_MTDPARTS
97ab461be6SFabio Estevam #define CONFIG_RBTREE
98ab461be6SFabio Estevam #define CONFIG_LZO
99ab461be6SFabio Estevam #define CONFIG_MTD_DEVICE
100ab461be6SFabio Estevam #define CONFIG_MTD_PARTITIONS
101ab461be6SFabio Estevam #define MTDIDS_DEFAULT			"nand0=gpmi-nand"
102ab461be6SFabio Estevam #define MTDPARTS_DEFAULT			\
103ab461be6SFabio Estevam 	"mtdparts=gpmi-nand:"			\
104ab461be6SFabio Estevam 		"3m(bootloader)ro,"		\
105ab461be6SFabio Estevam 		"512k(environment),"		\
106ab461be6SFabio Estevam 		"512k(redundant-environment),"	\
107ab461be6SFabio Estevam 		"4m(kernel),"			\
108ab461be6SFabio Estevam 		"128k(fdt),"			\
109ab461be6SFabio Estevam 		"8m(ramdisk),"			\
110ab461be6SFabio Estevam 		"-(filesystem)"
111ecb7be29SLauri Hintsala #endif
112ecb7be29SLauri Hintsala 
113*5434caf5SMarek Vasut /* FEC Ethernet on SoC */
11429f75a5cSFabio Estevam #ifdef	CONFIG_CMD_NET
11529f75a5cSFabio Estevam #define CONFIG_FEC_MXC
116*5434caf5SMarek Vasut #define CONFIG_NET_MULTI
11729f75a5cSFabio Estevam #define CONFIG_MX28_FEC_MAC_IN_OCOTP
11829f75a5cSFabio Estevam #endif
11929f75a5cSFabio Estevam 
12040f1daa0SFabio Estevam /* RTC */
1219588d942SMatthias Fuchs #ifdef	CONFIG_CMD_DATE
1229588d942SMatthias Fuchs #define	CONFIG_RTC_MXS
1239588d942SMatthias Fuchs #endif
1249588d942SMatthias Fuchs 
12540f1daa0SFabio Estevam /* USB */
126598aa2bbSMatthias Fuchs #ifdef	CONFIG_CMD_USB
127598aa2bbSMatthias Fuchs #define CONFIG_EHCI_MXS_PORT1
128afa87210SMarek Vasut #define CONFIG_USB_MAX_CONTROLLER_COUNT	1
129598aa2bbSMatthias Fuchs #define	CONFIG_USB_STORAGE
13091dd7ca6SFabio Estevam #define	CONFIG_USB_HOST_ETHER
13191dd7ca6SFabio Estevam #define	CONFIG_USB_ETHER_ASIX
13291dd7ca6SFabio Estevam #define	CONFIG_USB_ETHER_SMSC95XX
133598aa2bbSMatthias Fuchs #endif
134598aa2bbSMatthias Fuchs 
13540f1daa0SFabio Estevam /* SPI */
136ed97abedSMatthias Fuchs #ifdef CONFIG_CMD_SPI
137ed97abedSMatthias Fuchs #define CONFIG_DEFAULT_SPI_BUS		2
138ed97abedSMatthias Fuchs #define CONFIG_DEFAULT_SPI_MODE		SPI_MODE_0
139ed97abedSMatthias Fuchs 
140ed97abedSMatthias Fuchs /* SPI Flash */
141ed97abedSMatthias Fuchs #ifdef CONFIG_CMD_SF
142ed97abedSMatthias Fuchs #define CONFIG_SPI_FLASH
1431fc3bbd1SFabio Estevam #define CONFIG_SF_DEFAULT_BUS		2
1441fc3bbd1SFabio Estevam #define CONFIG_SF_DEFAULT_CS		0
145ed97abedSMatthias Fuchs /* this may vary and depends on the installed chip */
146ed97abedSMatthias Fuchs #define CONFIG_SPI_FLASH_SST
147ed97abedSMatthias Fuchs #define CONFIG_SF_DEFAULT_MODE		SPI_MODE_0
148ed97abedSMatthias Fuchs #define CONFIG_SF_DEFAULT_SPEED		24000000
149*5434caf5SMarek Vasut #endif
150ed97abedSMatthias Fuchs 
151ed97abedSMatthias Fuchs #endif
152ed97abedSMatthias Fuchs 
15368661db2SFabio Estevam /* Framebuffer support */
15468661db2SFabio Estevam #ifdef CONFIG_VIDEO
15568661db2SFabio Estevam #define CONFIG_VIDEO_LOGO
15668661db2SFabio Estevam #define CONFIG_SPLASH_SCREEN
15768661db2SFabio Estevam #define CONFIG_CMD_BMP
15868661db2SFabio Estevam #define CONFIG_BMP_16BPP
15968661db2SFabio Estevam #define CONFIG_VIDEO_BMP_RLE8
16068661db2SFabio Estevam #define CONFIG_VIDEO_BMP_GZIP
16168661db2SFabio Estevam #define CONFIG_SYS_VIDEO_LOGO_MAX_SIZE	(512 << 10)
16268661db2SFabio Estevam #endif
16368661db2SFabio Estevam 
16440f1daa0SFabio Estevam /* Boot Linux */
16527856943SFabio Estevam #define CONFIG_BOOTDELAY	1
16629f75a5cSFabio Estevam #define CONFIG_BOOTFILE		"uImage"
16729f75a5cSFabio Estevam #define CONFIG_LOADADDR		0x42000000
16829f75a5cSFabio Estevam #define CONFIG_SYS_LOAD_ADDR	CONFIG_LOADADDR
16929f75a5cSFabio Estevam 
170*5434caf5SMarek Vasut /* Extra Environment */
17129f75a5cSFabio Estevam #define CONFIG_EXTRA_ENV_SETTINGS \
172f994dc5eSOtavio Salvador 	"update_nand_full_filename=u-boot.nand\0" \
173f994dc5eSOtavio Salvador 	"update_nand_firmware_filename=u-boot.sb\0"	\
174f994dc5eSOtavio Salvador 	"update_sd_firmware_filename=u-boot.sd\0" \
175f994dc5eSOtavio Salvador 	"update_nand_firmware_maxsz=0x100000\0"	\
176f994dc5eSOtavio Salvador 	"update_nand_stride=0x40\0"	/* MX28 datasheet ch. 12.12 */ \
177f994dc5eSOtavio Salvador 	"update_nand_count=0x4\0"	/* MX28 datasheet ch. 12.12 */ \
178f994dc5eSOtavio Salvador 	"update_nand_get_fcb_size="	/* Get size of FCB blocks */ \
179f994dc5eSOtavio Salvador 		"nand device 0 ; " \
180f994dc5eSOtavio Salvador 		"nand info ; " \
181f994dc5eSOtavio Salvador 		"setexpr fcb_sz ${update_nand_stride} * ${update_nand_count};" \
182f994dc5eSOtavio Salvador 		"setexpr update_nand_fcb ${fcb_sz} * ${nand_writesize}\0" \
183f994dc5eSOtavio Salvador 	"update_nand_full="		    /* Update FCB, DBBT and FW */ \
184f994dc5eSOtavio Salvador 		"if tftp ${update_nand_full_filename} ; then " \
185f994dc5eSOtavio Salvador 		"run update_nand_get_fcb_size ; " \
186f994dc5eSOtavio Salvador 		"nand scrub -y 0x0 ${filesize} ; " \
18771779d5bSEric Benard 		"nand write.raw ${loadaddr} 0x0 ${fcb_sz} ; " \
188f994dc5eSOtavio Salvador 		"setexpr update_off ${loadaddr} + ${update_nand_fcb} ; " \
189f994dc5eSOtavio Salvador 		"setexpr update_sz ${filesize} - ${update_nand_fcb} ; " \
190f994dc5eSOtavio Salvador 		"nand write ${update_off} ${update_nand_fcb} ${update_sz} ; " \
191f994dc5eSOtavio Salvador 		"fi\0" \
192f994dc5eSOtavio Salvador 	"update_nand_firmware="		/* Update only firmware */ \
193f994dc5eSOtavio Salvador 		"if tftp ${update_nand_firmware_filename} ; then " \
194f994dc5eSOtavio Salvador 		"run update_nand_get_fcb_size ; " \
195f994dc5eSOtavio Salvador 		"setexpr fcb_sz ${update_nand_fcb} * 2 ; " /* FCB + DBBT */ \
196f994dc5eSOtavio Salvador 		"setexpr fw_sz ${update_nand_firmware_maxsz} * 2 ; " \
197f994dc5eSOtavio Salvador 		"setexpr fw_off ${fcb_sz} + ${update_nand_firmware_maxsz};" \
198f994dc5eSOtavio Salvador 		"nand erase ${fcb_sz} ${fw_sz} ; " \
199f994dc5eSOtavio Salvador 		"nand write ${loadaddr} ${fcb_sz} ${filesize} ; " \
200f994dc5eSOtavio Salvador 		"nand write ${loadaddr} ${fw_off} ${filesize} ; " \
201f994dc5eSOtavio Salvador 		"fi\0" \
202f994dc5eSOtavio Salvador 	"update_sd_firmware="		/* Update the SD firmware partition */ \
203f994dc5eSOtavio Salvador 		"if mmc rescan ; then "	\
204f994dc5eSOtavio Salvador 		"if tftp ${update_sd_firmware_filename} ; then " \
205f994dc5eSOtavio Salvador 		"setexpr fw_sz ${filesize} / 0x200 ; "	/* SD block size */ \
206f994dc5eSOtavio Salvador 		"setexpr fw_sz ${fw_sz} + 1 ; "	\
207f994dc5eSOtavio Salvador 		"mmc write ${loadaddr} 0x800 ${fw_sz} ; " \
208f994dc5eSOtavio Salvador 		"fi ; "	\
209f994dc5eSOtavio Salvador 		"fi\0" \
210f994dc5eSOtavio Salvador 	"script=boot.scr\0"	\
211f994dc5eSOtavio Salvador 	"uimage=uImage\0" \
212f994dc5eSOtavio Salvador 	"console_fsl=ttyAM0\0" \
213f994dc5eSOtavio Salvador 	"console_mainline=ttyAMA0\0" \
2144c6b2350SOtavio Salvador 	"fdt_file=imx28-evk.dtb\0" \
2154c6b2350SOtavio Salvador 	"fdt_addr=0x41000000\0" \
2164c6b2350SOtavio Salvador 	"boot_fdt=try\0" \
2174c6b2350SOtavio Salvador 	"ip_dyn=yes\0" \
218f994dc5eSOtavio Salvador 	"mmcdev=0\0" \
219f994dc5eSOtavio Salvador 	"mmcpart=2\0" \
2203c41e901SOtavio Salvador 	"mmcroot=/dev/mmcblk0p3 rw rootwait\0" \
221f994dc5eSOtavio Salvador 	"mmcargs=setenv bootargs console=${console_mainline},${baudrate} " \
2223c41e901SOtavio Salvador 		"root=${mmcroot}\0" \
223f994dc5eSOtavio Salvador 	"loadbootscript="  \
224f994dc5eSOtavio Salvador 		"fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${script};\0" \
225f994dc5eSOtavio Salvador 	"bootscript=echo Running bootscript from mmc ...; "	\
226f994dc5eSOtavio Salvador 		"source\0" \
227f994dc5eSOtavio Salvador 	"loaduimage=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${uimage}\0" \
2284c6b2350SOtavio Salvador 	"loadfdt=fatload mmc ${mmcdev}:${mmcpart} ${fdt_addr} ${fdt_file}\0" \
229f994dc5eSOtavio Salvador 	"mmcboot=echo Booting from mmc ...; " \
230f994dc5eSOtavio Salvador 		"run mmcargs; " \
2314c6b2350SOtavio Salvador 		"if test ${boot_fdt} = yes || test ${boot_fdt} = try; then " \
2324c6b2350SOtavio Salvador 			"if run loadfdt; then " \
2334c6b2350SOtavio Salvador 				"bootm ${loadaddr} - ${fdt_addr}; " \
2344c6b2350SOtavio Salvador 			"else " \
2354c6b2350SOtavio Salvador 				"if test ${boot_fdt} = try; then " \
2364c6b2350SOtavio Salvador 					"bootm; " \
2374c6b2350SOtavio Salvador 				"else " \
2384c6b2350SOtavio Salvador 					"echo WARN: Cannot load the DT; " \
2394c6b2350SOtavio Salvador 				"fi; " \
2404c6b2350SOtavio Salvador 			"fi; " \
2414c6b2350SOtavio Salvador 		"else " \
2424c6b2350SOtavio Salvador 			"bootm; " \
2434c6b2350SOtavio Salvador 		"fi;\0" \
244f994dc5eSOtavio Salvador 	"netargs=setenv bootargs console=${console_mainline},${baudrate} " \
24529f75a5cSFabio Estevam 		"root=/dev/nfs " \
246f994dc5eSOtavio Salvador 		"ip=dhcp nfsroot=${serverip}:${nfsroot},v3,tcp\0" \
247f994dc5eSOtavio Salvador 	"netboot=echo Booting from net ...; " \
24829f75a5cSFabio Estevam 		"run netargs; "	\
2494c6b2350SOtavio Salvador 		"if test ${ip_dyn} = yes; then " \
2504c6b2350SOtavio Salvador 			"setenv get_cmd dhcp; " \
2514c6b2350SOtavio Salvador 		"else " \
2524c6b2350SOtavio Salvador 			"setenv get_cmd tftp; " \
2534c6b2350SOtavio Salvador 		"fi; " \
2544c6b2350SOtavio Salvador 		"${get_cmd} ${uimage}; " \
2554c6b2350SOtavio Salvador 		"if test ${boot_fdt} = yes; then " \
2564c6b2350SOtavio Salvador 			"if ${get_cmd} ${fdt_addr} ${fdt_file}; then " \
2574c6b2350SOtavio Salvador 				"bootm ${loadaddr} - ${fdt_addr}; " \
2584c6b2350SOtavio Salvador 			"else " \
2594c6b2350SOtavio Salvador 				"if test ${boot_fdt} = try; then " \
2604c6b2350SOtavio Salvador 					"bootm; " \
2614c6b2350SOtavio Salvador 				"else " \
2624c6b2350SOtavio Salvador 					"echo WARN: Cannot load the DT; " \
2634c6b2350SOtavio Salvador 				"fi;" \
2644c6b2350SOtavio Salvador 			"fi; " \
2654c6b2350SOtavio Salvador 		"else " \
2664c6b2350SOtavio Salvador 			"bootm; " \
2674c6b2350SOtavio Salvador 		"fi;\0"
268f994dc5eSOtavio Salvador 
269f994dc5eSOtavio Salvador #define CONFIG_BOOTCOMMAND \
27066968110SAndrew Bradford 	"mmc dev ${mmcdev}; if mmc rescan; then " \
271f994dc5eSOtavio Salvador 		"if run loadbootscript; then " \
272f994dc5eSOtavio Salvador 			"run bootscript; " \
273f994dc5eSOtavio Salvador 		"else " \
274f994dc5eSOtavio Salvador 			"if run loaduimage; then " \
275f994dc5eSOtavio Salvador 				"run mmcboot; " \
276f994dc5eSOtavio Salvador 			"else run netboot; " \
277f994dc5eSOtavio Salvador 			"fi; " \
278f994dc5eSOtavio Salvador 		"fi; " \
279f994dc5eSOtavio Salvador 	"else run netboot; fi"
28029f75a5cSFabio Estevam 
281*5434caf5SMarek Vasut /* The rest of the configuration is shared */
282*5434caf5SMarek Vasut #include <configs/mxs.h>
283*5434caf5SMarek Vasut 
284*5434caf5SMarek Vasut #endif /* __CONFIGS_MX28EVK_H__ */
285