$(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 Build/uImageArcher
+ mkimage -A $(LINUX_KARCH) \
+ -O linux -T kernel \
+ -C $(1) -a $(KERNEL_LOADADDR) -e $(if $(KERNEL_ENTRY),$(KERNEL_ENTRY),$(KERNEL_LOADADDR)) \
+ -n '$(call toupper,$(LINUX_KARCH)) LEDE Linux-$(LINUX_VERSION)' -d $@ $@.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
IMAGE_SIZE := 15872k
endef
+define Device/archer-c59-v1
+ DEVICE_TITLE := TP-LINK Archer C59 v1
+ DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-ledtrig-usbport kmod-ath10k
+ BOARDNAME := ARCHER-C59-V1
+ TPLINK_BOARD_NAME := ARCHER-C59-V1
+ DEVICE_PROFILE := ARCHERC59V1
+ IMAGE_SIZE := 14528k
+ KERNEL := kernel-bin | patch-cmdline | lzma | uImageArcher lzma
+ IMAGES := sysupgrade.bin factory.bin
+ IMAGE/sysupgrade.bin := append-rootfs | tplink-safeloader sysupgrade
+ IMAGE/factory.bin := append-rootfs | tplink-safeloader factory
+ MTDPARTS := spi0.0:64k(u-boot)ro,64k(mac)ro,1536k(kernel),12992k(rootfs),1664k(tplink)ro,64k(art)ro,14528k@0x20000(firmware)
+endef
+TARGET_DEVICES += archer-c59-v1
+
+define Device/archer-c60-v1
+ DEVICE_TITLE := TP-LINK Archer C60 v1
+ DEVICE_PACKAGES := kmod-ath10k
+ BOARDNAME := ARCHER-C60-V1
+ TPLINK_BOARD_NAME := ARCHER-C60-V1
+ DEVICE_PROFILE := ARCHERC60V1
+ IMAGE_SIZE := 7936k
+ KERNEL := kernel-bin | patch-cmdline | lzma | uImageArcher lzma
+ IMAGES := sysupgrade.bin factory.bin
+ IMAGE/sysupgrade.bin := append-rootfs | tplink-safeloader sysupgrade
+ IMAGE/factory.bin := append-rootfs | tplink-safeloader factory
+ MTDPARTS := spi0.0:64k(u-boot)ro,64k(mac)ro,1344k(kernel),6592k(rootfs),64k(tplink)ro,64k(art)ro,7936k@0x20000(firmware)
+endef
+TARGET_DEVICES += archer-c60-v1
+
define Device/cpe510-520
DEVICE_TITLE := TP-LINK CPE510/520
DEVICE_PACKAGES := rssileds
BOARDNAME := CPE210
TPLINK_BOARD_NAME := CPE210
endef
-TARGET_DEVICES += cpe210-220 cpe510-520
+
+define Device/wbs210
+$(Device/cpe510-520)
+ DEVICE_TITLE := TP-LINK WBS210
+ DEVICE_PACKAGES := rssileds
+ BOARDNAME := WBS210
+ TPLINK_BOARD_NAME := WBS210
+endef
+
+define Device/wbs510
+$(Device/cpe510-520)
+ DEVICE_TITLE := TP-LINK WBS510
+ DEVICE_PACKAGES := rssileds
+ BOARDNAME := WBS510
+ TPLINK_BOARD_NAME := WBS510
+endef
+TARGET_DEVICES += cpe210-220 cpe510-520 wbs210 wbs510
+
+define Device/re450
+ DEVICE_TITLE := TP-LINK RE450
+ DEVICE_PACKAGES := kmod-ath10k ath10k-firmware-qca988x
+ MTDPARTS := spi0.0:128k(u-boot)ro,1344k(kernel),4672k(rootfs),64k(pation-table)ro,64k(product-info)ro,1856k(config)ro,64k(art)ro,6016k@0x20000(firmware)
+ IMAGE_SIZE := 7936k
+ BOARDNAME := RE450
+ TPLINK_BOARD_NAME := RE450
+ DEVICE_PROFILE := RE450
+ LOADER_TYPE := elf
+ KERNEL := kernel-bin | patch-cmdline | lzma | mktplinkfw-kernel
+ IMAGES := sysupgrade.bin factory.bin
+ IMAGE/sysupgrade.bin := append-rootfs | tplink-safeloader sysupgrade
+ IMAGE/factory.bin := append-rootfs | tplink-safeloader factory
+endef
+TARGET_DEVICES += re450
define Device/eap120
DEVICE_TITLE := TP-LINK EAP120
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)