ipq807x: add Spectrum SAX1V1K
[openwrt/staging/pepe2k.git] / target / linux / qualcommax / ipq807x / base-files / lib / upgrade / platform.sh
1 PART_NAME=firmware
2 REQUIRE_IMAGE_METADATA=1
3
4 RAMFS_COPY_BIN='fw_printenv fw_setenv head'
5 RAMFS_COPY_DATA='/etc/fw_env.config /var/lock/fw_printenv.lock'
6
7 xiaomi_initramfs_prepare() {
8 # Wipe UBI if running initramfs
9 [ "$(rootfs_type)" = "tmpfs" ] || return 0
10
11 local rootfs_mtdnum="$( find_mtd_index rootfs )"
12 if [ ! "$rootfs_mtdnum" ]; then
13 echo "unable to find mtd partition rootfs"
14 return 1
15 fi
16
17 local kern_mtdnum="$( find_mtd_index ubi_kernel )"
18 if [ ! "$kern_mtdnum" ]; then
19 echo "unable to find mtd partition ubi_kernel"
20 return 1
21 fi
22
23 ubidetach -m "$rootfs_mtdnum"
24 ubiformat /dev/mtd$rootfs_mtdnum -y
25
26 ubidetach -m "$kern_mtdnum"
27 ubiformat /dev/mtd$kern_mtdnum -y
28 }
29
30 platform_check_image() {
31 return 0;
32 }
33
34 platform_pre_upgrade() {
35 case "$(board_name)" in
36 redmi,ax6|\
37 xiaomi,ax3600|\
38 xiaomi,ax9000)
39 xiaomi_initramfs_prepare
40 ;;
41 esac
42 }
43
44 platform_do_upgrade() {
45 case "$(board_name)" in
46 arcadyan,aw1000|\
47 cmcc,rm2-6|\
48 compex,wpq873|\
49 dynalink,dl-wrx36|\
50 edimax,cax1800|\
51 netgear,rax120v2|\
52 netgear,wax218|\
53 netgear,wax620|\
54 netgear,wax630|\
55 zbtlink,zbt-z800ax)
56 nand_do_upgrade "$1"
57 ;;
58 buffalo,wxr-5950ax12)
59 CI_KERN_UBIPART="rootfs"
60 CI_ROOT_UBIPART="user_property"
61 buffalo_upgrade_prepare
62 nand_do_flash_file "$1" || nand_do_upgrade_failed
63 nand_do_restore_config || nand_do_upgrade_failed
64 buffalo_upgrade_optvol
65 ;;
66 edgecore,eap102)
67 active="$(fw_printenv -n active)"
68 if [ "$active" -eq "1" ]; then
69 CI_UBIPART="rootfs2"
70 else
71 CI_UBIPART="rootfs1"
72 fi
73 # force altbootcmd which handles partition change in u-boot
74 fw_setenv bootcount 3
75 fw_setenv upgrade_available 1
76 nand_do_upgrade "$1"
77 ;;
78 linksys,mx4200v1|\
79 linksys,mx4200v2|\
80 linksys,mx5300)
81 boot_part="$(fw_printenv -n boot_part)"
82 if [ "$boot_part" -eq "1" ]; then
83 fw_setenv boot_part 2
84 CI_KERNPART="alt_kernel"
85 CI_UBIPART="alt_rootfs"
86 else
87 fw_setenv boot_part 1
88 CI_UBIPART="rootfs"
89 fi
90 fw_setenv boot_part_ready 3
91 fw_setenv auto_recovery yes
92 nand_do_upgrade "$1"
93 ;;
94 prpl,haze|\
95 qnap,301w|\
96 spectrum,sax1v1k)
97 kernelname="0:HLOS"
98 rootfsname="rootfs"
99 mmc_do_upgrade "$1"
100 ;;
101 redmi,ax6|\
102 xiaomi,ax3600|\
103 xiaomi,ax9000)
104 # Make sure that UART is enabled
105 fw_setenv boot_wait on
106 fw_setenv uart_en 1
107
108 # Enforce single partition.
109 fw_setenv flag_boot_rootfs 0
110 fw_setenv flag_last_success 0
111 fw_setenv flag_boot_success 1
112 fw_setenv flag_try_sys1_failed 8
113 fw_setenv flag_try_sys2_failed 8
114
115 # Kernel and rootfs are placed in 2 different UBI
116 CI_KERN_UBIPART="ubi_kernel"
117 CI_ROOT_UBIPART="rootfs"
118 nand_do_upgrade "$1"
119 ;;
120 yuncore,ax880)
121 active="$(fw_printenv -n active)"
122 if [ "$active" -eq "1" ]; then
123 CI_UBIPART="rootfs_1"
124 else
125 CI_UBIPART="rootfs"
126 fi
127 # force altbootcmd which handles partition change in u-boot
128 fw_setenv bootcount 3
129 fw_setenv upgrade_available 1
130 nand_do_upgrade "$1"
131 ;;
132 zte,mf269)
133 CI_KERN_UBIPART="ubi_kernel"
134 CI_ROOT_UBIPART="rootfs"
135 nand_do_upgrade "$1"
136 ;;
137 zyxel,nbg7815)
138 local config_mtdnum="$(find_mtd_index 0:bootconfig)"
139 [ -z "$config_mtdnum" ] && reboot
140 part_num="$(hexdump -e '1/1 "%01x|"' -n 1 -s 168 -C /dev/mtd$config_mtdnum | cut -f 1 -d "|" | head -n1)"
141 if [ "$part_num" -eq "0" ]; then
142 kernelname="0:HLOS"
143 rootfsname="rootfs"
144 mmc_do_upgrade "$1"
145 else
146 kernelname="0:HLOS_1"
147 rootfsname="rootfs_1"
148 mmc_do_upgrade "$1"
149 fi
150 ;;
151 *)
152 default_do_upgrade "$1"
153 ;;
154 esac
155 }