From f6a01d7f5c3d945f031cf24ab66066806dd62db3 Mon Sep 17 00:00:00 2001 From: Christian Lamparter Date: Sun, 6 Feb 2022 14:24:32 +0100 Subject: [PATCH] ipq806x: convert TP-Link Archer VR2600v to denx,uimage The recent device-tree modification that added pre-cal nvmem-cells pushed the device's kernel+dtb over the allotted 3072k KERNEL_SIZE. > WARNING: Image file tplink_vr2600v-uImage is too big: 3147214 > 3145728 There was a previous kernel partition size upgrade: commit 0c967d92b3d9 ("ipq806x: increase kernel partition size for the TP-Link Archer VR2600v") It has been seemingly upgraded from a 2048k KERNEL_SIZE in the past. The commit talks about using the MTD_SPLIT_TPLINK_FW. But looking at the image make recipe, there is no code that adds a TPLINK header. So instead the board will use "denx,umimage". This requires MTD_SPLIT_UIMAGE_FW, but this is present thanks to some NEC devices. (Maybe the MTD_CONFIG_ARGS can be removed as well? But it could be there because of the padding at the beginning. This needs testing.) Signed-off-by: Christian Lamparter --- .../linux/ipq806x/base-files/lib/upgrade/platform.sh | 1 - .../files/arch/arm/boot/dts/qcom-ipq8064-vr2600v.dts | 12 +++++------- target/linux/ipq806x/image/generic.mk | 5 ++--- 3 files changed, 7 insertions(+), 11 deletions(-) diff --git a/target/linux/ipq806x/base-files/lib/upgrade/platform.sh b/target/linux/ipq806x/base-files/lib/upgrade/platform.sh index 3d96457dbd..84ffcd8a15 100644 --- a/target/linux/ipq806x/base-files/lib/upgrade/platform.sh +++ b/target/linux/ipq806x/base-files/lib/upgrade/platform.sh @@ -57,7 +57,6 @@ platform_do_upgrade() { default_do_upgrade "$1" ;; tplink,vr2600v) - PART_NAME="kernel:rootfs" MTD_CONFIG_ARGS="-s 0x200000" default_do_upgrade "$1" ;; diff --git a/target/linux/ipq806x/files/arch/arm/boot/dts/qcom-ipq8064-vr2600v.dts b/target/linux/ipq806x/files/arch/arm/boot/dts/qcom-ipq8064-vr2600v.dts index 3aec856823..23fe3c9f78 100644 --- a/target/linux/ipq806x/files/arch/arm/boot/dts/qcom-ipq8064-vr2600v.dts +++ b/target/linux/ipq806x/files/arch/arm/boot/dts/qcom-ipq8064-vr2600v.dts @@ -249,15 +249,13 @@ read-only; }; - kernel@320000 { - label = "kernel"; - reg = <0x320000 0x300000>; + partition@320000 { + label = "firmware"; + reg = <0x320000 0xc60000>; + compatible = "denx,uimage"; }; - rootfs@620000 { - label = "rootfs"; - reg = <0x620000 0x960000>; - }; + /* hole 0xf80000 - 0xfaf100 */ defaultmac: default-mac@0xfaf100 { label = "default-mac"; diff --git a/target/linux/ipq806x/image/generic.mk b/target/linux/ipq806x/image/generic.mk index 524eb98226..4fdf656b4b 100644 --- a/target/linux/ipq806x/image/generic.mk +++ b/target/linux/ipq806x/image/generic.mk @@ -408,7 +408,7 @@ define Device/tplink_vr2600v KERNEL_SUFFIX := -uImage KERNEL = kernel-bin | append-dtb | uImage none KERNEL_NAME := zImage - KERNEL_SIZE := 3072k + IMAGE_SIZE := 12672k SOC := qcom-ipq8064 BLOCKSIZE := 128k PAGESIZE := 2048 @@ -416,8 +416,7 @@ define Device/tplink_vr2600v SUPPORTED_DEVICES += vr2600v DEVICE_PACKAGES := ath10k-firmware-qca99x0-ct IMAGE/sysupgrade.bin := pad-extra 512 | append-kernel | \ - pad-to $$$$(KERNEL_SIZE) | append-rootfs | pad-rootfs | \ - append-metadata + append-rootfs | pad-rootfs | append-metadata endef TARGET_DEVICES += tplink_vr2600v