mediatek: add support for GL.iNet GL-MT2500
[openwrt/staging/hauke.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 CI_KERNPART="kernel"
56 CI_ROOTPART="rootfs"
57 emmc_do_upgrade "$1"
58 ;;
59 asus,tuf-ax4200|\
60 asus,tuf-ax6000)
61 CI_UBIPART="UBI_DEV"
62 CI_KERNPART="linux"
63 nand_do_upgrade "$1"
64 ;;
65 bananapi,bpi-r3)
66 local rootdev="$(cmdline_get_var root)"
67 rootdev="${rootdev##*/}"
68 rootdev="${rootdev%p[0-9]*}"
69 case "$rootdev" in
70 mmc*)
71 CI_ROOTDEV="$rootdev"
72 CI_KERNPART="production"
73 emmc_do_upgrade "$1"
74 ;;
75 mtdblock*)
76 PART_NAME="fit"
77 default_do_upgrade "$1"
78 ;;
79 ubiblock*)
80 CI_KERNPART="fit"
81 nand_do_upgrade "$1"
82 ;;
83 esac
84 ;;
85 cmcc,rax3000m)
86 case "$(cmdline_get_var root)" in
87 /dev/mmc*)
88 CI_KERNPART="production"
89 emmc_do_upgrade "$1"
90 ;;
91 *)
92 CI_KERNPART="fit"
93 nand_do_upgrade "$1"
94 ;;
95 esac
96 ;;
97 cudy,wr3000-v1)
98 default_do_upgrade "$1"
99 ;;
100 glinet,gl-mt2500|\
101 glinet,gl-mt6000)
102 CI_KERNPART="kernel"
103 CI_ROOTPART="rootfs"
104 emmc_do_upgrade "$1"
105 ;;
106 h3c,magic-nx30-pro|\
107 jcg,q30-pro|\
108 mediatek,mt7981-rfb|\
109 qihoo,360t7|\
110 tplink,tl-xdr4288|\
111 tplink,tl-xdr6086|\
112 tplink,tl-xdr6088|\
113 xiaomi,mi-router-wr30u-ubootmod|\
114 xiaomi,redmi-router-ax6000-ubootmod)
115 CI_KERNPART="fit"
116 nand_do_upgrade "$1"
117 ;;
118 mercusys,mr90x-v1)
119 CI_UBIPART="ubi0"
120 nand_do_upgrade "$1"
121 ;;
122 ubnt,unifi-6-plus)
123 CI_KERNPART="kernel0"
124 EMMC_ROOT_DEV="$(cmdline_get_var root)"
125 emmc_do_upgrade "$1"
126 ;;
127 xiaomi,mi-router-wr30u-stock|\
128 xiaomi,redmi-router-ax6000-stock)
129 CI_KERN_UBIPART=ubi_kernel
130 CI_ROOT_UBIPART=ubi
131 nand_do_upgrade "$1"
132 ;;
133 zyxel,ex5601-t0-ubootmod)
134 CI_KERNPART="fit"
135 CI_ROOTPART="ubi_rootfs"
136 nand_do_upgrade "$1"
137 ;;
138 *)
139 nand_do_upgrade "$1"
140 ;;
141 esac
142 }
143
144 PART_NAME=firmware
145
146 platform_check_image() {
147 local board=$(board_name)
148 local magic="$(get_magic_long "$1")"
149
150 [ "$#" -gt 1 ] && return 1
151
152 case "$board" in
153 bananapi,bpi-r3|\
154 cmcc,rax3000m)
155 [ "$magic" != "d00dfeed" ] && {
156 echo "Invalid image type."
157 return 1
158 }
159 return 0
160 ;;
161 *)
162 nand_do_platform_check "$board" "$1"
163 return $?
164 ;;
165 esac
166
167 return 0
168 }
169
170 platform_copy_config() {
171 case "$(board_name)" in
172 bananapi,bpi-r3|\
173 cmcc,rax3000m)
174 case "$(cmdline_get_var root)" in
175 /dev/mmc*)
176 emmc_copy_config
177 ;;
178 esac
179 ;;
180 glinet,gl-mt2500|\
181 glinet,gl-mt6000|\
182 ubnt,unifi-6-plus)
183 emmc_copy_config
184 ;;
185 esac
186 }
187
188 platform_pre_upgrade() {
189 local board=$(board_name)
190
191 case "$board" in
192 xiaomi,mi-router-wr30u-stock|\
193 xiaomi,redmi-router-ax6000-stock)
194 xiaomi_initial_setup
195 ;;
196 esac
197 }