97c09f35a83029e91b043c3313042a4c96e6bb9c
[openwrt/staging/wigyori.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 jdcloud,re-cp-03)
138 CI_KERNPART="production"
139 emmc_do_upgrade "$1"
140 ;;
141 mercusys,mr90x-v1)
142 CI_UBIPART="ubi0"
143 nand_do_upgrade "$1"
144 ;;
145 ubnt,unifi-6-plus)
146 CI_KERNPART="kernel0"
147 EMMC_ROOT_DEV="$(cmdline_get_var root)"
148 emmc_do_upgrade "$1"
149 ;;
150 xiaomi,mi-router-ax3000t|\
151 xiaomi,mi-router-wr30u-stock|\
152 xiaomi,redmi-router-ax6000-stock)
153 CI_KERN_UBIPART=ubi_kernel
154 CI_ROOT_UBIPART=ubi
155 nand_do_upgrade "$1"
156 ;;
157 zyxel,ex5601-t0-ubootmod)
158 CI_KERNPART="fit"
159 CI_ROOTPART="ubi_rootfs"
160 nand_do_upgrade "$1"
161 ;;
162 *)
163 nand_do_upgrade "$1"
164 ;;
165 esac
166 }
167
168 PART_NAME=firmware
169
170 platform_check_image() {
171 local board=$(board_name)
172 local magic="$(get_magic_long "$1")"
173
174 [ "$#" -gt 1 ] && return 1
175
176 case "$board" in
177 bananapi,bpi-r3|\
178 cmcc,rax3000m)
179 [ "$magic" != "d00dfeed" ] && {
180 echo "Invalid image type."
181 return 1
182 }
183 return 0
184 ;;
185 *)
186 nand_do_platform_check "$board" "$1"
187 return $?
188 ;;
189 esac
190
191 return 0
192 }
193
194 platform_copy_config() {
195 case "$(board_name)" in
196 bananapi,bpi-r3|\
197 cmcc,rax3000m)
198 case "$(cmdline_get_var root)" in
199 /dev/mmc*)
200 emmc_copy_config
201 ;;
202 esac
203 ;;
204 acer,predator-w6|\
205 glinet,gl-mt2500|\
206 glinet,gl-mt6000|\
207 jdcloud,re-cp-03|\
208 ubnt,unifi-6-plus)
209 emmc_copy_config
210 ;;
211 esac
212 }
213
214 platform_pre_upgrade() {
215 local board=$(board_name)
216
217 case "$board" in
218 asus,rt-ax59u|\
219 asus,tuf-ax4200|\
220 asus,tuf-ax6000)
221 asus_initial_setup
222 ;;
223 xiaomi,mi-router-ax3000t|\
224 xiaomi,mi-router-wr30u-stock|\
225 xiaomi,redmi-router-ax6000-stock)
226 xiaomi_initial_setup
227 ;;
228 esac
229 }