mediatek: add support for YunCore AX835
[openwrt/staging/mans0n.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 yuncore,ax835)
116 default_do_upgrade "$1"
117 ;;
118 glinet,gl-mt2500|\
119 glinet,gl-mt6000)
120 CI_KERNPART="kernel"
121 CI_ROOTPART="rootfs"
122 emmc_do_upgrade "$1"
123 ;;
124 h3c,magic-nx30-pro|\
125 jcg,q30-pro|\
126 mediatek,mt7981-rfb|\
127 qihoo,360t7|\
128 tplink,tl-xdr4288|\
129 tplink,tl-xdr6086|\
130 tplink,tl-xdr6088|\
131 xiaomi,mi-router-ax3000t-ubootmod|\
132 xiaomi,mi-router-wr30u-ubootmod|\
133 xiaomi,redmi-router-ax6000-ubootmod)
134 CI_KERNPART="fit"
135 nand_do_upgrade "$1"
136 ;;
137 mercusys,mr90x-v1)
138 CI_UBIPART="ubi0"
139 nand_do_upgrade "$1"
140 ;;
141 ubnt,unifi-6-plus)
142 CI_KERNPART="kernel0"
143 EMMC_ROOT_DEV="$(cmdline_get_var root)"
144 emmc_do_upgrade "$1"
145 ;;
146 xiaomi,mi-router-ax3000t|\
147 xiaomi,mi-router-wr30u-stock|\
148 xiaomi,redmi-router-ax6000-stock)
149 CI_KERN_UBIPART=ubi_kernel
150 CI_ROOT_UBIPART=ubi
151 nand_do_upgrade "$1"
152 ;;
153 zyxel,ex5601-t0-ubootmod)
154 CI_KERNPART="fit"
155 CI_ROOTPART="ubi_rootfs"
156 nand_do_upgrade "$1"
157 ;;
158 *)
159 nand_do_upgrade "$1"
160 ;;
161 esac
162 }
163
164 PART_NAME=firmware
165
166 platform_check_image() {
167 local board=$(board_name)
168 local magic="$(get_magic_long "$1")"
169
170 [ "$#" -gt 1 ] && return 1
171
172 case "$board" in
173 bananapi,bpi-r3|\
174 cmcc,rax3000m)
175 [ "$magic" != "d00dfeed" ] && {
176 echo "Invalid image type."
177 return 1
178 }
179 return 0
180 ;;
181 *)
182 nand_do_platform_check "$board" "$1"
183 return $?
184 ;;
185 esac
186
187 return 0
188 }
189
190 platform_copy_config() {
191 case "$(board_name)" in
192 bananapi,bpi-r3|\
193 cmcc,rax3000m)
194 case "$(cmdline_get_var root)" in
195 /dev/mmc*)
196 emmc_copy_config
197 ;;
198 esac
199 ;;
200 acer,predator-w6|\
201 glinet,gl-mt2500|\
202 glinet,gl-mt6000|\
203 ubnt,unifi-6-plus)
204 emmc_copy_config
205 ;;
206 esac
207 }
208
209 platform_pre_upgrade() {
210 local board=$(board_name)
211
212 case "$board" in
213 asus,rt-ax59u|\
214 asus,tuf-ax4200|\
215 asus,tuf-ax6000)
216 asus_initial_setup
217 ;;
218 xiaomi,mi-router-ax3000t|\
219 xiaomi,mi-router-wr30u-stock|\
220 xiaomi,redmi-router-ax6000-stock)
221 xiaomi_initial_setup
222 ;;
223 esac
224 }