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