From 61b94fb7393a84c105124bbe70dba4d3462dab13 Mon Sep 17 00:00:00 2001 From: Troy Kisky <troy.kisky@boundarydevices.com> Date: Thu, 2 Aug 2018 18:26:21 -0700 Subject: [PATCH] bootscripts: net_upgradeu: add imx8m support Signed-off-by: Troy Kisky <troy.kisky@boundarydevices.com> --- board/boundary/bootscripts/net_upgradeu.txt | 53 +++++++++++++++++++++ 1 file changed, 53 insertions(+) diff --git a/board/boundary/bootscripts/net_upgradeu.txt b/board/boundary/bootscripts/net_upgradeu.txt index 9d81a6324ab..96799cc505c 100644 --- a/board/boundary/bootscripts/net_upgradeu.txt +++ b/board/boundary/bootscripts/net_upgradeu.txt @@ -15,6 +15,7 @@ offset=0x400 erase_size=0xC0000 qspi_offset=0x0 a_base=0x10100000 +block_size=0x200 if itest.s x51 == "x${imx_cpu}"; then a_base=0x90100000 @@ -22,6 +23,9 @@ elif itest.s x53 == "x${imx_cpu}"; then a_base=0x70100000 elif itest.s x6SX == "x${imx_cpu}" || itest.s x7D == "x${imx_cpu}"; then a_base=0x80100000 +elif itest.s x8MQ == "x${imx_cpu}"; then + a_base=0x42000000 + offset=0x8400 fi qspi_match=1 @@ -33,6 +37,54 @@ setexpr a_script ${a_base} setenv stdout serial,vga +if itest.s "x${sfname}" == "x" ; then +# U-Boot resides in (e)MMC +if itest.s "x${env_dev}" == "x" || itest.s "x${env_part}" == "x"; then + echo "Please set env_dev/part to the appropriate values" + exit +fi + +# Load bootloader binary for this board +if tftp ${a_uImage1} u-boot.${uboot_defconfig} ; then +else + echo "File u-boot.${uboot_defconfig} not found on TFTP server" ; + exit +fi + +# Compute block count for filesize and offset +setexpr cntoffset ${offset} / ${block_size} +setexpr cntfile ${filesize} / ${block_size} +# Add 1 in case the $filesize is not a multiple of $block_size +setexpr cntfile ${cntfile} + 1 + +# Select media partition (if different from main partition) +mmc dev ${env_dev} ${env_part} + +# Read and compare current U-Boot +mmc read ${a_uImage2} ${cntoffset} ${cntfile} +if cmp.b ${a_uImage1} ${a_uImage2} ${filesize} ; then + echo "------- U-Boot versions match" ; + exit ; +fi + +echo "Need U-Boot upgrade" ; +echo "Program in 5 seconds" ; +for n in 5 4 3 2 1 ; do + echo $n ; + sleep 1 ; +done +mmc write ${a_uImage1} ${cntoffset} ${cntfile} + +# Make sure to boot from the proper partition +if itest ${env_part} != 0 ; then + mmc partconf ${env_dev} 1 ${env_part} 0 +fi + +# Switch back to main eMMC partition (to avoid confusion) +mmc dev ${env_dev} + +else +# U-Boot resides in NOR flash if sf probe || sf probe || sf probe 1 27000000 || sf probe 1 27000000 ; then echo "probed SPI ROM" ; else @@ -161,6 +213,7 @@ if itest.s "x" != "x${next}" ; then echo "${next} not found" fi fi +fi echo "---- U-Boot upgraded. resetting" sleep 2 -- GitLab