diff options
author | Michael Pratt <mcpratt@pm.me> | 2021-02-12 18:19:10 -0500 |
---|---|---|
committer | Petr Štetiar <ynezz@true.cz> | 2021-06-11 07:20:31 +0200 |
commit | e823fb1763a3b08c64ff68852279a28b33f4cc1a (patch) | |
tree | 35503acd6979a9db317ce861043fe4b0ea08a801 /target/linux/ath79/dts | |
parent | 642c88714cbf68a582d191141b96e8b9fb850b74 (diff) | |
download | upstream-e823fb1763a3b08c64ff68852279a28b33f4cc1a.tar.gz upstream-e823fb1763a3b08c64ff68852279a28b33f4cc1a.tar.bz2 upstream-e823fb1763a3b08c64ff68852279a28b33f4cc1a.zip |
ath79: add Senao 'failsafe' sysupgrade procedure
Use a similar upgrade method for sysupgrade.bin, like factory.bin,
for Senao boards with the tar.gz OEM upgrade platform,
and 'failsafe' image which is loaded on checksum failure.
This is inspired by the OEM upgrade script /etc/fwupgrade.sh
and the existing platforms for dual-boot Senao boards.
Previously, if the real kernel was damaged or missing
the only way to recover was with UART serial console,
because the OKLI lzma-loader is programmed to halt.
uboot did not detect cases where kernel or rootfs is damaged
and boots OKLI instead of the failsafe image,
because the checksums stored in uboot environment
did not include the real kernel and rootfs space.
Now, the stored checksums include the space for both
the lzma-loader, kernel, and rootfs.
Therefore, these boards are now practically unbrickable.
Also, the factory.bin and sysupgrade.bin are now the same,
except for image metadata.
This allows for flashing OEM image directly from openwrt
as well as flashing openwrt image directly from OEM.
Make 'loader' partition writable so that it can be updated
during a sysupgrade.
tested with
ENS202EXT v1
EAP1200H
EAP350 v1
EAP600
ECB350 v1
ECB600
ENH202 v1
Signed-off-by: Michael Pratt <mcpratt@pm.me>
(cherry picked from commit d5035f0d2694cb9c5a93ed72e3b6d2dd1770741e)
Diffstat (limited to 'target/linux/ath79/dts')
4 files changed, 0 insertions, 4 deletions
diff --git a/target/linux/ath79/dts/ar724x_senao_loader-4k.dtsi b/target/linux/ath79/dts/ar724x_senao_loader-4k.dtsi index 501ff26859..0dff79eb46 100644 --- a/target/linux/ath79/dts/ar724x_senao_loader-4k.dtsi +++ b/target/linux/ath79/dts/ar724x_senao_loader-4k.dtsi @@ -56,7 +56,6 @@ partition@a0000 { label = "loader"; reg = <0xa0000 0x1000>; - read-only; }; fwconcat1: partition@a1000 { diff --git a/target/linux/ath79/dts/ar724x_senao_loader-64k.dtsi b/target/linux/ath79/dts/ar724x_senao_loader-64k.dtsi index 54dbec18b3..831f0385a9 100644 --- a/target/linux/ath79/dts/ar724x_senao_loader-64k.dtsi +++ b/target/linux/ath79/dts/ar724x_senao_loader-64k.dtsi @@ -56,7 +56,6 @@ partition@a0000 { label = "loader"; reg = <0xa0000 0x10000>; - read-only; }; fwconcat1: partition@b0000 { diff --git a/target/linux/ath79/dts/ar934x_senao_loader.dtsi b/target/linux/ath79/dts/ar934x_senao_loader.dtsi index 35e5f13535..8247cc85dc 100644 --- a/target/linux/ath79/dts/ar934x_senao_loader.dtsi +++ b/target/linux/ath79/dts/ar934x_senao_loader.dtsi @@ -60,7 +60,6 @@ partition@a0000 { label = "loader"; reg = <0x0a0000 0x010000>; - read-only; }; fwconcat1: partition@b0000 { diff --git a/target/linux/ath79/dts/qca955x_senao_loader.dtsi b/target/linux/ath79/dts/qca955x_senao_loader.dtsi index 77eabde80a..846d3ed0af 100644 --- a/target/linux/ath79/dts/qca955x_senao_loader.dtsi +++ b/target/linux/ath79/dts/qca955x_senao_loader.dtsi @@ -58,7 +58,6 @@ partition@a0000 { label = "loader"; reg = <0x0a0000 0x010000>; - read-only; }; fwconcat1: partition@b0000 { |