xref: /openbmc/u-boot/include/configs/display5.h (revision 18ccca59e31bcf415b469ef2c71bfe9c14dbc6e3)
183d290c5STom Rini /* SPDX-License-Identifier: GPL-2.0+ */
2a3eec24aSLukasz Majewski /*
3a3eec24aSLukasz Majewski  * Copyright (C) 2017
4a3eec24aSLukasz Majewski  * Lukasz Majewski, DENX Software Engineering, lukma@denx.de
5a3eec24aSLukasz Majewski  */
6a3eec24aSLukasz Majewski 
7a3eec24aSLukasz Majewski #ifndef __CONFIG_H
8a3eec24aSLukasz Majewski #define __CONFIG_H
9a3eec24aSLukasz Majewski 
10a3eec24aSLukasz Majewski #include "mx6_common.h"
11a3eec24aSLukasz Majewski 
12a3eec24aSLukasz Majewski /* Falcon Mode */
13a3eec24aSLukasz Majewski #define CONFIG_CMD_SPL
14a3eec24aSLukasz Majewski #define CONFIG_SYS_SPL_ARGS_ADDR	0x18000000
15a3eec24aSLukasz Majewski #define CONFIG_CMD_SPL_WRITE_SIZE	(44 * SZ_1K)
16a3eec24aSLukasz Majewski 
17a3eec24aSLukasz Majewski /* Falcon Mode - MMC support */
18a3eec24aSLukasz Majewski #define CONFIG_SYS_MMCSD_RAW_MODE_ARGS_SECTOR	0x3F00
19a3eec24aSLukasz Majewski #define CONFIG_SYS_MMCSD_RAW_MODE_ARGS_SECTORS	\
20a3eec24aSLukasz Majewski 	(CONFIG_CMD_SPL_WRITE_SIZE / 512)
21a3eec24aSLukasz Majewski #define CONFIG_SYS_MMCSD_RAW_MODE_KERNEL_SECTOR	0x100	/* 128KiB */
22a3eec24aSLukasz Majewski 
23a3eec24aSLukasz Majewski /*
24a3eec24aSLukasz Majewski  * display5 SPI-NOR memory layout
25a3eec24aSLukasz Majewski  *
26a3eec24aSLukasz Majewski  * The definition can be found in Kconfig's
27a3eec24aSLukasz Majewski  * CONFIG_MTDIDS_DEFAULT and CONFIG_MTDPARTS_DEFAULT
28a3eec24aSLukasz Majewski  *
29a3eec24aSLukasz Majewski  * 0x000000 - 0x020000 : SPI.SPL (128KiB)
30a3eec24aSLukasz Majewski  * 0x020000 - 0x120000 : SPI.u-boot (1MiB)
31a3eec24aSLukasz Majewski  * 0x120000 - 0x130000 : SPI.u-boot-env1 (64KiB)
32a3eec24aSLukasz Majewski  * 0x130000 - 0x140000 : SPI.u-boot-env2 (64KiB)
331fa328f7SLukasz Majewski  * 0x140000 - 0x540000 : SPI.swupdate-kernel-FIT (4MiB)
341fa328f7SLukasz Majewski  * 0x540000 - 0x1540000 : SPI.swupdate-initramfs  (16MiB)
3586d759eaSLukasz Majewski  * 0x1540000 - 0x1640000 : SPI.factory  (1MiB)
36a3eec24aSLukasz Majewski  */
37a3eec24aSLukasz Majewski 
38a3eec24aSLukasz Majewski #ifndef CONFIG_SPL_BUILD
39a3eec24aSLukasz Majewski #define CONFIG_MTD_DEVICE
40a3eec24aSLukasz Majewski #define CONFIG_SPI_FLASH_MTD
41a3eec24aSLukasz Majewski #define CONFIG_MTD_PARTITIONS
42a3eec24aSLukasz Majewski #endif
43a3eec24aSLukasz Majewski 
44a3eec24aSLukasz Majewski /* Below values are "dummy" - only to avoid build break */
45a3eec24aSLukasz Majewski #define CONFIG_SYS_SPI_KERNEL_OFFS      0x150000
46a3eec24aSLukasz Majewski #define CONFIG_SYS_SPI_ARGS_OFFS        0x140000
47a3eec24aSLukasz Majewski #define CONFIG_SYS_SPI_ARGS_SIZE        0x10000
48a3eec24aSLukasz Majewski 
49a3eec24aSLukasz Majewski #include "imx6_spl.h"
50a3eec24aSLukasz Majewski #define CONFIG_SYS_SPI_U_BOOT_OFFS	0x20000
51a3eec24aSLukasz Majewski 
52a3eec24aSLukasz Majewski #define CONFIG_CMDLINE_TAG
53a3eec24aSLukasz Majewski #define CONFIG_SETUP_MEMORY_TAGS
54a3eec24aSLukasz Majewski #define CONFIG_INITRD_TAG
55a3eec24aSLukasz Majewski #define CONFIG_REVISION_TAG
56a3eec24aSLukasz Majewski 
57a3eec24aSLukasz Majewski /* Size of malloc() pool */
58a3eec24aSLukasz Majewski #define CONFIG_SYS_MALLOC_LEN		(16 * 1024 * 1024)
59a3eec24aSLukasz Majewski #define CONFIG_MISC_INIT_R
60a3eec24aSLukasz Majewski 
61a3eec24aSLukasz Majewski /*#define CONFIG_MXC_UART*/
62a3eec24aSLukasz Majewski #define CONFIG_MXC_UART_BASE		UART5_BASE
63a3eec24aSLukasz Majewski 
64a3eec24aSLukasz Majewski /* SPI NOR Flash */
65a3eec24aSLukasz Majewski #ifdef CONFIG_CMD_SF
66a3eec24aSLukasz Majewski #define CONFIG_SF_DEFAULT_BUS		1
67a3eec24aSLukasz Majewski #define CONFIG_SF_DEFAULT_CS		(0 | (IMX_GPIO_NR(5, 29) << 8))
68a3eec24aSLukasz Majewski #define CONFIG_SF_DEFAULT_SPEED		50000000
69a3eec24aSLukasz Majewski #define CONFIG_SF_DEFAULT_MODE		SPI_MODE_0
70a3eec24aSLukasz Majewski #endif
71a3eec24aSLukasz Majewski 
72a3eec24aSLukasz Majewski /* I2C Configs */
73a3eec24aSLukasz Majewski #define CONFIG_SYS_I2C
74a3eec24aSLukasz Majewski #define CONFIG_SYS_I2C_MXC
75a3eec24aSLukasz Majewski #define CONFIG_SYS_I2C_MXC_I2C1
76a3eec24aSLukasz Majewski #define CONFIG_SYS_I2C_MXC_I2C2
77a3eec24aSLukasz Majewski #define CONFIG_SYS_I2C_MXC_I2C3
78a3eec24aSLukasz Majewski #define CONFIG_I2C_MULTI_BUS
79a3eec24aSLukasz Majewski #define CONFIG_SYS_I2C_SPEED		100000
80a3eec24aSLukasz Majewski #define CONFIG_I2C_EDID
81a3eec24aSLukasz Majewski #define CONFIG_SYS_I2C_EEPROM_ADDR_LEN  2
82a3eec24aSLukasz Majewski 
83a3eec24aSLukasz Majewski /* Ethernet */
84a3eec24aSLukasz Majewski #ifdef CONFIG_FEC_MXC
85a3eec24aSLukasz Majewski #define IMX_FEC_BASE			ENET_BASE_ADDR
86a3eec24aSLukasz Majewski #define CONFIG_FEC_XCV_TYPE		RGMII
87a3eec24aSLukasz Majewski #define CONFIG_ETHPRIME			"FEC"
88a3eec24aSLukasz Majewski #define CONFIG_FEC_MXC_PHYADDR		0
89a3eec24aSLukasz Majewski #define CONFIG_MII
90a3eec24aSLukasz Majewski #endif
91a3eec24aSLukasz Majewski 
92a3eec24aSLukasz Majewski /* MMC Configs */
93a3eec24aSLukasz Majewski #define CONFIG_FSL_USDHC
94a3eec24aSLukasz Majewski #define CONFIG_SYS_FSL_ESDHC_ADDR	0
95a3eec24aSLukasz Majewski #define CONFIG_SYS_FSL_USDHC_NUM	2
96a3eec24aSLukasz Majewski #define CONFIG_SUPPORT_EMMC_BOOT
97a3eec24aSLukasz Majewski 
98a3eec24aSLukasz Majewski /* allow to overwrite serial and ethaddr */
99a3eec24aSLukasz Majewski #define CONFIG_ENV_OVERWRITE
100a3eec24aSLukasz Majewski #define CONFIG_BAUDRATE			115200
101a3eec24aSLukasz Majewski 
102a3eec24aSLukasz Majewski #ifndef CONFIG_BOOTCOMMAND
10327aede24SLukasz Majewski #define CONFIG_BOOTCOMMAND "if run check_em_pad; then " \
10427aede24SLukasz Majewski 	     "run recovery;" \
10527aede24SLukasz Majewski 	"else if test ${BOOT_FROM} = FACTORY; then " \
10613e012f7SLukasz Majewski 	     "run factory_nfs;" \
10713e012f7SLukasz Majewski 	"else " \
10813e012f7SLukasz Majewski 	     "run boot_mmc;" \
10927aede24SLukasz Majewski 	"fi;fi"
110a3eec24aSLukasz Majewski #endif
111a3eec24aSLukasz Majewski 
112a3eec24aSLukasz Majewski #define PARTS_DEFAULT \
113a3eec24aSLukasz Majewski 	/* Linux partitions */ \
114a3eec24aSLukasz Majewski 	"partitions=" \
115a3eec24aSLukasz Majewski 	"uuid_disk=${uuid_gpt_disk};" \
116a3eec24aSLukasz Majewski 	"name=kernel_raw1,start=128K,size=8M,uuid=${uuid_gpt_kernel_raw1};" \
117a3eec24aSLukasz Majewski 	"name=rootfs1,size=1528M,uuid=${uuid_gpt_rootfs1};" \
118a3eec24aSLukasz Majewski 	"name=kernel_raw2,size=8M,uuid=${uuid_gpt_kernel_raw2};" \
119a3eec24aSLukasz Majewski 	"name=rootfs2,size=1528M,uuid=${uuid_gpt_rootfs2};" \
120a3eec24aSLukasz Majewski 	"name=data,size=-,uuid=${uuid_gpt_data}\0"
121a3eec24aSLukasz Majewski 
122a3eec24aSLukasz Majewski #define FACTORY_PROCEDURE \
123a3eec24aSLukasz Majewski 	"echo '#######################';" \
124a3eec24aSLukasz Majewski 	"echo '# Factory Boot        #';" \
125a3eec24aSLukasz Majewski 	"echo '#######################';" \
126a3eec24aSLukasz Majewski 	"env default -a;" \
127a3eec24aSLukasz Majewski 	"saveenv;" \
128a3eec24aSLukasz Majewski 	"gpt write mmc ${mmcdev} ${partitions};" \
129a3eec24aSLukasz Majewski 	"run tftp_sf_SPL;" \
130a3eec24aSLukasz Majewski 	"run tftp_sf_uboot;" \
131a3eec24aSLukasz Majewski 	TFTP_UPDATE_KERNEL \
132a3eec24aSLukasz Majewski 	"run tftp_sf_fitImg_SWU;" \
133a3eec24aSLukasz Majewski 	"run tftp_sf_initramfs_SWU;" \
134a3eec24aSLukasz Majewski 	TFTP_UPDATE_ROOTFS \
135a3eec24aSLukasz Majewski 	"echo '#######################';" \
136a3eec24aSLukasz Majewski 	"echo '# END - OK            #';" \
137a3eec24aSLukasz Majewski 	"echo '#######################';" \
138a3eec24aSLukasz Majewski 	"setenv bootcmd 'env default -a; saveenv; run falcon_setup; reset';" \
139a3eec24aSLukasz Majewski 	"setenv boot_os 'n';" \
140a3eec24aSLukasz Majewski 	"saveenv;" \
141a3eec24aSLukasz Majewski 	"reset;"
142a3eec24aSLukasz Majewski 
143a3eec24aSLukasz Majewski #define SWUPDATE_RECOVERY_PROCEDURE \
144a3eec24aSLukasz Majewski 	"echo '#######################';" \
145a3eec24aSLukasz Majewski 	"echo '# RECOVERY SWUupdate  #';" \
146a3eec24aSLukasz Majewski 	"echo '#######################';" \
147a3eec24aSLukasz Majewski 	"setenv loadaddr_swu_initramfs 0x14000000;" \
148a3eec24aSLukasz Majewski 	"setenv bootargs console=${console} " \
149a3eec24aSLukasz Majewski 		"ip=${ipaddr}:${serverip}:${gatewayip}:${netmask}" \
150a3eec24aSLukasz Majewski 		":${hostname}::off root=/dev/ram rw;" \
151a3eec24aSLukasz Majewski 	"sf probe;" \
152a3eec24aSLukasz Majewski 	"sf read ${loadaddr} swu-kernel;" \
153a3eec24aSLukasz Majewski 	"sf read ${loadaddr_swu_initramfs} swu-initramfs;" \
1541bcbf48fSLukasz Majewski 	"bootm ${loadaddr} ${loadaddr_swu_initramfs};reset;"
155a3eec24aSLukasz Majewski 
156a3eec24aSLukasz Majewski #define SETUP_BOOTARGS \
157a3eec24aSLukasz Majewski 	"run set_rootfs_part;" \
158a3eec24aSLukasz Majewski 	"setenv bootargs ${bootargs} console=${console} "	  \
159a3eec24aSLukasz Majewski 		      "root=/dev/mmcblk${mmcdev}p${rootfs_part} " \
160a3eec24aSLukasz Majewski 		      "rootwait rootfstype=ext4 rw; " \
161a3eec24aSLukasz Majewski 	"run set_kernel_part;" \
162a3eec24aSLukasz Majewski 	"part start mmc ${mmcdev} ${kernel_part} lba_start; " \
163a3eec24aSLukasz Majewski 	"mmc read ${loadaddr} ${lba_start} 0x2000; " \
164a3eec24aSLukasz Majewski 	"setenv fdt_conf imx6q-${board}-${display}.dtb; "
165a3eec24aSLukasz Majewski 
166a3eec24aSLukasz Majewski /* All the numbers are in LBAs */
167a3eec24aSLukasz Majewski #define __TFTP_UPDATE_KERNEL \
168a3eec24aSLukasz Majewski 	"tftp_mmc_fitImg=" \
169a3eec24aSLukasz Majewski 	   "if test ! -n ${kernel_part}; then " \
170a3eec24aSLukasz Majewski 	       "setenv kernel_part ${kernel_part_active};" \
171a3eec24aSLukasz Majewski 	   "fi;" \
172a3eec24aSLukasz Majewski 	   "if tftp ${loadaddr} ${kernel_file}; then " \
173a3eec24aSLukasz Majewski 	       "setexpr fw_sz ${filesize} / 0x200; " \
174a3eec24aSLukasz Majewski 	       "setexpr fw_sz ${fw_sz} + 1; "  \
175a3eec24aSLukasz Majewski 	       "part start mmc ${mmcdev} ${kernel_part} lba_start; " \
176a3eec24aSLukasz Majewski 	       "mmc write ${loadaddr} ${lba_start} ${fw_sz}; " \
177a3eec24aSLukasz Majewski 	   "; fi\0" \
178a3eec24aSLukasz Majewski 
179a3eec24aSLukasz Majewski #define TFTP_UPDATE_KERNEL \
180a3eec24aSLukasz Majewski 	"setenv kernel_part ${kernel_part_active};" \
181a3eec24aSLukasz Majewski 	"run tftp_mmc_fitImg;" \
182a3eec24aSLukasz Majewski 	"setenv kernel_part ${kernel_part_backup};" \
183a3eec24aSLukasz Majewski 	"run tftp_mmc_fitImg;" \
184a3eec24aSLukasz Majewski 
185a3eec24aSLukasz Majewski #define __TFTP_UPDATE_ROOTFS \
186a3eec24aSLukasz Majewski 	"tftp_mmc_rootfs=" \
187a3eec24aSLukasz Majewski 	   "if test ! -n ${rootfs_part}; then " \
188a3eec24aSLukasz Majewski 	       "setenv rootfs_part ${rootfs_part_active};" \
189a3eec24aSLukasz Majewski 	   "fi;" \
190a3eec24aSLukasz Majewski 	   "if tftp ${loadaddr} ${rootfs_file}; then " \
191a3eec24aSLukasz Majewski 	       "setexpr fw_sz ${filesize} / 0x200; " \
192a3eec24aSLukasz Majewski 	       "setexpr fw_sz ${fw_sz} + 1; "  \
193a3eec24aSLukasz Majewski 	       "part start mmc ${mmcdev} ${rootfs_part} lba_start; " \
194a3eec24aSLukasz Majewski 	       "mmc write ${loadaddr} ${lba_start} ${fw_sz}; " \
195a3eec24aSLukasz Majewski 	   "; fi\0" \
196a3eec24aSLukasz Majewski 
197a3eec24aSLukasz Majewski #define TFTP_UPDATE_ROOTFS \
198a3eec24aSLukasz Majewski 	"setenv rootfs_part ${rootfs_part_active};" \
199a3eec24aSLukasz Majewski 	"run tftp_mmc_rootfs;" \
200*18ccca59SLukasz Majewski 	"run tftp_mmc_rootfs_bkp;" \
201*18ccca59SLukasz Majewski 
202a3eec24aSLukasz Majewski 
203a3eec24aSLukasz Majewski #define TFTP_UPDATE_RECOVERY_SWU_KERNEL \
204a3eec24aSLukasz Majewski 	"tftp_sf_fitImg_SWU=" \
205a3eec24aSLukasz Majewski 	    "if tftp ${loadaddr} ${kernel_file}; then " \
206a3eec24aSLukasz Majewski 		"sf probe;" \
207a3eec24aSLukasz Majewski 		"sf erase swu-kernel +${filesize};" \
208a3eec24aSLukasz Majewski 		"sf write ${loadaddr} swu-kernel ${filesize};" \
209a3eec24aSLukasz Majewski 	"; fi\0"	  \
210a3eec24aSLukasz Majewski 
211a3eec24aSLukasz Majewski #define TFTP_UPDATE_RECOVERY_SWU_INITRAMFS \
212a3eec24aSLukasz Majewski 	"swu_initramfs_file=swupdate-image-display5.ext3.gz.u-boot\0" \
213a3eec24aSLukasz Majewski 	"tftp_sf_initramfs_SWU=" \
214a3eec24aSLukasz Majewski 	    "if tftp ${loadaddr} ${swu_initramfs_file}; then " \
215a3eec24aSLukasz Majewski 		"sf probe;" \
216a3eec24aSLukasz Majewski 		"sf erase swu-initramfs +${filesize};" \
217a3eec24aSLukasz Majewski 		"sf write ${loadaddr} swu-initramfs ${filesize};" \
218a3eec24aSLukasz Majewski 	"; fi\0"	  \
219a3eec24aSLukasz Majewski 
220a3eec24aSLukasz Majewski #define TFTP_UPDATE_BOOTLOADER \
221a3eec24aSLukasz Majewski 	"ubootfile=u-boot.img\0" \
222a3eec24aSLukasz Majewski 	"ubootfileSPL=SPL\0" \
223a3eec24aSLukasz Majewski 	"tftp_sf_uboot=" \
224a3eec24aSLukasz Majewski 	    "if tftp ${loadaddr} ${ubootfile}; then " \
225a3eec24aSLukasz Majewski 		"sf probe;" \
226a3eec24aSLukasz Majewski 		"sf erase u-boot +${filesize};" \
227a3eec24aSLukasz Majewski 		"sf write ${loadaddr} u-boot ${filesize}" \
228a3eec24aSLukasz Majewski 	"; fi\0"	  \
229a3eec24aSLukasz Majewski 	"tftp_sf_SPL="	  \
230a3eec24aSLukasz Majewski 	    "if tftp ${loadaddr} ${ubootfileSPL}; then " \
231a3eec24aSLukasz Majewski 		"sf probe;" \
232a3eec24aSLukasz Majewski 		"setexpr uboot_SPL_size ${filesize} + 0x400;" \
233a3eec24aSLukasz Majewski 		"sf erase 0x0 +${uboot_SPL_size};" \
234a3eec24aSLukasz Majewski 		"sf write ${loadaddr} 0x400 ${filesize};" \
235a3eec24aSLukasz Majewski 	"fi\0" \
236a3eec24aSLukasz Majewski 
2372f4372a1SLukasz Majewski #define TFTP_UPDATE_SPINOR \
2382f4372a1SLukasz Majewski 	"spinorfile=core-image-lwn-display5.spinor\0" \
2392f4372a1SLukasz Majewski 	"spinorsize=0x2000000\0" \
2402f4372a1SLukasz Majewski 	"tftp_sf_img=" \
2412f4372a1SLukasz Majewski 	    "if tftp ${loadaddr} ${spinorfile}; then " \
2422f4372a1SLukasz Majewski 		"sf probe;" \
2432f4372a1SLukasz Majewski 		"sf erase 0x0 ${spinorsize};" \
2442f4372a1SLukasz Majewski 		"sf write ${loadaddr} 0x0 ${filesize};" \
2452f4372a1SLukasz Majewski 	"fi\0" \
2462f4372a1SLukasz Majewski 
247a3eec24aSLukasz Majewski #define CONFIG_EXTRA_ENV_SETTINGS	  \
248a3eec24aSLukasz Majewski 	PARTS_DEFAULT \
24927aede24SLukasz Majewski 	"gpio_recovery=93\0" \
25027aede24SLukasz Majewski 	"check_em_pad=gpio input ${gpio_recovery};test $? -eq 0;\0" \
251a3eec24aSLukasz Majewski 	"display=tianma-tm070-800x480\0" \
252a3eec24aSLukasz Majewski 	"board=display5\0" \
253a3eec24aSLukasz Majewski 	"mmcdev=0\0" \
254a3eec24aSLukasz Majewski 	"altbootcmd=run recovery\0" \
255a3eec24aSLukasz Majewski 	"bootdelay=1\0" \
256a3eec24aSLukasz Majewski 	"baudrate=115200\0" \
257a3eec24aSLukasz Majewski 	"bootcmd=" CONFIG_BOOTCOMMAND "\0" \
258a3eec24aSLukasz Majewski 	"factory=" FACTORY_PROCEDURE "\0" \
259a3eec24aSLukasz Majewski 	"bootlimit=3\0" \
260a3eec24aSLukasz Majewski 	"ethact=FEC\0" \
261a3eec24aSLukasz Majewski 	"netdev=eth0\0" \
262a3eec24aSLukasz Majewski 	"boot_os=y\0" \
263a3eec24aSLukasz Majewski 	"hostname=display5\0" \
264a3eec24aSLukasz Majewski 	"loadaddr=0x12000000\0" \
265a3eec24aSLukasz Majewski 	"fdtaddr=0x12800000\0" \
266a3eec24aSLukasz Majewski 	"console=ttymxc4,115200 quiet\0" \
267a3eec24aSLukasz Majewski 	"fdtfile=imx6q-display5.dtb\0" \
268a3eec24aSLukasz Majewski 	"fdt_high=0xffffffff\0" \
269a3eec24aSLukasz Majewski 	"initrd_high=0xffffffff\0" \
270a3eec24aSLukasz Majewski 	"kernel_file=fitImage\0" \
271a3eec24aSLukasz Majewski 	"up=run tftp_sf_SPL; run tftp_sf_uboot\0" \
272a3eec24aSLukasz Majewski 	"download_kernel=" \
273a3eec24aSLukasz Majewski 		"tftpboot ${loadaddr} ${kernel_file};\0" \
27413e012f7SLukasz Majewski 	"factory_nfs=" \
2754864ba7fSLukasz Majewski 	     "setenv ipaddr 192.168.1.102;" \
2764864ba7fSLukasz Majewski 	     "setenv gatewayip 192.168.1.1;" \
2774864ba7fSLukasz Majewski 	     "setenv netmask 255.255.255.0;" \
2784864ba7fSLukasz Majewski 	     "setenv serverip 192.168.1.2;" \
27913e012f7SLukasz Majewski 	     "echo BOOT: FACTORY (LEG);" \
28013e012f7SLukasz Majewski 	     "run boot_nfs\0" \
281a3eec24aSLukasz Majewski 	"boot_swu_recovery=" SWUPDATE_RECOVERY_PROCEDURE "\0" \
282a3eec24aSLukasz Majewski 	"recovery=" \
283a3eec24aSLukasz Majewski 	     "echo BOOT: RECOVERY: SWU;" \
284b78e9c4fSLukasz Majewski 	     "run boot_swu_recovery\0" \
285a3eec24aSLukasz Majewski 	"boot_tftp=" \
286a3eec24aSLukasz Majewski 	"if run download_kernel; then "	  \
287a3eec24aSLukasz Majewski 	     "setenv bootargs console=${console} " \
288a3eec24aSLukasz Majewski 	     "root=/dev/mmcblk0p2 rootwait;" \
2891bcbf48fSLukasz Majewski 	     "bootm ${loadaddr} - ${fdtaddr};reset;" \
290a3eec24aSLukasz Majewski 	"fi\0" \
291a3eec24aSLukasz Majewski 	"addip=setenv bootargs ${bootargs} " \
292a3eec24aSLukasz Majewski 	"ip=${ipaddr}:${serverip}:${gatewayip}:${netmask}:" \
293a3eec24aSLukasz Majewski 	    "${hostname}:eth0:on"	  \
294a3eec24aSLukasz Majewski 	"\0"	  \
295a3eec24aSLukasz Majewski 	"nfsargs=setenv bootargs " \
296a3eec24aSLukasz Majewski 	"root=/dev/nfs rw "	  \
297a3eec24aSLukasz Majewski 	"nfsroot=${serverip}:${rootpath},nolock,nfsvers=3" \
298a3eec24aSLukasz Majewski 	"\0" \
299a3eec24aSLukasz Majewski 	"rootpath=/srv/tftp/DISP5/rootfs\0" \
300a3eec24aSLukasz Majewski 	"boot_nfs=" \
301a3eec24aSLukasz Majewski 	"if run download_kernel; then "	  \
302a3eec24aSLukasz Majewski 	     "run nfsargs;"	  \
303a3eec24aSLukasz Majewski 	     "run addip;"	  \
304a3eec24aSLukasz Majewski 	     "setenv bootargs ${bootargs} console=${console};"	  \
305a3eec24aSLukasz Majewski 	     "setenv fdt_conf imx6q-${board}-${display}.dtb; " \
3061bcbf48fSLukasz Majewski 	     "bootm ${loadaddr}#conf@${fdt_conf};reset;" \
307a3eec24aSLukasz Majewski 	"fi\0" \
308a3eec24aSLukasz Majewski 	"falcon_setup=" \
309a3eec24aSLukasz Majewski 	"if mmc dev ${mmcdev}; then "	  \
310a3eec24aSLukasz Majewski 	     SETUP_BOOTARGS \
311a3eec24aSLukasz Majewski 	     "spl export fdt ${loadaddr}#conf@${fdt_conf};" \
312a3eec24aSLukasz Majewski 	     "setexpr fw_sz ${fdtargslen} / 0x200; " \
313a3eec24aSLukasz Majewski 	     "setexpr fw_sz ${fw_sz} + 1; "  \
314a3eec24aSLukasz Majewski 	     "mmc write ${fdtargsaddr} " \
315a3eec24aSLukasz Majewski 	     __stringify(CONFIG_SYS_MMCSD_RAW_MODE_ARGS_SECTOR)" ${fw_sz}; " \
316a3eec24aSLukasz Majewski 	"fi\0" \
317a3eec24aSLukasz Majewski 	"boot_mmc=" \
318a3eec24aSLukasz Majewski 	"if mmc dev ${mmcdev}; then "	  \
319a3eec24aSLukasz Majewski 	     SETUP_BOOTARGS \
3201bcbf48fSLukasz Majewski 	     "bootm ${loadaddr}#conf@${fdt_conf};reset;" \
321a3eec24aSLukasz Majewski 	"fi\0" \
322a3eec24aSLukasz Majewski 	"set_kernel_part=" \
323a3eec24aSLukasz Majewski 	"if test ${BOOT_FROM} = ACTIVE; then " \
324a3eec24aSLukasz Majewski 	     "setenv kernel_part ${kernel_part_active};" \
325a3eec24aSLukasz Majewski 	     "echo BOOT: ACTIVE;" \
326a3eec24aSLukasz Majewski 	"else if test ${BOOT_FROM} = BACKUP; then " \
327a3eec24aSLukasz Majewski 	     "setenv kernel_part ${kernel_part_backup};" \
328a3eec24aSLukasz Majewski 	     "echo BOOT: BACKUP;" \
329a3eec24aSLukasz Majewski 	"else " \
330a3eec24aSLukasz Majewski 	     "run recovery;" \
331a3eec24aSLukasz Majewski 	"fi;fi\0" \
332a3eec24aSLukasz Majewski 	"set_rootfs_part=" \
333a3eec24aSLukasz Majewski 	"if test ${BOOT_FROM} = ACTIVE; then " \
334a3eec24aSLukasz Majewski 	     "setenv rootfs_part ${rootfs_part_active};" \
335a3eec24aSLukasz Majewski 	"else if test ${BOOT_FROM} = BACKUP; then " \
336a3eec24aSLukasz Majewski 	     "setenv rootfs_part ${rootfs_part_backup};" \
337a3eec24aSLukasz Majewski 	"else " \
338a3eec24aSLukasz Majewski 	     "run recovery;" \
339a3eec24aSLukasz Majewski 	"fi;fi\0" \
340a3eec24aSLukasz Majewski 	"BOOT_FROM=ACTIVE\0" \
341a3eec24aSLukasz Majewski 	TFTP_UPDATE_BOOTLOADER \
3422f4372a1SLukasz Majewski 	TFTP_UPDATE_SPINOR \
343a3eec24aSLukasz Majewski 	"kernel_part_active=1\0" \
344a3eec24aSLukasz Majewski 	"kernel_part_backup=3\0" \
345a3eec24aSLukasz Majewski 	__TFTP_UPDATE_KERNEL \
346a3eec24aSLukasz Majewski 	"rootfs_part_active=2\0" \
347a3eec24aSLukasz Majewski 	"rootfs_part_backup=4\0" \
348a3eec24aSLukasz Majewski 	"rootfs_file=core-image-lwn-display5.ext4\0" \
349dd4ed88bSLukasz Majewski 	"rootfs_file_backup=core-image-lwn-backup-display5.ext4\0" \
350a3eec24aSLukasz Majewski 	__TFTP_UPDATE_ROOTFS \
351dd4ed88bSLukasz Majewski 	"tftp_mmc_rootfs_bkp=" \
352dd4ed88bSLukasz Majewski 	   "setenv rootfs_part ${rootfs_part_backup};" \
353dd4ed88bSLukasz Majewski 	   "setenv rootfs_file ${rootfs_file_backup};" \
354dd4ed88bSLukasz Majewski 	   "run tftp_mmc_rootfs\0" \
355a3eec24aSLukasz Majewski 	TFTP_UPDATE_RECOVERY_SWU_KERNEL \
356a3eec24aSLukasz Majewski 	TFTP_UPDATE_RECOVERY_SWU_INITRAMFS \
357a3eec24aSLukasz Majewski 	"\0" \
358a3eec24aSLukasz Majewski 
359a3eec24aSLukasz Majewski /* Miscellaneous configurable options */
360a3eec24aSLukasz Majewski #undef CONFIG_SYS_CBSIZE
361a3eec24aSLukasz Majewski #define CONFIG_SYS_CBSIZE		2048
362a3eec24aSLukasz Majewski 
363a3eec24aSLukasz Majewski /* Print Buffer Size */
364a3eec24aSLukasz Majewski #define CONFIG_SYS_PBSIZE		(CONFIG_SYS_CBSIZE + \
365a3eec24aSLukasz Majewski 					 sizeof(CONFIG_SYS_PROMPT) + 16)
366a3eec24aSLukasz Majewski #define CONFIG_SYS_MAXARGS		32
367a3eec24aSLukasz Majewski #define CONFIG_SYS_BARGSIZE		CONFIG_SYS_CBSIZE
368a3eec24aSLukasz Majewski 
369a3eec24aSLukasz Majewski #define CONFIG_STANDALONE_LOAD_ADDR	0x10001000
370a3eec24aSLukasz Majewski #define CONFIG_SYS_HZ			1000
371a3eec24aSLukasz Majewski 
372a3eec24aSLukasz Majewski /* Physical Memory Map */
373a3eec24aSLukasz Majewski #define CONFIG_NR_DRAM_BANKS		1
374a3eec24aSLukasz Majewski #define PHYS_SDRAM			MMDC0_ARB_BASE_ADDR
375a3eec24aSLukasz Majewski #define CONFIG_SYS_SDRAM_BASE		PHYS_SDRAM
376a3eec24aSLukasz Majewski 
377a3eec24aSLukasz Majewski #define CONFIG_SYS_INIT_RAM_ADDR	IRAM_BASE_ADDR
378a3eec24aSLukasz Majewski #define CONFIG_SYS_INIT_RAM_SIZE	IRAM_SIZE
379a3eec24aSLukasz Majewski 
380a3eec24aSLukasz Majewski #define CONFIG_SYS_INIT_SP_OFFSET \
381a3eec24aSLukasz Majewski 	(CONFIG_SYS_INIT_RAM_SIZE - GENERATED_GBL_DATA_SIZE)
382a3eec24aSLukasz Majewski #define CONFIG_SYS_INIT_SP_ADDR \
383a3eec24aSLukasz Majewski 	(CONFIG_SYS_INIT_RAM_ADDR + CONFIG_SYS_INIT_SP_OFFSET)
384a3eec24aSLukasz Majewski 
385a3eec24aSLukasz Majewski /* Commands */
386a3eec24aSLukasz Majewski #define CONFIG_MTD_PARTITIONS
387a3eec24aSLukasz Majewski #define CONFIG_MTD_DEVICE
388a3eec24aSLukasz Majewski 
38976d1d169SLukasz Majewski /* Watchdog */
39076d1d169SLukasz Majewski #define CONFIG_HW_WATCHDOG
39176d1d169SLukasz Majewski #define CONFIG_IMX_WATCHDOG
39276d1d169SLukasz Majewski #define CONFIG_WATCHDOG_TIMEOUT_MSECS   15000
39376d1d169SLukasz Majewski 
394a3eec24aSLukasz Majewski /* ENV config */
395a3eec24aSLukasz Majewski #ifdef CONFIG_ENV_IS_IN_SPI_FLASH
396a3eec24aSLukasz Majewski #define CONFIG_ENV_SIZE		(SZ_64K)
397a3eec24aSLukasz Majewski /* The 0x120000 value corresponds to above SPI-NOR memory MAP */
398a3eec24aSLukasz Majewski #define CONFIG_ENV_OFFSET		(0x120000)
399a3eec24aSLukasz Majewski #define CONFIG_ENV_SECT_SIZE		(SZ_64K)
400a3eec24aSLukasz Majewski #define CONFIG_SYS_REDUNDAND_ENVIRONMENT
401a3eec24aSLukasz Majewski #define CONFIG_ENV_OFFSET_REDUND	(CONFIG_ENV_OFFSET + \
402a3eec24aSLukasz Majewski 						CONFIG_ENV_SECT_SIZE)
403a3eec24aSLukasz Majewski #define CONFIG_ENV_SIZE_REDUND		CONFIG_ENV_SIZE
404a3eec24aSLukasz Majewski 
405a3eec24aSLukasz Majewski #define CONFIG_ENV_SPI_BUS		CONFIG_SF_DEFAULT_BUS
406a3eec24aSLukasz Majewski #define CONFIG_ENV_SPI_CS		CONFIG_SF_DEFAULT_CS
407a3eec24aSLukasz Majewski #define CONFIG_ENV_SPI_MODE		CONFIG_SF_DEFAULT_MODE
408a3eec24aSLukasz Majewski #define CONFIG_ENV_SPI_MAX_HZ		CONFIG_SF_DEFAULT_SPEED
409a3eec24aSLukasz Majewski #endif
410a3eec24aSLukasz Majewski 
411a3eec24aSLukasz Majewski #define CONFIG_MXC_USB_PORTSC           (PORT_PTS_UTMI | PORT_PTS_PTW)
412a3eec24aSLukasz Majewski #endif /* __CONFIG_H */
413