mediatek: filogic: add specific layout for WR30U
[openwrt/staging/pepe2k.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 xiaomi,redmi-router-ax6000-stock)
44 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)"
45 ;;
46 esac
47 }
48
49 platform_do_upgrade() {
50 local board=$(board_name)
51
52 case "$board" in
53 acer,predator-w6)
54 CI_KERNPART="kernel"
55 CI_ROOTPART="rootfs"
56 emmc_do_upgrade "$1"
57 ;;
58 asus,tuf-ax4200)
59 CI_UBIPART="UBI_DEV"
60 CI_KERNPART="linux"
61 nand_do_upgrade "$1"
62 ;;
63 bananapi,bpi-r3)
64 local rootdev="$(cmdline_get_var root)"
65 rootdev="${rootdev##*/}"
66 rootdev="${rootdev%p[0-9]*}"
67 case "$rootdev" in
68 mmc*)
69 CI_ROOTDEV="$rootdev"
70 CI_KERNPART="production"
71 emmc_do_upgrade "$1"
72 ;;
73 mtdblock*)
74 PART_NAME="fit"
75 default_do_upgrade "$1"
76 ;;
77 ubiblock*)
78 CI_KERNPART="fit"
79 nand_do_upgrade "$1"
80 ;;
81 esac
82 ;;
83 cudy,wr3000-v1)
84 default_do_upgrade "$1"
85 ;;
86 mercusys,mr90x-v1)
87 CI_UBIPART="ubi0"
88 nand_do_upgrade "$1"
89 ;;
90 h3c,magic-nx30-pro|\
91 qihoo,360t7|\
92 tplink,tl-xdr4288|\
93 tplink,tl-xdr6086|\
94 tplink,tl-xdr6088|\
95 xiaomi,mi-router-wr30u-112m-nmbm|\
96 xiaomi,mi-router-wr30u-ubootmod|\
97 xiaomi,redmi-router-ax6000-ubootmod)
98 CI_KERNPART="fit"
99 nand_do_upgrade "$1"
100 ;;
101 xiaomi,mi-router-wr30u-stock|\
102 xiaomi,redmi-router-ax6000-stock)
103 CI_KERN_UBIPART=ubi_kernel
104 CI_ROOT_UBIPART=ubi
105 nand_do_upgrade "$1"
106 ;;
107 *)
108 nand_do_upgrade "$1"
109 ;;
110 esac
111 }
112
113 PART_NAME=firmware
114
115 platform_check_image() {
116 local board=$(board_name)
117 local magic="$(get_magic_long "$1")"
118
119 [ "$#" -gt 1 ] && return 1
120
121 case "$board" in
122 bananapi,bpi-r3)
123 [ "$magic" != "d00dfeed" ] && {
124 echo "Invalid image type."
125 return 1
126 }
127 return 0
128 ;;
129 *)
130 nand_do_platform_check "$board" "$1"
131 return $?
132 ;;
133 esac
134
135 return 0
136 }
137
138 platform_copy_config() {
139 case "$(board_name)" in
140 bananapi,bpi-r3)
141 case "$(cmdline_get_var root)" in
142 /dev/mmc*)
143 emmc_copy_config
144 ;;
145 esac
146 ;;
147 esac
148 }
149
150 platform_pre_upgrade() {
151 local board=$(board_name)
152
153 case "$board" in
154 xiaomi,mi-router-wr30u-stock|\
155 xiaomi,redmi-router-ax6000-stock)
156 xiaomi_initial_setup
157 ;;
158 esac
159 }