mirror of
https://github.com/coolsnowwolf/lede.git
synced 2025-04-16 04:13:31 +00:00
ipq60xx: add linksys MR7350 sysupgrade support
This commit is contained in:
parent
d217d053f4
commit
5a51b97527
@ -5,12 +5,93 @@ REQUIRE_IMAGE_METADATA=1
|
|||||||
RAMFS_COPY_BIN='fw_printenv fw_setenv'
|
RAMFS_COPY_BIN='fw_printenv fw_setenv'
|
||||||
RAMFS_COPY_DATA='/etc/fw_env.config /var/lock/fw_printenv.lock'
|
RAMFS_COPY_DATA='/etc/fw_env.config /var/lock/fw_printenv.lock'
|
||||||
|
|
||||||
|
linksys_get_boot_part() {
|
||||||
|
local cur_boot_part
|
||||||
|
local args
|
||||||
|
|
||||||
|
# Try to find rootfs from kernel arguments
|
||||||
|
read -r args < /proc/cmdline
|
||||||
|
for arg in $args; do
|
||||||
|
local ubi_mtd_arg=${arg#ubi.mtd=}
|
||||||
|
case "$ubi_mtd_arg" in
|
||||||
|
rootfs|alt_rootfs)
|
||||||
|
echo "$ubi_mtd_arg"
|
||||||
|
return
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
# Fallback to u-boot env (e.g. when running sysfs)
|
||||||
|
cur_boot_part="$(/usr/sbin/fw_printenv -n boot_part)"
|
||||||
|
case $cur_boot_part in
|
||||||
|
1)
|
||||||
|
echo rootfs
|
||||||
|
;;
|
||||||
|
2|*)
|
||||||
|
echo alt_rootfs
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
linksys_prepare_ubi() {
|
||||||
|
local oem_ubivol
|
||||||
|
local mtdnum
|
||||||
|
local ubidev
|
||||||
|
|
||||||
|
mtdnum=$(find_mtd_index "$CI_UBIPART")
|
||||||
|
if [ ! "$mtdnum" ]; then
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
ubidev=$(nand_find_ubi "$CI_UBIPART")
|
||||||
|
if [ ! "$ubidev" ]; then
|
||||||
|
ubiattach --mtdn="$mtdnum"
|
||||||
|
ubidev=$(nand_find_ubi "$CI_UBIPART")
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$ubidev" ]; then
|
||||||
|
oem_ubivol=$(nand_find_volume "$ubidev" squashfs)
|
||||||
|
[ "$oem_ubivol" ] && ubirmvol "/dev/$ubidev" --name=squashfs
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
linksys_do_upgrade() {
|
||||||
|
local current_boot_slot
|
||||||
|
local new_boot_part
|
||||||
|
|
||||||
|
current_boot_slot=$(linksys_get_boot_part)
|
||||||
|
case $current_boot_slot in
|
||||||
|
rootfs)
|
||||||
|
CI_UBIPART="alt_rootfs"
|
||||||
|
CI_KERNPART="alt_kernel"
|
||||||
|
new_boot_part=2
|
||||||
|
;;
|
||||||
|
alt_rootfs)
|
||||||
|
CI_UBIPART="rootfs"
|
||||||
|
CI_KERNPART="kernel"
|
||||||
|
new_boot_part=1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
echo "Updating mtd=$CI_UBIPART, boot_part=$new_boot_part"
|
||||||
|
|
||||||
|
fw_setenv -s - <<-EOF
|
||||||
|
boot_part $new_boot_part
|
||||||
|
auto_recovery yes
|
||||||
|
EOF
|
||||||
|
|
||||||
|
linksys_prepare_ubi
|
||||||
|
nand_do_upgrade "$1"
|
||||||
|
}
|
||||||
|
|
||||||
platform_check_image() {
|
platform_check_image() {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
platform_do_upgrade() {
|
platform_do_upgrade() {
|
||||||
case "$(board_name)" in
|
case "$(board_name)" in
|
||||||
|
linksys,mr7350)
|
||||||
|
linksys_do_upgrade "$1"
|
||||||
|
;;
|
||||||
cmiot,ax18|\
|
cmiot,ax18|\
|
||||||
zn,m2)
|
zn,m2)
|
||||||
nand_do_upgrade "$1"
|
nand_do_upgrade "$1"
|
||||||
|
Loading…
Reference in New Issue
Block a user