1 REQUIRE_IMAGE_METADATA
=1
2 RAMFS_COPY_BIN
='fitblk'
6 # initialize UBI if it's running on initramfs
7 [ "$(rootfs_type)" = "tmpfs" ] ||
return 0
9 ubirmvol
/dev
/ubi0
-N rootfs
10 ubirmvol
/dev
/ubi0
-N rootfs_data
11 ubirmvol
/dev
/ubi0
-N jffs2
12 ubimkvol
/dev
/ubi0
-N jffs2
-s 0x3e000
15 xiaomi_initial_setup
()
17 # initialize UBI and setup uboot-env if it's running on initramfs
18 [ "$(rootfs_type)" = "tmpfs" ] ||
return 0
20 local mtdnum
="$( find_mtd_index ubi )"
21 if [ ! "$mtdnum" ]; then
22 echo "unable to find mtd partition ubi"
26 local kern_mtdnum
="$( find_mtd_index ubi_kernel )"
27 if [ ! "$kern_mtdnum" ]; then
28 echo "unable to find mtd partition ubi_kernel"
32 ubidetach
-m "$mtdnum"
33 ubiformat
/dev
/mtd
$mtdnum -y
35 ubidetach
-m "$kern_mtdnum"
36 ubiformat
/dev
/mtd
$kern_mtdnum -y
38 if ! fw_printenv
-n flag_try_sys2_failed
&>/dev
/null
; then
39 echo "failed to access u-boot-env. skip env setup."
43 fw_setenv boot_wait on
45 fw_setenv flag_boot_rootfs
0
46 fw_setenv flag_last_success
1
47 fw_setenv flag_boot_success
1
48 fw_setenv flag_try_sys1_failed
8
49 fw_setenv flag_try_sys2_failed
8
51 local board
=$
(board_name
)
53 xiaomi
,mi-router-ax3000t|\
54 xiaomi
,mi-router-wr30u-stock
)
55 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)"
57 xiaomi
,redmi-router-ax6000-stock
)
58 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)"
63 platform_get_bootdev
() {
64 local rootdisk
="$(cat /sys/firmware/devicetree/base/chosen/rootdisk)"
66 for handle
in /sys
/class
/block
/*/of_node
/phandle
/sys
/class
/block
/*/device
/of_node
/phandle
; do
67 [ ! -e "$handle" ] && continue
68 if [ "$rootdisk" = "$(cat $handle)" ]; then
69 bootdev
="${handle%/of_node/phandle}"
70 bootdev
="${bootdev%/device}"
71 bootdev
="${bootdev#/sys/class/block/}"
78 platform_do_upgrade
() {
79 local board
=$
(board_name
)
100 [ -e /dev
/fit0
] && fitblk
/dev
/fit0
101 [ -e /dev
/fitrw
] && fitblk
/dev
/fitrw
102 bootdev
="$(platform_get_bootdev)"
105 EMMC_KERN_DEV
="/dev/$bootdev"
109 PART_NAME
="/dev/mtd${bootdev:8}"
110 default_do_upgrade
"$1"
119 case "$(cmdline_get_var root)" in
121 CI_KERNPART
="production"
132 default_do_upgrade
"$1"
142 mediatek
,mt7981-rfb|\
147 xiaomi
,mi-router-ax3000t-ubootmod|\
148 xiaomi
,mi-router-wr30u-ubootmod|\
149 xiaomi
,redmi-router-ax6000-ubootmod
)
154 CI_KERNPART
="production"
162 CI_KERNPART
="kernel0"
163 EMMC_ROOT_DEV
="$(cmdline_get_var root)"
166 xiaomi
,mi-router-ax3000t|\
167 xiaomi
,mi-router-wr30u-stock|\
168 xiaomi
,redmi-router-ax6000-stock
)
169 CI_KERN_UBIPART
=ubi_kernel
173 zyxel
,ex5601-t0-ubootmod
)
175 CI_ROOTPART
="ubi_rootfs"
186 platform_check_image
() {
187 local board
=$
(board_name
)
188 local magic
="$(get_magic_long "$1")"
190 [ "$#" -gt 1 ] && return 1
196 [ "$magic" != "d00dfeed" ] && {
197 echo "Invalid image type."
203 nand_do_platform_check
"$board" "$1"
211 platform_copy_config
() {
212 case "$(board_name)" in
214 case "$(cmdline_get_var root)" in
222 case "$(platform_get_bootdev)" in
238 platform_pre_upgrade
() {
239 local board
=$
(board_name
)
247 xiaomi
,mi-router-ax3000t|\
248 xiaomi
,mi-router-wr30u-stock|\
249 xiaomi
,redmi-router-ax6000-stock
)