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