190792Sgshapiro/* SPDX-License-Identifier: GPL-2.0+ */
2261363Sgshapiro
390792Sgshapiro/*
490792Sgshapiro * Copyright (C) 2017 Armadeus Systems
590792Sgshapiro */
690792Sgshapiro
790792Sgshapiro/* Environment is stored in the eMMC boot partition */
890792Sgshapiro
990792Sgshapiroenv_version=100
1090792Sgshapiroconsoledev=ttymxc0
11266692Sgshapiroboard_name=opos6ul
1290792Sgshapirofdt_addr=0x88000000
1390792Sgshapirofdt_high=0xffffffff
1490792Sgshapirofdt_name=opos6uldev
1590792Sgshapiroinitrd_high=0xffffffff
1690792Sgshapiroip_dyn=yes
1790792Sgshapirostdin=serial
1890792Sgshapirostdout=serial
1990792Sgshapirostderr=serial
2090792Sgshapirommcdev=0
2190792Sgshapirommcpart=2
2290792Sgshapirommcroot=/dev/mmcblk0p2 ro
2390792Sgshapirommcrootfstype=ext4 rootwait
2490792Sgshapirokernelimg=opos6ul-linux.bin
2590792Sgshapirosplashpos=0,0
2690792Sgshapirosplashimage=CONFIG_SYS_LOAD_ADDR
2790792Sgshapirocheck_env=if test -n ${flash_env_version};
2890792Sgshapiro	then env default env_version;
2990792Sgshapiro	else env set flash_env_version ${env_version}; env save;
3090792Sgshapiro	fi;
3190792Sgshapiro	if itest ${flash_env_version} != ${env_version}; then
3290792Sgshapiro		echo "*** Warning - Environment version
3390792Sgshapiro		 change suggests: run flash_reset_env; reset";
3490792Sgshapiro		env default flash_reset_env;
35141858Sgshapiro	else exit; fi; 
36141858Sgshapiroflash_reset_env=env default -f -a && saveenv &&
37141858Sgshapiro	echo Environment variables erased!
3890792Sgshapirodownload_uboot_spl=tftpboot ${loadaddr} ${board_name}-u-boot.spl
3990792Sgshapiroflash_uboot_spl=
4090792Sgshapiro	if mmc dev 0 1; then
4190792Sgshapiro		setexpr sz ${filesize} / 0x200;
4290792Sgshapiro		setexpr sz ${sz} + 1;
4390792Sgshapiro		if mmc write ${loadaddr} 0x2 ${sz}; then
4490792Sgshapiro			echo Flashing of U-Boot SPL succeed;
4590792Sgshapiro		else echo Flashing of U-Boot SPL failed;
4690792Sgshapiro		fi;
4790792Sgshapiro	fi;
4890792Sgshapirodownload_uboot_img=tftpboot ${loadaddr} ${board_name}-u-boot.img
4990792Sgshapiroflash_uboot_img=
5090792Sgshapiro	if mmc dev 0 1; then
5190792Sgshapiro		setexpr sz ${filesize} / 0x200;
5290792Sgshapiro		setexpr sz ${sz} + 1;
5390792Sgshapiro		if mmc write ${loadaddr} 0x8a ${sz}; then
5490792Sgshapiro			echo Flashing of U-Boot image succeed;
5590792Sgshapiro		else echo Flashing of U-Boot image failed;
5690792Sgshapiro		fi;
5790792Sgshapiro	fi;
5890792Sgshapiroupdate_uboot=run download_uboot_spl flash_uboot_spl
5990792Sgshapiro	download_uboot_img flash_uboot_img
6090792Sgshapirodownload_kernel=tftpboot ${loadaddr} ${kernelimg}
6190792Sgshapiroflash_kernel=
6290792Sgshapiro	if ext4write mmc ${mmcdev}:${mmcpart} ${loadaddr} /boot/${kernelimg} ${filesize}; then
6390792Sgshapiro		echo kernel update succeed;
6490792Sgshapiro		else echo kernel update failed;
6590792Sgshapiro	fi;
6690792Sgshapiroupdate_kernel=run download_kernel flash_kernel
6790792Sgshapirodownload_dtb=tftpboot ${fdt_addr} imx6ul-${fdt_name}.dtb
6890792Sgshapiroflash_dtb=
6990792Sgshapiro	if ext4write mmc ${mmcdev}:${mmcpart} ${fdt_addr} /boot/imx6ul-${fdt_name}.dtb ${filesize}; then
7090792Sgshapiro		echo dtb update succeed;
7190792Sgshapiro		else echo dtb update in failed;
7290792Sgshapiro	fi;
7390792Sgshapiroupdate_dtb=run download_dtb flash_dtb
7490792Sgshapirodownload_rootfs=tftpboot ${loadaddr} ${board_name}-rootfs.ext4
7590792Sgshapiroflash_rootfs=
7690792Sgshapiro	if mmc dev 0 0; then
7790792Sgshapiro		setexpr nbblocks ${filesize} / 0x200;
7890792Sgshapiro		setexpr nbblocks ${nbblocks} + 1;
7990792Sgshapiro		if mmc write ${loadaddr} 0x40800 ${nbblocks}; then
8090792Sgshapiro			echo Flashing of rootfs image succeed;
8190792Sgshapiro		else echo Flashing of rootfs image failed;
8290792Sgshapiro		fi;
8390792Sgshapiro	fi;
8490792Sgshapiroupdate_rootfs=run download_rootfs flash_rootfs
8590792Sgshapiroflash_failsafe=
8690792Sgshapiro	if mmc dev 0 0; then
8790792Sgshapiro		setexpr nbblocks ${filesize} / 0x200;
8890792Sgshapiro		setexpr nbblocks ${nbblocks} + 1;
8990792Sgshapiro		if mmc write ${loadaddr} 0x800 ${nbblocks}; then
9090792Sgshapiro			echo Flashing of rootfs image in failsafe partition succeed;
9190792Sgshapiro		else echo Flashing of rootfs image in failsafe partition failed;
9290792Sgshapiro		fi;
9390792Sgshapiro	fi;
9490792Sgshapiroupdate_failsafe=run download_rootfs flash_failsafe
9590792Sgshapirodownload_userdata=tftpboot ${loadaddr} ${board_name}-user_data.ext4
9690792Sgshapiroflash_userdata=
9790792Sgshapiro	if mmc dev 0 0; then
9890792Sgshapiro		setexpr nbblocks ${filesize} / 0x200;
9990792Sgshapiro		setexpr nbblocks ${nbblocks} + 1;
10090792Sgshapiro		if mmc write ${loadaddr} 0 ${nbblocks}; then
10190792Sgshapiro			echo Flashing of user_data image succeed;
10290792Sgshapiro		else echo Flashing of user_data image failed;
10390792Sgshapiro		fi;
10490792Sgshapiro	fi;
10590792Sgshapiroupdate_userdata=run download_userdata flash_userdata; mmc rescan
10690792Sgshapiroerase_userdata=
10790792Sgshapiro	if mmc dev 0 0; then
10890792Sgshapiro		echo Erasing eMMC User Data partition, no way out...;
10990792Sgshapiro		mw ${loadaddr} 0 0x200000;
11090792Sgshapiro		mmc write ${loadaddr} 0 0x1000;
11190792Sgshapiro		mmc write ${loadaddr} 0x800 0x1000;
11290792Sgshapiro		mmc write ${loadaddr} 0x40800 0x1000;
11390792Sgshapiro		mmc write ${loadaddr} 0x440800 0x1000;
11490792Sgshapiro	fi;
11590792Sgshapiro	mmc rescan
11690792Sgshapiroupdate_all=run update_rootfs update_uboot
11790792Sgshapiroinitargs=setenv bootargs console=${consoledev},${baudrate} ${extrabootargs}
11890792Sgshapiroaddipargs=setenv bootargs ${bootargs}
11990792Sgshapiro	ip=${ipaddr}:${serverip}:${gatewayip}:${netmask}:${hostname}:eth0:off
12090792Sgshapiroaddmmcargs=setenv bootargs ${bootargs} root=${mmcroot}
12190792Sgshapiro	rootfstype=${mmcrootfstype}
12290792Sgshapiroemmcboot=run initargs; run addmmcargs;
12390792Sgshapiro	load mmc ${mmcdev}:${mmcpart} ${loadaddr} /boot/${kernelimg} &&
12490792Sgshapiro	load mmc ${mmcdev}:${mmcpart} ${fdt_addr} /boot/imx6ul-${fdt_name}.dtb &&
12590792Sgshapiro	bootz ${loadaddr} - ${fdt_addr};
12690792Sgshapiroemmcsafeboot=setenv mmcpart 1; setenv mmcroot /dev/mmcblk0p1 ro; run emmcboot;
12790792Sgshapiroaddnfsargs=setenv bootargs ${bootargs} root=/dev/nfs rw
12890792Sgshapiro	nfsroot=${serverip}:${rootpath}
12990792Sgshapironfsboot=run initargs; run addnfsargs addipargs;
13090792Sgshapiro	nfs ${loadaddr} ${serverip}:${rootpath}/boot/${kernelimg} &&
13190792Sgshapiro	nfs ${fdt_addr} ${serverip}:${rootpath}/boot/imx6ul-${fdt_name}.dtb &&
13290792Sgshapiro	bootz ${loadaddr} - ${fdt_addr};
13390792Sgshapiro