diff --git a/include/image-commands.mk b/include/image-commands.mk index 5dfd6a2c2fd..3b091f26aca 100644 --- a/include/image-commands.mk +++ b/include/image-commands.mk @@ -3,6 +3,10 @@ IMAGE_KERNEL = $(word 1,$^) IMAGE_ROOTFS = $(word 2,$^) +define rootfs_align +$(patsubst %-256k,0x40000,$(patsubst %-128k,0x20000,$(patsubst %-64k,0x10000,$(patsubst squashfs%,0x4,$(patsubst root.%,%,$(1)))))) +endef + define Build/uImage mkimage -A $(LINUX_KARCH) \ -O linux -T kernel \ @@ -335,6 +339,24 @@ define Build/tplink-v1-header @mv $@.new $@ endef +# combine kernel and rootfs into one image +# mktplinkfw +# is "sysupgrade" or "factory" +# +# -a align the rootfs start on an bytes boundary +# -j add jffs2 end-of-filesystem markers +# -s strip padding from end of the image +# -X reserve bytes in the firmware image (hexval prefixed with 0x) +define Build/tplink-v1-image + -$(STAGING_DIR_HOST)/bin/mktplinkfw \ + -H $(TPLINK_HWID) -W $(TPLINK_HWREV) -F $(TPLINK_FLASHLAYOUT) \ + -N "$(VERSION_DIST)" -V $(REVISION) -m $(TPLINK_HEADER_VERSION) \ + -k $(IMAGE_KERNEL) -r $(IMAGE_ROOTFS) -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 Build/tplink-v2-header $(STAGING_DIR_HOST)/bin/mktplinkfw2 \ -c -H $(TPLINK_HWID) -W $(TPLINK_HWREV) -L $(KERNEL_LOADADDR) \ diff --git a/target/linux/ath79/image/common-tp-link.mk b/target/linux/ath79/image/common-tp-link.mk index 0dc58191a82..1c7ff0e5672 100644 --- a/target/linux/ath79/image/common-tp-link.mk +++ b/target/linux/ath79/image/common-tp-link.mk @@ -1,28 +1,6 @@ DEVICE_VARS += TPLINK_HWID TPLINK_HWREV TPLINK_FLASHLAYOUT TPLINK_HEADER_VERSION DEVICE_VARS += TPLINK_BOARD_NAME TPLINK_BOARD_ID -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 -# is "sysupgrade" or "factory" -# -# -a align the rootfs start on an bytes boundary -# -j add jffs2 end-of-filesystem markers -# -s strip padding from end of the image -# -X reserve 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) -m $(TPLINK_HEADER_VERSION) \ - -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 - # mktplinkfw-combined # # -c combined image @@ -50,9 +28,8 @@ define Device/tplink KERNEL := kernel-bin | append-dtb | lzma KERNEL_INITRAMFS := kernel-bin | append-dtb | lzma | tplink-v1-header IMAGES += factory.bin - IMAGE/sysupgrade.bin := append-rootfs | mktplinkfw sysupgrade | \ - append-metadata - IMAGE/factory.bin := append-rootfs | mktplinkfw factory + IMAGE/sysupgrade.bin := tplink-v1-image sysupgrade | append-metadata + IMAGE/factory.bin := tplink-v1-image factory endef define Device/tplink-nolzma diff --git a/target/linux/ath79/image/generic-tp-link.mk b/target/linux/ath79/image/generic-tp-link.mk index 603cacdaf2b..a7266f05a97 100644 --- a/target/linux/ath79/image/generic-tp-link.mk +++ b/target/linux/ath79/image/generic-tp-link.mk @@ -157,8 +157,8 @@ define Device/tplink_archer-c7-v2 TPLINK_HWID := 0xc7000002 SUPPORTED_DEVICES += archer-c7 IMAGES += factory-us.bin factory-eu.bin - IMAGE/factory-us.bin := append-rootfs | mktplinkfw factory -C US - IMAGE/factory-eu.bin := append-rootfs | mktplinkfw factory -C EU + IMAGE/factory-us.bin := tplink-v1-image factory -C US + IMAGE/factory-eu.bin := tplink-v1-image factory -C EU endef TARGET_DEVICES += tplink_archer-c7-v2 @@ -502,9 +502,9 @@ define Device/tplink_tl-wr2543-v1 DEVICE_VARIANT := v1 DEVICE_PACKAGES := kmod-usb2 kmod-usb-ledtrig-usbport TPLINK_HWID := 0x25430001 - IMAGE/sysupgrade.bin := append-rootfs | mktplinkfw sysupgrade -v 3.13.99 | \ + IMAGE/sysupgrade.bin := tplink-v1-image sysupgrade -v 3.13.99 | \ append-metadata | check-size $$$$(IMAGE_SIZE) - IMAGE/factory.bin := append-rootfs | mktplinkfw factory -v 3.13.99 + IMAGE/factory.bin := tplink-v1-image factory -v 3.13.99 SUPPORTED_DEVICES += tl-wr2543-v1 endef TARGET_DEVICES += tplink_tl-wr2543-v1 diff --git a/target/linux/ath79/image/tiny-tp-link.mk b/target/linux/ath79/image/tiny-tp-link.mk index 172f22f3203..070ede9721d 100644 --- a/target/linux/ath79/image/tiny-tp-link.mk +++ b/target/linux/ath79/image/tiny-tp-link.mk @@ -198,8 +198,8 @@ define Device/tplink_tl-wr841-v11 TPLINK_HWID := 0x08410011 SUPPORTED_DEVICES += tl-wr841n-v11 IMAGES += factory-us.bin factory-eu.bin - IMAGE/factory-us.bin := append-rootfs | mktplinkfw factory -C US - IMAGE/factory-eu.bin := append-rootfs | mktplinkfw factory -C EU + IMAGE/factory-us.bin := tplink-v1-image factory -C US + IMAGE/factory-eu.bin := tplink-v1-image factory -C EU endef TARGET_DEVICES += tplink_tl-wr841-v11 @@ -211,8 +211,8 @@ define Device/tplink_tl-wr841-v12 TPLINK_HWID := 0x08410012 SUPPORTED_DEVICES += tl-wr841n-v11 IMAGES += factory-us.bin factory-eu.bin - IMAGE/factory-us.bin := append-rootfs | mktplinkfw factory -C US - IMAGE/factory-eu.bin := append-rootfs | mktplinkfw factory -C EU + IMAGE/factory-us.bin := tplink-v1-image factory -C US + IMAGE/factory-eu.bin := tplink-v1-image factory -C EU endef TARGET_DEVICES += tplink_tl-wr841-v12 @@ -234,9 +234,9 @@ define Device/tplink_tl-wr940n-v4 TPLINK_HWID := 0x09400004 SUPPORTED_DEVICES += tl-wr940n-v4 IMAGES += factory-us.bin factory-eu.bin factory-br.bin - IMAGE/factory-us.bin := append-rootfs | mktplinkfw factory -C US - IMAGE/factory-eu.bin := append-rootfs | mktplinkfw factory -C EU - IMAGE/factory-br.bin := append-rootfs | mktplinkfw factory -C BR + IMAGE/factory-us.bin := tplink-v1-image factory -C US + IMAGE/factory-eu.bin := tplink-v1-image factory -C EU + IMAGE/factory-br.bin := tplink-v1-image factory -C BR endef TARGET_DEVICES += tplink_tl-wr940n-v4 diff --git a/target/linux/mpc85xx/image/Makefile b/target/linux/mpc85xx/image/Makefile index 5ca16909e7a..98fe51c7e9e 100644 --- a/target/linux/mpc85xx/image/Makefile +++ b/target/linux/mpc85xx/image/Makefile @@ -5,36 +5,12 @@ include $(TOPDIR)/rules.mk 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 +DEVICE_VARS += TPLINK_HWID TPLINK_HWREV TPLINK_FLASHLAYOUT TPLINK_HEADER_VERSION define Build/copy-file cat "$(1)" > "$@" endef -# combine kernel and rootfs into one image -# mktplinkfw -# is "sysupgrade" or "factory" -# -# -a align the rootfs start on an bytes boundary -# -j add jffs2 end-of-filesystem markers -# -s strip padding from end of the image -# -X reserve 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 := $(lastword $(subst _, ,$(1))) @@ -51,6 +27,7 @@ define Device/tplink_tl-wdr4900-v1 DEVICE_VENDOR := TP-Link DEVICE_MODEL := TL-WDR4900 DEVICE_VARIANT := v1 + TPLINK_HEADER_VERSION := 1 TPLINK_HWID := 0x49000001 TPLINK_HWREV := 1 TPLINK_FLASHLAYOUT := 16Mppc @@ -64,8 +41,8 @@ define Device/tplink_tl-wdr4900-v1 ARTIFACTS := fdt.bin ARTIFACT/fdt.bin := append-dtb IMAGES := fdt.bin factory.bin sysupgrade.bin - IMAGE/sysupgrade.bin := append-rootfs | mktplinkfw sysupgrade | append-metadata - IMAGE/factory.bin := append-rootfs | mktplinkfw factory + IMAGE/sysupgrade.bin := tplink-v1-image sysupgrade | append-metadata + IMAGE/factory.bin := tplink-v1-image factory endef TARGET_DEVICES += tplink_tl-wdr4900-v1 diff --git a/target/linux/ramips/image/mt7620.mk b/target/linux/ramips/image/mt7620.mk index 698d1b5da26..72310f9e7ed 100644 --- a/target/linux/ramips/image/mt7620.mk +++ b/target/linux/ramips/image/mt7620.mk @@ -16,23 +16,6 @@ define Build/elecom-header --owner=0 --group=0 -f $@ -C $(KDIR) v_0.0.0.bin v_0.0.0.md5 endef -# combine kernel and rootfs into one image -# mktplinkfw -# is "sysupgrade" or "factory" -# -# -a align the rootfs start on an bytes boundary -# -j add jffs2 end-of-filesystem markers -# -s strip padding from end of the image -# -X reserve 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) -m $(TPLINK_HEADER_VERSION) \ - -k $(IMAGE_KERNEL) -r $(IMAGE_ROOTFS) -o $@.new -j -X 0x40000 -a 0x4 \ - $(wordlist 2,$(words $(1)),$(1)) \ - $(if $(findstring sysupgrade,$(word 1,$(1))),-s) && mv $@.new $@ || rm -f $@ -endef - define Device/aigale_ai-br100 SOC := mt7620a IMAGE_SIZE := 7936k @@ -962,8 +945,8 @@ define Device/tplink_re200-v1 DEVICE_VARIANT := v1 DEVICE_PACKAGES := kmod-mt76x0e IMAGES += factory.bin - IMAGE/sysupgrade.bin := mktplinkfw sysupgrade -e -O | append-metadata - IMAGE/factory.bin := mktplinkfw factory -e -O + IMAGE/sysupgrade.bin := tplink-v1-image sysupgrade -e -O | append-metadata + IMAGE/factory.bin := tplink-v1-image factory -e -O IMAGE_SIZE := 7936k KERNEL := $(KERNEL_DTB) KERNEL_INITRAMFS := $(KERNEL_DTB) | tplink-v1-header -e -O