# # U-Boot script for installing Linux images created by Yocto from the micro SD # card into the NAND # echo "############################################################" echo "# Linux firmware install from micro SD #" echo "############################################################" echo "" echo " This process will erase your NAND and will install a new" echo " U-Boot and Linux firmware images on the NAND." echo "" echo " Press CTRL+C now if you wish to abort or wait 10 seconds" echo " to continue." sleep 10 if test $? -eq 1; then echo "Aborted by user."; exit; fi setenv INSTALL_MMCDEV 0 setenv INSTALL_UBOOT_FILENAME u-boot-ccimx6ulsbc.imx setenv INSTALL_LINUX_FILENAME dey-image-qt-##GRAPHICAL_BACKEND##-ccimx6ulsbc.boot.ubifs setenv INSTALL_ROOTFS_FILENAME dey-image-qt-##GRAPHICAL_BACKEND##-ccimx6ulsbc.ubifs # Check for presence of firmware files on the SD card for install_f in ${INSTALL_UBOOT_FILENAME} ${INSTALL_LINUX_FILENAME} ${INSTALL_ROOTFS_FILENAME}; do if test ! -e mmc ${INSTALL_MMCDEV}:1 ${install_f}; then echo "ERROR: Could not find file ${install_f}"; install_abort=1; fi; done if test -n "${install_abort}"; then echo "Aborted."; exit; fi # Skip user confirmation for U-Boot update setenv forced_update 1 # Set bootdelay to zero so that firmware update is run immediately after # the first reset. setenv bootdelay 0 # Update U-Boot echo "" echo "" echo ">> Installing U-Boot boot loader (target will reset)" echo "" echo "" update uboot mmc ${INSTALL_MMCDEV} fat ${INSTALL_UBOOT_FILENAME} if test $? -eq 1; then echo "[ERROR] Failed to update U-Boot boot loader!"; echo ""; echo "Aborted."; exit; fi # Set 'bootcmd' to the second part of the script that will # - Reset environment to defaults # - Save the environment # - Update the 'linux' partition # - Update the 'rootfs' partition # - Reset the system and let it boot setenv bootcmd " env default -a; saveenv; echo \"\"; echo \"\"; echo \">> Installing Linux kernel and device tree files\"; echo \"\"; echo \"\"; update linux mmc ${INSTALL_MMCDEV} fat ${INSTALL_LINUX_FILENAME}; if test \$? -eq 1; then echo \"[ERROR] Failed to update linux partition!\"; echo \"\"; echo \"Aborted.\"; exit; fi; echo \"\"; echo \"\"; echo \">> Installing Linux root file system\"; echo \"\"; echo \"\"; update rootfs mmc ${INSTALL_MMCDEV} fat ${INSTALL_ROOTFS_FILENAME}; if test \$? -eq 1; then echo \"[ERROR] Failed to update rootfs partition!\"; echo \"\"; echo \"Aborted.\"; exit; fi; saveenv; echo \"\"; echo \"#######################\"; echo \"# Install complete! #\"; echo \"#######################\"; echo \"\"; sleep 1; echo \">> Restarting the system\"; sleep 1; reset; " saveenv reset