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