65ec5d8271e3cf05b3f8b0a351d701c54c1df98a
[openwrt/openwrt.git] / target / linux / mediatek / filogic / base-files / lib / upgrade / platform.sh
1 REQUIRE_IMAGE_METADATA=1
2
3 asus_initial_setup()
4 {
5 # initialize UBI if it's running on initramfs
6 [ "$(rootfs_type)" = "tmpfs" ] || return 0
7
8 ubirmvol /dev/ubi0 -N rootfs
9 ubirmvol /dev/ubi0 -N rootfs_data
10 ubirmvol /dev/ubi0 -N jffs2
11 ubimkvol /dev/ubi0 -N jffs2 -s 0x3e000
12 }
13
14 xiaomi_initial_setup()
15 {
16 # initialize UBI and setup uboot-env if it's running on initramfs
17 [ "$(rootfs_type)" = "tmpfs" ] || return 0
18
19 local mtdnum="$( find_mtd_index ubi )"
20 if [ ! "$mtdnum" ]; then
21 echo "unable to find mtd partition ubi"
22 return 1
23 fi
24
25 local kern_mtdnum="$( find_mtd_index ubi_kernel )"
26 if [ ! "$kern_mtdnum" ]; then
27 echo "unable to find mtd partition ubi_kernel"
28 return 1
29 fi
30
31 ubidetach -m "$mtdnum"
32 ubiformat /dev/mtd$mtdnum -y
33
34 ubidetach -m "$kern_mtdnum"
35 ubiformat /dev/mtd$kern_mtdnum -y
36
37 if ! fw_printenv -n flag_try_sys2_failed &>/dev/null; then
38 echo "failed to access u-boot-env. skip env setup."
39 return 0
40 fi
41
42 fw_setenv boot_wait on
43 fw_setenv uart_en 1
44 fw_setenv flag_boot_rootfs 0
45 fw_setenv flag_last_success 1
46 fw_setenv flag_boot_success 1
47 fw_setenv flag_try_sys1_failed 8
48 fw_setenv flag_try_sys2_failed 8
49
50 local board=$(board_name)
51 case "$board" in
52 xiaomi,mi-router-ax3000t|\
53 xiaomi,mi-router-wr30u-stock)
54 fw_setenv mtdparts "nmbm0:1024k(bl2),256k(Nvram),256k(Bdata),2048k(factory),2048k(fip),256k(crash),256k(crash_log),34816k(ubi),34816k(ubi1),32768k(overlay),12288k(data),256k(KF)"
55 ;;
56 xiaomi,redmi-router-ax6000-stock)
57 fw_setenv mtdparts "nmbm0:1024k(bl2),256k(Nvram),256k(Bdata),2048k(factory),2048k(fip),256k(crash),256k(crash_log),30720k(ubi),30720k(ubi1),51200k(overlay)"
58 ;;
59 esac
60 }
61
62 platform_do_upgrade() {
63 local board=$(board_name)
64
65 case "$board" in
66 acer,predator-w6|\
67 smartrg,sdg-8612|\
68 smartrg,sdg-8614|\
69 smartrg,sdg-8622|\
70 smartrg,sdg-8632)
71 CI_KERNPART="kernel"
72 CI_ROOTPART="rootfs"
73 emmc_do_upgrade "$1"
74 ;;
75 asus,rt-ax59u|\
76 asus,tuf-ax4200|\
77 asus,tuf-ax6000)
78 CI_UBIPART="UBI_DEV"
79 CI_KERNPART="linux"
80 nand_do_upgrade "$1"
81 ;;
82 bananapi,bpi-r3)
83 local rootdev="$(cmdline_get_var root)"
84 rootdev="${rootdev##*/}"
85 rootdev="${rootdev%p[0-9]*}"
86 case "$rootdev" in
87 mmc*)
88 CI_ROOTDEV="$rootdev"
89 CI_KERNPART="production"
90 emmc_do_upgrade "$1"
91 ;;
92 mtdblock*)
93 PART_NAME="fit"
94 default_do_upgrade "$1"
95 ;;
96 ubiblock*)
97 CI_KERNPART="fit"
98 nand_do_upgrade "$1"
99 ;;
100 esac
101 ;;
102 cmcc,rax3000m)
103 case "$(cmdline_get_var root)" in
104 /dev/mmc*)
105 CI_KERNPART="production"
106 emmc_do_upgrade "$1"
107 ;;
108 *)
109 CI_KERNPART="fit"
110 nand_do_upgrade "$1"
111 ;;
112 esac
113 ;;
114 cudy,wr3000-v1)
115 default_do_upgrade "$1"
116 ;;
117 glinet,gl-mt2500|\
118 glinet,gl-mt6000)
119 CI_KERNPART="kernel"
120 CI_ROOTPART="rootfs"
121 emmc_do_upgrade "$1"
122 ;;
123 h3c,magic-nx30-pro|\
124 jcg,q30-pro|\
125 mediatek,mt7981-rfb|\
126 qihoo,360t7|\
127 tplink,tl-xdr4288|\
128 tplink,tl-xdr6086|\
129 tplink,tl-xdr6088|\
130 xiaomi,mi-router-ax3000t-ubootmod|\
131 xiaomi,mi-router-wr30u-ubootmod|\
132 xiaomi,redmi-router-ax6000-ubootmod)
133 CI_KERNPART="fit"
134 nand_do_upgrade "$1"
135 ;;
136 mercusys,mr90x-v1)
137 CI_UBIPART="ubi0"
138 nand_do_upgrade "$1"
139 ;;
140 ubnt,unifi-6-plus)
141 CI_KERNPART="kernel0"
142 EMMC_ROOT_DEV="$(cmdline_get_var root)"
143 emmc_do_upgrade "$1"
144 ;;
145 xiaomi,mi-router-ax3000t|\
146 xiaomi,mi-router-wr30u-stock|\
147 xiaomi,redmi-router-ax6000-stock)
148 CI_KERN_UBIPART=ubi_kernel
149 CI_ROOT_UBIPART=ubi
150 nand_do_upgrade "$1"
151 ;;
152 zyxel,ex5601-t0-ubootmod)
153 CI_KERNPART="fit"
154 CI_ROOTPART="ubi_rootfs"
155 nand_do_upgrade "$1"
156 ;;
157 *)
158 nand_do_upgrade "$1"
159 ;;
160 esac
161 }
162
163 PART_NAME=firmware
164
165 platform_check_image() {
166 local board=$(board_name)
167 local magic="$(get_magic_long "$1")"
168
169 [ "$#" -gt 1 ] && return 1
170
171 case "$board" in
172 bananapi,bpi-r3|\
173 cmcc,rax3000m)
174 [ "$magic" != "d00dfeed" ] && {
175 echo "Invalid image type."
176 return 1
177 }
178 return 0
179 ;;
180 *)
181 nand_do_platform_check "$board" "$1"
182 return $?
183 ;;
184 esac
185
186 return 0
187 }
188
189 platform_copy_config() {
190 case "$(board_name)" in
191 bananapi,bpi-r3|\
192 cmcc,rax3000m)
193 case "$(cmdline_get_var root)" in
194 /dev/mmc*)
195 emmc_copy_config
196 ;;
197 esac
198 ;;
199 acer,predator-w6|\
200 glinet,gl-mt2500|\
201 glinet,gl-mt6000|\
202 ubnt,unifi-6-plus)
203 emmc_copy_config
204 ;;
205 esac
206 }
207
208 platform_pre_upgrade() {
209 local board=$(board_name)
210
211 case "$board" in
212 asus,rt-ax59u|\
213 asus,tuf-ax4200|\
214 asus,tuf-ax6000)
215 asus_initial_setup
216 ;;
217 xiaomi,mi-router-ax3000t|\
218 xiaomi,mi-router-wr30u-stock|\
219 xiaomi,redmi-router-ax6000-stock)
220 xiaomi_initial_setup
221 ;;
222 esac
223 }