From: Klaus Kudielka Date: Fri, 27 Dec 2019 13:26:37 +0000 (+0100) Subject: mvebu: base-files: Update Turris Omnia U-Boot environment X-Git-Tag: v1.5.4-20201214~12 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=0ba637ba2c169a0f36c833dae8f93e597aa8bc6e;p=librecmc%2Flibrecmc.git mvebu: base-files: Update Turris Omnia U-Boot environment Move the update procedure from sysupgrade to first boot, which is much more convenient in the sysupgrade case (otherwise the environment is always one generation behind). Check whether we have an old U-Boot release installed, and update the environment only if necessary. Some notes on the U-Boot environment: The first 9 lines are a copy of the default environment of the old U-Boot release - only modified, to run "distro_bootcmd", in case "mmcboot" fails to boot the factory OS. The remaining 16 lines are a backport of the default environment of the new U-Boot release (shipped with CZ11NIC23). The main entry point is "distro_bootcmd", which eventually sources boot.scr. This way, we have a unified boot protocol for all Turris Omnia revisions so far. This commit also fixes a shortcoming of previous Turris Omnia support: Users may install OpenWrt with the Turris Omnia in factory state (i.e. invalid environment store). In that case, neither fw_setenv, nor U-Boot itself, would import the default environment from the image - screwing up the rescue system, at least! Signed-off-by: Klaus Kudielka Reviewed-by: Tomasz Maciej Nowak Tested-by: W. Michael Petullo (Turris Omnia "2020") Tested-by: Klaus Kudielka (Turris Omnia) (cherry picked from commit dfa357a3def512c13f22371d24138b6e8093be18) --- diff --git a/target/linux/mvebu/base-files/lib/upgrade/sdcard.sh b/target/linux/mvebu/base-files/lib/upgrade/sdcard.sh index 184803a50f..bada47a1dd 100644 --- a/target/linux/mvebu/base-files/lib/upgrade/sdcard.sh +++ b/target/linux/mvebu/base-files/lib/upgrade/sdcard.sh @@ -88,15 +88,6 @@ platform_do_upgrade_sdcard() { get_image "$@" | dd of="/dev/$diskdev" bs=1 skip=440 count=4 seek=440 conv=fsync fi - case "$board" in - cznic,turris-omnia) - fw_setenv openwrt_bootargs 'earlyprintk console=ttyS0,115200 root=/dev/mmcblk0p2 rootfstype=auto rootwait' - fw_setenv openwrt_mmcload 'setenv bootargs "$openwrt_bootargs cfg80211.freg=$regdomain"; fatload mmc 0 0x01000000 zImage; fatload mmc 0 0x02000000 armada-385-turris-omnia.dtb' - fw_setenv factory_mmcload 'setenv bootargs "$bootargs cfg80211.freg=$regdomain"; btrload mmc 0 0x01000000 boot/zImage @; btrload mmc 0 0x02000000 boot/dtb @' - fw_setenv mmcboot 'run openwrt_mmcload || run factory_mmcload; bootz 0x01000000 - 0x02000000' - ;; - esac - sleep 1 }