9a7a5aaffb0d5e8cb4b955556682b6c9e8f36f03
[openwrt/staging/wigyori.git] / target / linux / mediatek / filogic / base-files / lib / upgrade / platform.sh
1 REQUIRE_IMAGE_METADATA=1
2
3 redmi_ax6000_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 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)"
39 }
40
41 platform_do_upgrade() {
42 local board=$(board_name)
43
44 case "$board" in
45 asus,tuf-ax4200)
46 CI_UBIPART="UBI_DEV"
47 CI_KERNPART="linux"
48 nand_do_upgrade "$1"
49 ;;
50 bananapi,bpi-r3)
51 local rootdev="$(cmdline_get_var root)"
52 rootdev="${rootdev##*/}"
53 rootdev="${rootdev%p[0-9]*}"
54 case "$rootdev" in
55 mmc*)
56 CI_ROOTDEV="$rootdev"
57 CI_KERNPART="production"
58 emmc_do_upgrade "$1"
59 ;;
60 mtdblock*)
61 PART_NAME="fit"
62 default_do_upgrade "$1"
63 ;;
64 ubiblock*)
65 CI_KERNPART="fit"
66 nand_do_upgrade "$1"
67 ;;
68 esac
69 ;;
70 cudy,wr3000-v1)
71 default_do_upgrade "$1"
72 ;;
73 tplink,tl-xdr4288|\
74 tplink,tl-xdr6086|\
75 tplink,tl-xdr6088|\
76 xiaomi,redmi-router-ax6000-ubootmod)
77 CI_KERNPART="fit"
78 nand_do_upgrade "$1"
79 ;;
80 xiaomi,redmi-router-ax6000-stock)
81 CI_KERN_UBIPART=ubi_kernel
82 CI_ROOT_UBIPART=ubi
83 nand_do_upgrade "$1"
84 ;;
85 *)
86 nand_do_upgrade "$1"
87 ;;
88 esac
89 }
90
91 PART_NAME=firmware
92
93 platform_check_image() {
94 local board=$(board_name)
95 local magic="$(get_magic_long "$1")"
96
97 [ "$#" -gt 1 ] && return 1
98
99 case "$board" in
100 bananapi,bpi-r3)
101 [ "$magic" != "d00dfeed" ] && {
102 echo "Invalid image type."
103 return 1
104 }
105 return 0
106 ;;
107 *)
108 nand_do_platform_check "$board" "$1"
109 return $?
110 ;;
111 esac
112
113 return 0
114 }
115
116 platform_copy_config() {
117 case "$(board_name)" in
118 bananapi,bpi-r3)
119 case "$(cmdline_get_var root)" in
120 /dev/mmc*)
121 emmc_copy_config
122 ;;
123 esac
124 ;;
125 esac
126 }
127
128 platform_pre_upgrade() {
129 local board=$(board_name)
130
131 case "$board" in
132 xiaomi,redmi-router-ax6000-stock)
133 redmi_ax6000_initial_setup
134 ;;
135 esac
136 }