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