aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/mpc85xx/image/Makefile
diff options
context:
space:
mode:
authorPawel Dembicki <paweldembicki@gmail.com>2019-01-03 16:08:51 +0000
committerChristian Lamparter <chunkeey@gmail.com>2019-01-05 21:59:52 +0100
commit576c69938bb38c7edfa23f220eb30cb5c1d0a726 (patch)
tree17bdfb29c5bcdeae6cf4720921c338fc6e2f5a80 /target/linux/mpc85xx/image/Makefile
parentc8115167f946be85f812f3c94d6294b67ac8944c (diff)
downloadupstream-576c69938bb38c7edfa23f220eb30cb5c1d0a726.tar.gz
upstream-576c69938bb38c7edfa23f220eb30cb5c1d0a726.tar.bz2
upstream-576c69938bb38c7edfa23f220eb30cb5c1d0a726.zip
mpc85xx: tl-wdr4900-v1: convert to mtdsplit image
Currently, the image creation process for the TP-Link tl-wdr4900-v1 needs a fixed sized kernel and places the rootfs partition at a fixed offset. With the upcoming move to 4.19 the kernel will no longer fit into the existing allocated space for the kernel partition. This patch converts the device to utilize the established tplink,firmware mtdsplitter, which can deal with a dynamic kernel/rootfs size. Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com> Signed-off-by: Christian Lamparter <chunkeey@gmail.com> [reworded commit]
Diffstat (limited to 'target/linux/mpc85xx/image/Makefile')
-rw-r--r--target/linux/mpc85xx/image/Makefile39
1 files changed, 26 insertions, 13 deletions
diff --git a/target/linux/mpc85xx/image/Makefile b/target/linux/mpc85xx/image/Makefile
index 349d2961de..00eed88874 100644
--- a/target/linux/mpc85xx/image/Makefile
+++ b/target/linux/mpc85xx/image/Makefile
@@ -7,6 +7,30 @@ include $(INCLUDE_DIR)/image.mk
DEVICE_VARS += TPLINK_HWID TPLINK_HWREV TPLINK_FLASHLAYOUT
+define rootfs_align
+$(patsubst %-256k,0x40000,$(patsubst %-128k,0x20000,$(patsubst %-64k,0x10000,$(patsubst squashfs%,0x4,$(patsubst root.%,%,$(1))))))
+endef
+
+# combine kernel and rootfs into one image
+# mktplinkfw <type> <optional extra arguments to mktplinkfw binary>
+# <type> is "sysupgrade" or "factory"
+#
+# -a align the rootfs start on an <align> bytes boundary
+# -j add jffs2 end-of-filesystem markers
+# -s strip padding from end of the image
+# -X reserve <size> bytes in the firmware image (hexval prefixed with 0x)
+define Build/mktplinkfw
+ -$(STAGING_DIR_HOST)/bin/mktplinkfw \
+ -H $(TPLINK_HWID) -W $(TPLINK_HWREV) -F $(TPLINK_FLASHLAYOUT) -N OpenWrt -V $(REVISION) \
+ -k $(IMAGE_KERNEL) \
+ -r $@ \
+ -o $@.new \
+ -j -X 0x40000 \
+ -a $(call rootfs_align,$(FILESYSTEM)) \
+ $(wordlist 2,$(words $(1)),$(1)) \
+ $(if $(findstring sysupgrade,$(word 1,$(1))),-s) && mv $@.new $@ || rm -f $@
+endef
+
define Device/Default
PROFILES := Default
DEVICE_DTS := $(1)
@@ -16,17 +40,6 @@ define Device/Default
KERNEL := kernel-bin
endef
-define Build/tplink-v1-image
- $(STAGING_DIR_HOST)/bin/mktplinkfw \
- -H $(TPLINK_HWID) -W $(TPLINK_HWREV) -F $(TPLINK_FLASHLAYOUT) \
- -N "$(VERSION_DIST)" -V $(REVISION) \
- -k $(IMAGE_KERNEL) \
- -r $(IMAGE_ROOTFS) \
- -j \
- $(1) \
- -o $@
-endef
-
ifeq ($(SUBTARGET),generic)
define Device/tl-wdr4900-v1
@@ -39,8 +52,8 @@ define Device/tl-wdr4900-v1
SUPPORTED_DEVICES:=tl-wdr4900-v1 tplink,tl-wdr4900-v1
IMAGES := fdt.bin factory.bin sysupgrade.bin
IMAGE/fdt.bin := append-dtb
- IMAGE/factory.bin := tplink-v1-image
- IMAGE/sysupgrade.bin := tplink-v1-image -s | append-metadata
+ IMAGE/sysupgrade.bin := append-rootfs | mktplinkfw sysupgrade | append-metadata
+ IMAGE/factory.bin := append-rootfs | mktplinkfw factory
endef
TARGET_DEVICES += tl-wdr4900-v1