ipq807x: add support for Buffalo WXR-5950AX12
[openwrt/staging/aparcar.git] / target / linux / ipq807x / base-files / lib / upgrade / platform.sh
index f9c28fad093ba32616df854c650d5209818fb572..683015898a35eae9a603e96327752db68343b2f4 100644 (file)
@@ -1,7 +1,7 @@
 PART_NAME=firmware
 REQUIRE_IMAGE_METADATA=1
 
-RAMFS_COPY_BIN='fw_printenv fw_setenv'
+RAMFS_COPY_BIN='fw_printenv fw_setenv head'
 RAMFS_COPY_DATA='/etc/fw_env.config /var/lock/fw_printenv.lock'
 
 xiaomi_initramfs_prepare() {
@@ -34,7 +34,8 @@ platform_check_image() {
 platform_pre_upgrade() {
        case "$(board_name)" in
        redmi,ax6|\
-       xiaomi,ax3600)
+       xiaomi,ax3600|\
+       xiaomi,ax9000)
                xiaomi_initramfs_prepare
                ;;
        esac
@@ -42,8 +43,54 @@ platform_pre_upgrade() {
 
 platform_do_upgrade() {
        case "$(board_name)" in
+       buffalo,wxr-5950ax12)
+               CI_KERN_UBIPART="rootfs"
+               CI_ROOT_UBIPART="user_property"
+               buffalo_upgrade_prepare
+               nand_do_flash_file "$1" || nand_do_upgrade_failed
+               nand_do_restore_config || nand_do_upgrade_failed
+               buffalo_upgrade_optvol
+               ;;
+       dynalink,dl-wrx36)
+               nand_do_upgrade "$1"
+               ;;
+       edgecore,eap102)
+               active="$(fw_printenv -n active)"
+               if [ "$active" -eq "1" ]; then
+                       CI_UBIPART="rootfs2"
+               else
+                       CI_UBIPART="rootfs1"
+               fi
+               # force altbootcmd which handles partition change in u-boot
+               fw_setenv bootcount 3
+               fw_setenv upgrade_available 1
+               nand_do_upgrade "$1"
+               ;;
+       edimax,cax1800)
+               nand_do_upgrade "$1"
+               ;;
+       qnap,301w)
+               kernelname="0:HLOS"
+               rootfsname="rootfs"
+               mmc_do_upgrade "$1"
+               ;;
+       zyxel,nbg7815)
+               local config_mtdnum="$(find_mtd_index 0:bootconfig)"
+               [ -z "$config_mtdnum" ] && reboot
+               part_num="$(hexdump -e '1/1 "%01x|"' -n 1 -s 168 -C /dev/mtd$config_mtdnum | cut -f 1 -d "|" | head -n1)"
+               if [ "$part_num" -eq "0" ]; then
+                       kernelname="0:HLOS"
+                       rootfsname="rootfs"
+                       mmc_do_upgrade "$1"
+               else
+                       kernelname="0:HLOS_1"
+                       rootfsname="rootfs_1"
+                       mmc_do_upgrade "$1"
+               fi
+               ;;
        redmi,ax6|\
-       xiaomi,ax3600)
+       xiaomi,ax3600|\
+       xiaomi,ax9000)
                # Make sure that UART is enabled
                fw_setenv boot_wait on
                fw_setenv uart_en 1