Add support for updating SPI flash device firmware. U-boot has to be programmed to spi flash device /dev/mtd0 manually before switching from sdcard to SPI flash device.
Running sysupgrade with sysupgrade.bin will write firmware partition and copy configuration files from sdcard. Signed-off-by: Oskari Lemmela <osk...@lemmela.net> --- .../sunxi/base-files/lib/upgrade/platform.sh | 30 ++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/target/linux/sunxi/base-files/lib/upgrade/platform.sh b/target/linux/sunxi/base-files/lib/upgrade/platform.sh index 88ef4790e9..436e4d8517 100644 --- a/target/linux/sunxi/base-files/lib/upgrade/platform.sh +++ b/target/linux/sunxi/base-files/lib/upgrade/platform.sh @@ -1,5 +1,17 @@ +PART_NAME=firmware + platform_check_image() { local diskdev partdev diff + local firmware_mtd=$(find_mtd_part firmware) + local image_magic="$(get_magic_long "$1")" + + if [ -n "$firmware_mtd" ] && [ "$image_magic" != "00000000" ]; then + REQUIRE_IMAGE_METADATA=1 + if ! $(fwtool_check_image $@); then + return 1 + fi + return 0 + fi export_bootdevice && export_partdevice diskdev -2 || { echo "Unable to determine upgrade device" @@ -35,7 +47,7 @@ platform_copy_config() { fi } -platform_do_upgrade() { +platform_do_upgrade_mmc() { local diskdev partdev diff export_bootdevice && export_partdevice diskdev -2 || { @@ -87,3 +99,19 @@ platform_do_upgrade() { echo "Writing new UUID to /dev/$diskdev..." get_image "$@" | dd of="/dev/$diskdev" bs=1 skip=440 count=4 seek=440 conv=fsync } + +platform_do_upgrade() { + local board=$(board_name) + local image_magic="$(get_magic_long "$1")" + + if [ "$image_magic" != "00000000" ]; then + case "$board" in + pine64,pine64-lts) + default_do_upgrade "$ARGV" + ;; + esac + else + platform_do_upgrade_mmc "$ARGV" + fi + +} -- 2.17.1 _______________________________________________ openwrt-devel mailing list openwrt-devel@lists.openwrt.org https://lists.openwrt.org/mailman/listinfo/openwrt-devel