mvebu: base-files: Update Turris Omnia U-Boot environment
authorKlaus Kudielka <klaus.kudielka@gmail.com>
Fri, 27 Dec 2019 13:26:37 +0000 (14:26 +0100)
committerRISCi_ATOM <bob@bobcall.me>
Sun, 6 Dec 2020 06:34:22 +0000 (01:34 -0500)
commit0ba637ba2c169a0f36c833dae8f93e597aa8bc6e
treec74b37ea322fc6a47f2b6e15d995acbdffa2dd7d
parent7b360682fe74ece8de466b17256d8d25f3d7c780
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 <klaus.kudielka@gmail.com>
Reviewed-by: Tomasz Maciej Nowak <tomek_n@o2.pl>
Tested-by: W. Michael Petullo <mike@flyn.org> (Turris Omnia "2020")
Tested-by: Klaus Kudielka <klaus.kudielka@gmail.com> (Turris Omnia)
(cherry picked from commit dfa357a3def512c13f22371d24138b6e8093be18)
target/linux/mvebu/base-files/lib/upgrade/sdcard.sh