$(if $(findstring sysupgrade,$(word 1,$(1))),-s) && mv $@.new $@ || rm -f $@
endef
-# mktplinkfw-initramfs <optional extra arguments to mktplinkfw binary>
+# mktplinkfw-combined
#
# -c combined image
-define Build/mktplinkfw-initramfs
+define Build/mktplinkfw-combined
$(STAGING_DIR_HOST)/bin/mktplinkfw \
-H $(TPLINK_HWID) -W $(TPLINK_HWREV) -F $(TPLINK_FLASHLAYOUT) -N OpenWrt -V $(REVISION) $(1) \
-m $(TPLINK_HEADER_VERSION) \
@mv $@.new $@
endef
+# add RE450 and similar header to the kernel image
+define Build/mktplinkfw-kernel
+ $(STAGING_DIR_HOST)/bin/mktplinkfw-kernel \
+ -H $(TPLINK_HWID) -N OpenWrt -V $(REVISION) \
+ -L $(KERNEL_LOADADDR) -E $(KERNEL_LOADADDR) \
+ -k $@ \
+ -o $@.new
+ @mv $@.new $@
+endef
+
define Device/tplink
TPLINK_HWREV := 0x1
TPLINK_HEADER_VERSION := 1
LOADER_TYPE := gz
KERNEL := kernel-bin | patch-cmdline | lzma
- KERNEL_INITRAMFS := kernel-bin | patch-cmdline | lzma | mktplinkfw-initramfs
+ KERNEL_INITRAMFS := kernel-bin | patch-cmdline | lzma | mktplinkfw-combined
IMAGES := sysupgrade.bin factory.bin
IMAGE/sysupgrade.bin := append-rootfs | mktplinkfw sysupgrade
IMAGE/factory.bin := append-rootfs | mktplinkfw factory
COMPILE := loader-$(1).gz
COMPILE/loader-$(1).gz := loader-okli-compile
KERNEL := copy-file $(KDIR)/vmlinux.bin.lzma | uImage lzma -M 0x4f4b4c49 | loader-okli $(1)
- KERNEL_INITRAMFS := copy-file $(KDIR)/vmlinux-initramfs.bin.lzma | loader-kernel-cmdline | mktplinkfw-initramfs
+ KERNEL_INITRAMFS := copy-file $(KDIR)/vmlinux-initramfs.bin.lzma | loader-kernel-cmdline | mktplinkfw-combined
endef
define Device/tplink-4m
DEVICE_TITLE := TP-LINK TL-WDR6500v2
DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-ledtrig-usbport kmod-ath10k ath10k-firmware-qca988x
KERNEL := kernel-bin | patch-cmdline | lzma | uImage lzma
- KERNEL_INITRAMFS := kernel-bin | patch-cmdline | lzma | uImage lzma | mktplinkfw-initramfs
+ KERNEL_INITRAMFS := kernel-bin | patch-cmdline | lzma | uImage lzma | mktplinkfw-combined
BOARDNAME = TL-WDR6500-v2
DEVICE_PROFILE = TLWDR6500V2
TPLINK_HWID := 0x65000002
TPLINK_HWID := 0x09410006
endef
+define Device/tl-wr940n-v4
+ $(Device/tplink-4mlzma)
+ DEVICE_TITLE := TP-LINK TL-WR940N v4
+ BOARDNAME := TL-WR940N-v4
+ DEVICE_PROFILE := TLWR941
+ TPLINK_HWID := 0x09400004
+ 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
+endef
+
# Chinese version (unlike European) is similar to the TL-WDR3500
define Device/tl-wr941nd-v6-cn
$(Device/tplink-4mlzma)
DEVICE_PROFILE := TLWR941
TPLINK_HWID := 0x09410006
endef
-TARGET_DEVICES += tl-wr941nd-v2 tl-wr941nd-v3 tl-wr941nd-v4 tl-wr941nd-v5 tl-wr941nd-v6 tl-wr941nd-v6-cn
+TARGET_DEVICES += tl-wr941nd-v2 tl-wr941nd-v3 tl-wr941nd-v4 tl-wr941nd-v5 tl-wr941nd-v6 tl-wr941nd-v6-cn tl-wr940n-v4
define Device/tl-wr1041n-v2
$(Device/tplink-4mlzma)
DEVICE_PROFILE := TLWR1043
TPLINK_HWID := 0x10430003
endef
-TARGET_DEVICES += tl-wr1043nd-v1 tl-wr1043nd-v2 tl-wr1043nd-v3
+
+define Device/tl-wr1043nd-v4
+ $(Device/tplink)
+ DEVICE_TITLE := TP-LINK TL-WR1043N/ND v4
+ DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-ledtrig-usbport
+ BOARDNAME := TL-WR1043ND-v4
+ DEVICE_PROFILE := TLWR1043
+ TPLINK_HWID := 0x10430004
+ TPLINK_FLASHLAYOUT := 16Msafeloader
+ MTDPARTS := spi0.0:128k(u-boot)ro,1536k(kernel),14016k(rootfs),128k(product-info)ro,320k(config)ro,64k(partition-table)ro,128k(logs)ro,64k(ART)ro,15552k@0x20000(firmware)
+ IMAGE_SIZE := 15552k
+ TPLINK_BOARD_NAME := TLWR1043NDV4
+ KERNEL := kernel-bin | patch-cmdline | lzma | mktplinkfw-combined
+ IMAGES := sysupgrade.bin factory.bin
+ IMAGE/sysupgrade.bin := append-rootfs | tplink-safeloader sysupgrade
+ IMAGE/factory.bin := append-rootfs | tplink-safeloader factory
+endef
+TARGET_DEVICES += tl-wr1043nd-v1 tl-wr1043nd-v2 tl-wr1043nd-v3 tl-wr1043nd-v4
define Device/tl-wr2543-v1
$(Device/tplink-8mlzma)