aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/ipq806x/base-files/lib/upgrade/platform.sh
blob: 7726abb91fb4a3dbb4cc94d9c3d346e35f03b9dd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
. /lib/ipq806x.sh

PART_NAME=firmware

platform_check_image() {
	local board=$(ipq806x_board_name)

	case "$board" in
	ap148 |\
	d7800 |\
	ea8500 |\
	r7500 |\
	r7500v2 |\
	r7800)
		nand_do_platform_check $board $1
		return $?;
		;;
	c2600)
		local magic_long="$(get_magic_long "$1")"
		[ "$magic_long" != "27051956" ] && {
			echo "Invalid image, bad magic: $magic_long"
			return 1
		}
		return 0;
		;;
	*)
		return 1;
	esac
}

platform_pre_upgrade() {
	local board=$(ipq806x_board_name)

	case "$board" in
	ap148 |\
	d7800 |\
	r7500 |\
	r7500v2 |\
	r7800)
		nand_do_upgrade "$1"
		;;
	ea8500)
		linksys_preupgrade "$1"
		;;
	esac
}

platform_do_upgrade() {
	local board=$(ipq806x_board_name)

	case "$board" in
	c2600)
		PART_NAME="os-image:rootfs"
		MTD_CONFIG_ARGS="-s 0x200000"
		default_do_upgrade "$ARGV"
		;;
	ea8500)
		platform_do_upgrade_linksys "$ARGV"
		;;
	esac
}