openwrt/target/linux/ath79/image/generic-tp-link.mk
Nick French 20581ee8b5 ath79: add support for TP-Link Deco S4
Add support for TP-Link Deco S4 wifi router

The label refers to the device as S4R and the TP-Link firmware
site calls it the Deco S4 v2. (There does not appear to be a v1)

Hardware (and FCC id) are identical to the Deco M4R v2 but the
flash layout is ordered differently and the OEM firmware encrypts
some config parameters (including the label mac address) in flash

In order to set the encrypted mac address, the wlan's caldata
node is removed from the DTS so the mac can be decrypted with
the help of the uencrypt tool and patched into the wlan fw
via hotplug

Specifications:
SoC: QCA9563-AL3A
RAM: Zentel A3R1GE40JBF
Wireless 2.4GHz: QCA9563-AL3A (main SoC)
Wireless 5GHz: QCA9886
Ethernet Switch: QCA8337N-AL3C
Flash: 16 MB SPI NOR

UART serial access (115200N1) on board via solder pads:
RX = TP1 pad
TX = TP2 pad
GND = C201 (pad nearest board edge)

The device's bootloader and web gui will only accept images that
were signed using TP-Link's RSA key, however a memory safety bug
in the bootloader can be leveraged to install openwrt without
accessing the serial console. See developer forum S4 support page
for link to a "firmware" file that starts a tftp client, or you
may generate one on your own like this:
```
python - > deco_s4_faux_fw_tftp.bin <<EOF
import sys
from struct import pack

b = pack('>I', 0x00008000) + b'X'*16 + b"fw-type:" \
  + b'x'*256 + b"S000S001S002" + pack('>I', 0x80060200) \

b += b"\x00"*(0x200-len(b)) \
  + pack(">33I", *[0x3c0887fc, 0x35083ddc, 0xad000000, 0x24050000,
                   0x3c048006, 0x348402a0, 0x3c1987f9, 0x373947f4,
                   0x0320f809, 0x00000000, 0x24050000, 0x3c048006,
                   0x348402d0, 0x3c1987f9, 0x373947f4, 0x0320f809,
                   0x00000000, 0x24050000, 0x3c048006, 0x34840300,
                   0x3c1987f9, 0x373947f4, 0x0320f809, 0x00000000,
                   0x24050000, 0x3c048006, 0x34840400, 0x3c1987f9,
                   0x373947f4, 0x0320f809, 0x00000000, 0x1000fff1,
                   0x00000000])

b += b"\xff"*(0x2A0-len(b)) + b"setenv serverip 192.168.0.2\x00"
b += b"\xff"*(0x2D0-len(b)) + b"setenv ipaddr 192.168.0.1\x00"
b += b"\xff"*(0x300-len(b)) + b"tftpboot 0x81000000 initramfs-kernel.bin\x00"
b += b"\xff"*(0x400-len(b)) + b"bootm 0x81000000\x00"
b += b"\xff"*(0x8000-len(b))

sys.stdout.buffer.write(b)
EOF
```

Installation:
1. Run tftp server on pc with static ip 192.168.0.2
2. Place openwrt "initramfs-kernel.bin" image in tftp root dir
3. Connect pc to router ethernet port1
4. While holding in reset button on bottom of router, power on router
5. From pc access router webgui at http://192.168.0.1
6. Upload deco_s4_faux_fw_tftp.bin
7. Router will load and execture in-memory openwrt
8. Switch pc back to dhcp or static 192.168.1.x
9. Flash openwrt sysupgrade image via luci/ssh at 192.168.1.1

Revert to stock:
Press and hold reset button while powering device to start the
bootloader's recovery mode, where stock firmware can be uploaded
via web gui at 192.168.0.1

Please note that one additional non-github commits is also needed:
firmware-utils: add tplink-safeloader support for Deco S4

Signed-off-by: Nick French <nickfrench@gmail.com>
2022-09-11 21:54:00 +02:00

938 lines
24 KiB
Makefile

include ./common-tp-link.mk
define Device/tplink_archer-a7-v5
$(Device/tplink-safeloader-uimage)
SOC := qca9563
IMAGE_SIZE := 15104k
DEVICE_MODEL := Archer A7
DEVICE_VARIANT := v5
DEVICE_PACKAGES := kmod-usb2 kmod-usb-ledtrig-usbport kmod-ath10k-ct \
ath10k-firmware-qca988x-ct
TPLINK_BOARD_ID := ARCHER-A7-V5
endef
TARGET_DEVICES += tplink_archer-a7-v5
define Device/tplink_archer-a9-v6
$(Device/tplink-safeloader-uimage)
SOC := qcn5502
IMAGE_SIZE := 15360k
DEVICE_MODEL := Archer A9
DEVICE_VARIANT := v6
DEVICE_PACKAGES := kmod-usb2 kmod-usb-ledtrig-usbport kmod-ath10k-ct \
ath10k-firmware-qca9984-ct
TPLINK_BOARD_ID := ARCHER-A9-V6
endef
TARGET_DEVICES += tplink_archer-a9-v6
define Device/tplink_archer-c2-v3
$(Device/tplink-safeloader-uimage)
SOC := qca9563
IMAGE_SIZE := 7808k
DEVICE_MODEL := Archer C2
DEVICE_VARIANT := v3
DEVICE_PACKAGES := kmod-ath10k-ct-smallbuffers ath10k-firmware-qca9887-ct
TPLINK_BOARD_ID := ARCHER-C2-V3
endef
TARGET_DEVICES += tplink_archer-c2-v3
define Device/tplink_archer-c25-v1
$(Device/tplink-safeloader-uimage)
SOC := qca9561
IMAGE_SIZE := 7808k
DEVICE_MODEL := Archer C25
DEVICE_VARIANT := v1
TPLINK_BOARD_ID := ARCHER-C25-V1
DEVICE_PACKAGES := kmod-ath10k-ct-smallbuffers ath10k-firmware-qca9887-ct
SUPPORTED_DEVICES += archer-c25-v1
endef
TARGET_DEVICES += tplink_archer-c25-v1
define Device/tplink_archer-c5-v1
$(Device/tplink-16mlzma)
SOC := qca9558
DEVICE_MODEL := Archer C5
DEVICE_VARIANT := v1
DEVICE_PACKAGES := kmod-usb2 kmod-usb-ledtrig-usbport kmod-ath10k-ct \
ath10k-firmware-qca988x-ct
TPLINK_HWID := 0xc5000001
SUPPORTED_DEVICES += archer-c5
endef
TARGET_DEVICES += tplink_archer-c5-v1
define Device/tplink_archer-c58-v1
$(Device/tplink-safeloader-uimage)
SOC := qca9561
IMAGE_SIZE := 7936k
DEVICE_MODEL := Archer C58
DEVICE_VARIANT := v1
TPLINK_BOARD_ID := ARCHER-C58-V1
DEVICE_PACKAGES := kmod-ath10k-ct-smallbuffers ath10k-firmware-qca9888-ct
SUPPORTED_DEVICES += archer-c58-v1
endef
TARGET_DEVICES += tplink_archer-c58-v1
define Device/tplink_archer-c59-v1
$(Device/tplink-safeloader-uimage)
SOC := qca9561
IMAGE_SIZE := 14528k
DEVICE_MODEL := Archer C59
DEVICE_VARIANT := v1
TPLINK_BOARD_ID := ARCHER-C59-V1
DEVICE_PACKAGES := kmod-usb2 kmod-usb-ledtrig-usbport kmod-ath10k-ct \
ath10k-firmware-qca9888-ct
SUPPORTED_DEVICES += archer-c59-v1
endef
TARGET_DEVICES += tplink_archer-c59-v1
define Device/tplink_archer-c59-v2
$(Device/tplink-safeloader-uimage)
SOC := qca9561
IMAGE_SIZE := 14400k
DEVICE_MODEL := Archer C59
DEVICE_VARIANT := v2
TPLINK_BOARD_ID := ARCHER-C59-V2
DEVICE_PACKAGES := kmod-usb2 kmod-usb-ledtrig-usbport kmod-ath10k-ct \
ath10k-firmware-qca9888-ct
SUPPORTED_DEVICES += archer-c59-v2
endef
TARGET_DEVICES += tplink_archer-c59-v2
define Device/tplink_archer-c6-v2
$(Device/tplink-safeloader-uimage)
SOC := qca9563
IMAGE_SIZE := 7808k
DEVICE_MODEL := Archer C6
DEVICE_VARIANT := v2 (EU/RU/JP)
TPLINK_BOARD_ID := ARCHER-C6-V2
DEVICE_PACKAGES := kmod-ath10k-ct ath10k-firmware-qca9888-ct
endef
TARGET_DEVICES += tplink_archer-c6-v2
define Device/tplink_archer-c6-v2-us
$(Device/tplink-safeloader-uimage)
SOC := qca9563
IMAGE_SIZE := 15872k
DEVICE_MODEL := Archer C6
DEVICE_VARIANT := v2 (US)
DEVICE_ALT0_VENDOR := TP-Link
DEVICE_ALT0_MODEL := Archer A6
DEVICE_ALT0_VARIANT := v2 (US/TW)
TPLINK_BOARD_ID := ARCHER-C6-V2-US
DEVICE_PACKAGES := kmod-ath10k-ct ath10k-firmware-qca9888-ct
endef
TARGET_DEVICES += tplink_archer-c6-v2-us
define Device/tplink_archer-c60-v1
$(Device/tplink-safeloader-uimage)
SOC := qca9561
IMAGE_SIZE := 7936k
DEVICE_MODEL := Archer C60
DEVICE_VARIANT := v1
TPLINK_BOARD_ID := ARCHER-C60-V1
DEVICE_PACKAGES := kmod-ath10k-ct-smallbuffers ath10k-firmware-qca9888-ct
SUPPORTED_DEVICES += archer-c60-v1
endef
TARGET_DEVICES += tplink_archer-c60-v1
define Device/tplink_archer-c60-v2
$(Device/tplink-safeloader-uimage)
SOC := qca9561
IMAGE_SIZE := 7808k
DEVICE_MODEL := Archer C60
DEVICE_VARIANT := v2
TPLINK_BOARD_ID := ARCHER-C60-V2
DEVICE_PACKAGES := kmod-ath10k-ct-smallbuffers ath10k-firmware-qca9888-ct
SUPPORTED_DEVICES += archer-c60-v2
endef
TARGET_DEVICES += tplink_archer-c60-v2
define Device/tplink_archer-c60-v3
$(Device/tplink-safeloader-uimage)
SOC := qca9561
IMAGE_SIZE := 7808k
DEVICE_MODEL := Archer C60
DEVICE_VARIANT := v3
TPLINK_BOARD_ID := ARCHER-C60-V3
DEVICE_PACKAGES := kmod-ath10k-ct-smallbuffers ath10k-firmware-qca9888-ct
endef
TARGET_DEVICES += tplink_archer-c60-v3
define Device/tplink_archer-c7-v1
$(Device/tplink-8mlzma)
SOC := qca9558
DEVICE_MODEL := Archer C7
DEVICE_VARIANT := v1
DEVICE_PACKAGES := kmod-usb2 kmod-usb-ledtrig-usbport
TPLINK_HWID := 0x75000001
SUPPORTED_DEVICES += archer-c7
endef
TARGET_DEVICES += tplink_archer-c7-v1
define Device/tplink_archer-c7-v2
$(Device/tplink-16mlzma)
SOC := qca9558
DEVICE_MODEL := Archer C7
DEVICE_VARIANT := v2
DEVICE_PACKAGES := kmod-usb2 kmod-usb-ledtrig-usbport kmod-ath10k-ct \
ath10k-firmware-qca988x-ct
TPLINK_HWID := 0xc7000002
SUPPORTED_DEVICES += archer-c7
IMAGES += factory-us.bin factory-eu.bin
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
define Device/tplink_archer-c7-v4
$(Device/tplink-safeloader-uimage)
SOC := qca9563
IMAGE_SIZE := 15104k
DEVICE_MODEL := Archer C7
DEVICE_VARIANT := v4
DEVICE_PACKAGES := kmod-usb2 kmod-usb-ledtrig-usbport kmod-ath10k-ct \
ath10k-firmware-qca988x-ct
TPLINK_BOARD_ID := ARCHER-C7-V4
SUPPORTED_DEVICES += archer-c7-v4
endef
TARGET_DEVICES += tplink_archer-c7-v4
define Device/tplink_archer-c7-v5
$(Device/tplink-safeloader-uimage)
SOC := qca9563
IMAGE_SIZE := 15360k
DEVICE_MODEL := Archer C7
DEVICE_VARIANT := v5
DEVICE_PACKAGES := kmod-usb2 kmod-usb-ledtrig-usbport kmod-ath10k-ct \
ath10k-firmware-qca988x-ct
TPLINK_BOARD_ID := ARCHER-C7-V5
SUPPORTED_DEVICES += archer-c7-v5
endef
TARGET_DEVICES += tplink_archer-c7-v5
define Device/tplink_archer-d50-v1
$(Device/tplink-v2)
SOC := qca9531
DEVICE_MODEL := Archer D50
DEVICE_VARIANT := v1
DEVICE_PACKAGES := kmod-usb2 kmod-usb-ledtrig-usbport \
kmod-ath10k-ct-smallbuffers ath10k-firmware-qca988x-ct
IMAGE_SIZE := 7808k
TPLINK_HWID := 0xC1200001
TPLINK_HWREV := 0x00000046
TPLINK_FLASHLAYOUT := 8Mqca
KERNEL_INITRAMFS := kernel-bin | append-dtb | lzma | \
tplink-v2-header -s -V "ver. 1.0"
endef
TARGET_DEVICES += tplink_archer-d50-v1
define Device/tplink_archer-d7-v1
$(Device/tplink-v2)
SOC := qca9558
DEVICE_MODEL := Archer D7
DEVICE_VARIANT := v1
DEVICE_PACKAGES := kmod-usb2 kmod-usb-ledtrig-usbport \
kmod-ath10k-ct ath10k-firmware-qca988x-ct
IMAGE_SIZE := 15936k
TPLINK_HWID := 0x89300001
TPLINK_HWREV := 0x0000002D
TPLINK_FLASHLAYOUT := 16Mqca
TPLINK_HWREVADD := 0x00000002
endef
TARGET_DEVICES += tplink_archer-d7-v1
define Device/tplink_archer-d7b-v1
$(Device/tplink-v2)
SOC := qca9558
DEVICE_MODEL := Archer D7b
DEVICE_VARIANT := v1
DEVICE_PACKAGES := kmod-usb2 kmod-usb-ledtrig-usbport \
kmod-ath10k-ct ath10k-firmware-qca988x-ct
IMAGE_SIZE := 16000k
TPLINK_HWID := 0x89300001
TPLINK_HWREV := 0x0000003D
TPLINK_FLASHLAYOUT := 16Mqca
endef
TARGET_DEVICES += tplink_archer-d7b-v1
define Device/tplink_cpe210-v1
$(Device/tplink-safeloader-okli)
SOC := ar9344
IMAGE_SIZE := 7680k
DEVICE_MODEL := CPE210
DEVICE_VARIANT := v1
DEVICE_PACKAGES := rssileds
TPLINK_BOARD_ID := CPE210
SUPPORTED_DEVICES += cpe210
endef
TARGET_DEVICES += tplink_cpe210-v1
define Device/tplink_cpe210-v2
$(Device/tplink-safeloader)
SOC := qca9533
IMAGE_SIZE := 7680k
DEVICE_MODEL := CPE210
DEVICE_VARIANT := v2
TPLINK_BOARD_ID := CPE210V2
DEVICE_PACKAGES := rssileds
LOADER_TYPE := elf
SUPPORTED_DEVICES += cpe210-v2
endef
TARGET_DEVICES += tplink_cpe210-v2
define Device/tplink_cpe210-v3
$(Device/tplink-safeloader)
SOC := qca9533
IMAGE_SIZE := 7680k
DEVICE_MODEL := CPE210
DEVICE_VARIANT := v3
DEVICE_PACKAGES := rssileds
TPLINK_BOARD_ID := CPE210V3
LOADER_TYPE := elf
SUPPORTED_DEVICES += cpe210-v3
endef
TARGET_DEVICES += tplink_cpe210-v3
define Device/tplink_cpe220-v2
$(Device/tplink-safeloader-okli)
SOC := ar9344
IMAGE_SIZE := 7680k
DEVICE_MODEL := CPE220
DEVICE_VARIANT := v2
DEVICE_PACKAGES := rssileds
TPLINK_BOARD_ID := CPE220V2
endef
TARGET_DEVICES += tplink_cpe220-v2
define Device/tplink_cpe220-v3
$(Device/tplink-safeloader)
SOC := qca9533
IMAGE_SIZE := 7680k
DEVICE_MODEL := CPE220
DEVICE_VARIANT := v3
DEVICE_PACKAGES := rssileds
TPLINK_BOARD_ID := CPE220V3
LOADER_TYPE := elf
endef
TARGET_DEVICES += tplink_cpe220-v3
define Device/tplink_cpe510-v1
$(Device/tplink-safeloader-okli)
SOC := ar9344
IMAGE_SIZE := 7680k
DEVICE_MODEL := CPE510
DEVICE_VARIANT := v1
DEVICE_PACKAGES := rssileds
TPLINK_BOARD_ID := CPE510
SUPPORTED_DEVICES += cpe510
endef
TARGET_DEVICES += tplink_cpe510-v1
define Device/tplink_cpe510-v2
$(Device/tplink-safeloader-okli)
SOC := ar9344
IMAGE_SIZE := 7680k
DEVICE_MODEL := CPE510
DEVICE_VARIANT := v2
DEVICE_PACKAGES := rssileds
TPLINK_BOARD_ID := CPE510V2
SUPPORTED_DEVICES += cpe510-v2
endef
TARGET_DEVICES += tplink_cpe510-v2
define Device/tplink_cpe510-v3
$(Device/tplink-safeloader-okli)
SOC := ar9344
IMAGE_SIZE := 7680k
DEVICE_MODEL := CPE510
DEVICE_VARIANT := v3
DEVICE_PACKAGES := rssileds
TPLINK_BOARD_ID := CPE510V3
endef
TARGET_DEVICES += tplink_cpe510-v3
define Device/tplink_cpe610-v1
$(Device/tplink-safeloader-okli)
SOC := ar9344
IMAGE_SIZE := 7680k
DEVICE_MODEL := CPE610
DEVICE_VARIANT := v1
TPLINK_BOARD_ID := CPE610V1
endef
TARGET_DEVICES += tplink_cpe610-v1
define Device/tplink_cpe610-v2
$(Device/tplink-safeloader-okli)
SOC := ar9344
IMAGE_SIZE := 7680k
DEVICE_MODEL := CPE610
DEVICE_VARIANT := v2
TPLINK_BOARD_ID := CPE610V2
endef
TARGET_DEVICES += tplink_cpe610-v2
define Device/tplink_cpe710-v1
$(Device/tplink-safeloader-uimage)
SOC := qca9563
IMAGE_SIZE := 15680k
DEVICE_MODEL := CPE710
DEVICE_VARIANT := v1
DEVICE_PACKAGES := kmod-ath10k-ct ath10k-firmware-qca9888-ct
TPLINK_BOARD_ID := CPE710V1
endef
TARGET_DEVICES += tplink_cpe710-v1
define Device/tplink-eap2x5
$(Device/tplink-safeloader)
LOADER_TYPE := elf
KERNEL := kernel-bin | append-dtb | lzma | loader-kernel
KERNEL_INITRAMFS := $$(KERNEL)
IMAGE/factory.bin := append-rootfs | tplink-safeloader factory | \
pad-extra 128
endef
define Device/tplink_eap225-outdoor-v1
$(Device/tplink-eap2x5)
SOC := qca9563
IMAGE_SIZE := 13824k
DEVICE_MODEL := EAP225-Outdoor
DEVICE_VARIANT := v1
DEVICE_PACKAGES := kmod-ath10k-ct ath10k-firmware-qca9888-ct
TPLINK_BOARD_ID := EAP225-OUTDOOR-V1
endef
TARGET_DEVICES += tplink_eap225-outdoor-v1
define Device/tplink_eap225-outdoor-v3
$(Device/tplink-eap2x5)
SOC := qca9563
IMAGE_SIZE := 13824k
DEVICE_MODEL := EAP225-Outdoor
DEVICE_VARIANT := v3
DEVICE_PACKAGES := kmod-ath10k-ct ath10k-firmware-qca9888-ct
TPLINK_BOARD_ID := EAP225-V3
endef
TARGET_DEVICES += tplink_eap225-outdoor-v3
define Device/tplink_eap225-v1
$(Device/tplink-eap2x5)
SOC := qca9563
IMAGE_SIZE := 13824k
DEVICE_MODEL := EAP225
DEVICE_VARIANT := v1
DEVICE_PACKAGES := kmod-ath10k-ct ath10k-firmware-qca988x-ct
TPLINK_BOARD_ID := EAP225-V1
endef
TARGET_DEVICES += tplink_eap225-v1
define Device/tplink_eap225-v3
$(Device/tplink-eap2x5)
SOC := qca9563
IMAGE_SIZE := 13824k
DEVICE_MODEL := EAP225
DEVICE_VARIANT := v3
DEVICE_PACKAGES := kmod-ath10k-ct ath10k-firmware-qca9888-ct
TPLINK_BOARD_ID := EAP225-V3
endef
TARGET_DEVICES += tplink_eap225-v3
define Device/tplink_eap225-v4
$(Device/tplink-eap2x5)
SOC := qca9563
IMAGE_SIZE := 13824k
DEVICE_MODEL := EAP225
DEVICE_VARIANT := v4
DEVICE_PACKAGES := kmod-ath10k-ct ath10k-firmware-qca9888-ct
TPLINK_BOARD_ID := EAP225-V3
endef
TARGET_DEVICES += tplink_eap225-v4
define Device/tplink_eap225-wall-v2
$(Device/tplink-eap2x5)
SOC := qca9561
IMAGE_SIZE := 13824k
DEVICE_MODEL := EAP225-Wall
DEVICE_VARIANT := v2
DEVICE_PACKAGES := kmod-ath10k-ct ath10k-firmware-qca9888-ct
TPLINK_BOARD_ID := EAP225-WALL-V2
endef
TARGET_DEVICES += tplink_eap225-wall-v2
define Device/tplink_eap245-v1
$(Device/tplink-eap2x5)
SOC := qca9563
IMAGE_SIZE := 13824k
DEVICE_MODEL := EAP245
DEVICE_VARIANT := v1
DEVICE_PACKAGES := kmod-ath10k-ct ath10k-firmware-qca988x-ct
TPLINK_BOARD_ID := EAP245-V1
endef
TARGET_DEVICES += tplink_eap245-v1
define Device/tplink_eap245-v3
$(Device/tplink-eap2x5)
SOC := qca9563
IMAGE_SIZE := 14592k
DEVICE_MODEL := EAP245
DEVICE_VARIANT := v3
DEVICE_ALT0_VENDOR := $$(DEVICE_VENDOR)
DEVICE_ALT0_MODEL := EAP265 HD
DEVICE_ALT0_VARIANT := v1
DEVICE_PACKAGES := kmod-ath10k-ct ath10k-firmware-qca99x0-ct
TPLINK_BOARD_ID := EAP245-V3
endef
TARGET_DEVICES += tplink_eap245-v3
define Device/tplink_deco-m4r-v1
$(Device/tplink-safeloader-uimage)
SOC := qca9563
IMAGE_SIZE := 13824k
DEVICE_MODEL := Deco M4R
DEVICE_VARIANT := v1
DEVICE_PACKAGES := kmod-ath10k-ct ath10k-firmware-qca9888-ct
SUPPORTED_DEVICES += deco-m4r-v1
TPLINK_BOARD_ID := DECO-M4R-V1
endef
TARGET_DEVICES += tplink_deco-m4r-v1
define Device/tplink_deco-s4-v2
$(Device/tplink-safeloader-uimage)
SOC := qca9563
IMAGE_SIZE := 13824k
DEVICE_MODEL := Deco S4
DEVICE_VARIANT := v2
DEVICE_PACKAGES := kmod-ath10k-ct ath10k-firmware-qca9888-ct uencrypt
SUPPORTED_DEVICES += deco-s4-v2
TPLINK_BOARD_ID := DECO-S4-V2
endef
TARGET_DEVICES += tplink_deco-s4-v2
define Device/tplink_re350k-v1
$(Device/tplink-safeloader)
SOC := qca9558
IMAGE_SIZE := 13760k
DEVICE_MODEL := RE350K
DEVICE_VARIANT := v1
DEVICE_PACKAGES := kmod-ath10k-ct ath10k-firmware-qca988x-ct
TPLINK_BOARD_ID := RE350K-V1
endef
TARGET_DEVICES += tplink_re350k-v1
define Device/tplink_rex5x-v1
$(Device/tplink-safeloader)
SOC := qca9558
IMAGE_SIZE := 6016k
DEVICE_PACKAGES := kmod-ath10k-ct-smallbuffers ath10k-firmware-qca988x-ct
endef
define Device/tplink_re355-v1
$(Device/tplink_rex5x-v1)
DEVICE_MODEL := RE355
DEVICE_VARIANT := v1
TPLINK_BOARD_ID := RE355
SUPPORTED_DEVICES += re355
endef
TARGET_DEVICES += tplink_re355-v1
define Device/tplink_re450-v1
$(Device/tplink_rex5x-v1)
DEVICE_MODEL := RE450
DEVICE_VARIANT := v1
TPLINK_BOARD_ID := RE450
SUPPORTED_DEVICES += re450
endef
TARGET_DEVICES += tplink_re450-v1
define Device/tplink_re450-v2
$(Device/tplink-safeloader)
SOC := qca9563
IMAGE_SIZE := 6016k
DEVICE_MODEL := RE450
DEVICE_VARIANT := v2
DEVICE_PACKAGES := kmod-ath10k-ct-smallbuffers ath10k-firmware-qca988x-ct
TPLINK_BOARD_ID := RE450-V2
LOADER_TYPE := elf
endef
TARGET_DEVICES += tplink_re450-v2
define Device/tplink_re450-v3
$(Device/tplink-safeloader)
SOC := qca9563
IMAGE_SIZE := 7808k
DEVICE_MODEL := RE450
DEVICE_VARIANT := v3
DEVICE_PACKAGES := kmod-ath10k-ct-smallbuffers ath10k-firmware-qca988x-ct
TPLINK_BOARD_ID := RE450-V3
LOADER_TYPE := elf
endef
TARGET_DEVICES += tplink_re450-v3
define Device/tplink_re455-v1
$(Device/tplink-safeloader)
SOC := qca9563
IMAGE_SIZE := 7808k
DEVICE_MODEL := RE455
DEVICE_VARIANT := v1
DEVICE_PACKAGES := kmod-ath10k-ct-smallbuffers ath10k-firmware-qca988x-ct
TPLINK_BOARD_ID := RE455-V1
LOADER_TYPE := elf
endef
TARGET_DEVICES += tplink_re455-v1
define Device/tplink_tl-mr6400-v1
$(Device/tplink-8mlzma)
SOC := qca9531
DEVICE_MODEL := TL-MR6400
DEVICE_VARIANT := v1
TPLINK_HWID := 0x64000001
DEVICE_PACKAGES := kmod-usb2 kmod-usb-net-rndis \
kmod-usb-serial-option adb-enablemodem
SUPPORTED_DEVICES += tl-mr6400
endef
TARGET_DEVICES += tplink_tl-mr6400-v1
define Device/tplink_tl-wa1201-v2
$(Device/tplink-safeloader-uimage)
SOC := qca9563
IMAGE_SIZE := 13184k
DEVICE_MODEL := TL-WA1201
DEVICE_VARIANT := v2
TPLINK_BOARD_ID := TL-WA1201-V2
DEVICE_PACKAGES := kmod-ath10k-ct ath10k-firmware-qca9888-ct
endef
TARGET_DEVICES += tplink_tl-wa1201-v2
define Device/tplink_tl-wdr3500-v1
$(Device/tplink-8mlzma)
SOC := ar9344
DEVICE_MODEL := TL-WDR3500
DEVICE_VARIANT := v1
DEVICE_PACKAGES := kmod-usb2 kmod-usb-ledtrig-usbport
TPLINK_HWID := 0x35000001
SUPPORTED_DEVICES += tl-wdr3500
endef
TARGET_DEVICES += tplink_tl-wdr3500-v1
define Device/tplink_tl-wdr3600-v1
$(Device/tplink-8mlzma)
SOC := ar9344
DEVICE_MODEL := TL-WDR3600
DEVICE_VARIANT := v1
DEVICE_PACKAGES := kmod-usb2 kmod-usb-ledtrig-usbport
TPLINK_HWID := 0x36000001
SUPPORTED_DEVICES += tl-wdr4300
endef
TARGET_DEVICES += tplink_tl-wdr3600-v1
define Device/tplink_tl-wdr4300-v1
$(Device/tplink-8mlzma)
SOC := ar9344
DEVICE_MODEL := TL-WDR4300
DEVICE_VARIANT := v1
DEVICE_PACKAGES := kmod-usb2 kmod-usb-ledtrig-usbport
TPLINK_HWID := 0x43000001
SUPPORTED_DEVICES += tl-wdr4300
endef
TARGET_DEVICES += tplink_tl-wdr4300-v1
define Device/tplink_tl-wdr4300-v1-il
$(Device/tplink-8mlzma)
SOC := ar9344
DEVICE_MODEL := TL-WDR4300
DEVICE_VARIANT := v1 (IL)
DEVICE_PACKAGES := kmod-usb2 kmod-usb-ledtrig-usbport
TPLINK_HWID := 0x43008001
SUPPORTED_DEVICES += tl-wdr4300
endef
TARGET_DEVICES += tplink_tl-wdr4300-v1-il
define Device/tplink_tl-wdr4310-v1
$(Device/tplink-8mlzma)
SOC := ar9344
DEVICE_MODEL := TL-WDR4310
DEVICE_VARIANT := v1
DEVICE_PACKAGES := kmod-usb2 kmod-usb-ledtrig-usbport
TPLINK_HWID := 0x43100001
SUPPORTED_DEVICES += tl-wdr4300
endef
TARGET_DEVICES += tplink_tl-wdr4310-v1
define Device/tplink_tl-wdr4900-v2
$(Device/tplink-8mlzma)
SOC := qca9558
DEVICE_MODEL := TL-WDR4900
DEVICE_VARIANT := v2
DEVICE_PACKAGES := kmod-usb2 kmod-usb-ledtrig-usbport
TPLINK_HWID := 0x49000002
SUPPORTED_DEVICES += tl-wdr4900-v2
endef
TARGET_DEVICES += tplink_tl-wdr4900-v2
define Device/tplink_tl-wdr7500-v3
$(Device/tplink-8mlzma)
SOC := qca9558
DEVICE_MODEL := TL-WDR7500
DEVICE_VARIANT := v3
DEVICE_PACKAGES := kmod-usb2 kmod-usb-ledtrig-usbport kmod-ath10k-ct \
ath10k-firmware-qca988x-ct
TPLINK_HWID := 0x75000003
SUPPORTED_DEVICES += archer-c7
endef
TARGET_DEVICES += tplink_tl-wdr7500-v3
define Device/tplink_tl-wpa8630-v1
$(Device/tplink-8mlzma)
SOC := qca9563
DEVICE_MODEL := TL-WPA8630
DEVICE_VARIANT := v1
DEVICE_PACKAGES := kmod-ath10k-ct ath10k-firmware-qca988x-ct
TPLINK_HWID := 0x86300001
SUPPORTED_DEVICES += tl-wpa8630
endef
TARGET_DEVICES += tplink_tl-wpa8630-v1
define Device/tplink_tl-wr1043nd-v1
$(Device/tplink-8m)
SOC := ar9132
DEVICE_MODEL := TL-WR1043N/ND
DEVICE_VARIANT := v1
DEVICE_PACKAGES := kmod-usb2 kmod-usb-ledtrig-usbport kmod-switch-rtl8366rb
TPLINK_HWID := 0x10430001
SUPPORTED_DEVICES += tl-wr1043nd
endef
TARGET_DEVICES += tplink_tl-wr1043nd-v1
define Device/tplink_tl-wr1043nd-v2
$(Device/tplink-8mlzma)
SOC := qca9558
DEVICE_MODEL := TL-WR1043N/ND
DEVICE_VARIANT := v2
DEVICE_PACKAGES := kmod-usb2 kmod-usb-ledtrig-usbport
TPLINK_HWID := 0x10430002
SUPPORTED_DEVICES += tl-wr1043nd-v2
endef
TARGET_DEVICES += tplink_tl-wr1043nd-v2
define Device/tplink_tl-wr1043nd-v3
$(Device/tplink-8mlzma)
SOC := qca9558
DEVICE_MODEL := TL-WR1043N/ND
DEVICE_VARIANT := v3
DEVICE_PACKAGES := kmod-usb2 kmod-usb-ledtrig-usbport
TPLINK_HWID := 0x10430003
SUPPORTED_DEVICES += tl-wr1043nd-v2
endef
TARGET_DEVICES += tplink_tl-wr1043nd-v3
define Device/tplink_tl-wr1043nd-v4
$(Device/tplink-safeloader)
SOC := qca9563
IMAGE_SIZE := 15552k
DEVICE_MODEL := TL-WR1043N/ND
DEVICE_VARIANT := v4
DEVICE_PACKAGES := kmod-usb2 kmod-usb-ledtrig-usbport
TPLINK_HWID := 0x10430004
TPLINK_HWREV := 0x1
TPLINK_BOARD_ID := TLWR1043NDV4
SUPPORTED_DEVICES += tl-wr1043nd-v4
endef
TARGET_DEVICES += tplink_tl-wr1043nd-v4
define Device/tplink_tl-wr1043n-v5
$(Device/tplink-safeloader-uimage)
SOC := qca9563
IMAGE_SIZE := 15104k
DEVICE_MODEL := TL-WR1043N
DEVICE_VARIANT := v5
TPLINK_BOARD_ID := TLWR1043NV5
SUPPORTED_DEVICES += tl-wr1043n-v5
endef
TARGET_DEVICES += tplink_tl-wr1043n-v5
define Device/tplink_tl-wr1045nd-v2
$(Device/tplink-8mlzma)
SOC := qca9558
DEVICE_MODEL := TL-WR1045ND
DEVICE_VARIANT := v2
DEVICE_PACKAGES := kmod-usb2 kmod-usb-ledtrig-usbport
TPLINK_HWID := 0x10450002
endef
TARGET_DEVICES += tplink_tl-wr1045nd-v2
define Device/tplink_tl-wr2543-v1
$(Device/tplink-8mlzma)
SOC := ar7242
DEVICE_MODEL := TL-WR2543N/ND
DEVICE_VARIANT := v1
DEVICE_PACKAGES := kmod-usb2 kmod-usb-ledtrig-usbport kmod-switch-rtl8367
TPLINK_HWID := 0x25430001
IMAGE/sysupgrade.bin := tplink-v1-image sysupgrade -v 3.13.99 | \
check-size | append-metadata
IMAGE/factory.bin := tplink-v1-image factory -v 3.13.99
SUPPORTED_DEVICES += tl-wr2543n
endef
TARGET_DEVICES += tplink_tl-wr2543-v1
define Device/tplink_tl-wr710n-v1
$(Device/tplink-8mlzma)
SOC := ar9331
DEVICE_MODEL := TL-WR710N
DEVICE_VARIANT := v1
DEVICE_PACKAGES := kmod-usb-chipidea2 kmod-usb-ledtrig-usbport
TPLINK_HWID := 0x07100001
SUPPORTED_DEVICES += tl-wr710n
endef
TARGET_DEVICES += tplink_tl-wr710n-v1
define Device/tplink_tl-wr710n-v2.1
$(Device/tplink-8mlzma)
SOC := ar9331
DEVICE_MODEL := TL-WR710N
DEVICE_VARIANT := v2.1
DEVICE_PACKAGES := kmod-usb-chipidea2 kmod-usb-ledtrig-usbport
TPLINK_HWID := 0x07100002
TPLINK_HWREV := 0x2
SUPPORTED_DEVICES += tl-wr710n
endef
TARGET_DEVICES += tplink_tl-wr710n-v2.1
define Device/tplink_tl-wr810n-v1
$(Device/tplink-8mlzma)
SOC := qca9531
DEVICE_MODEL := TL-WR810N
DEVICE_VARIANT := v1
TPLINK_HWID := 0x8100001
DEVICE_PACKAGES := kmod-usb2 kmod-usb-ledtrig-usbport
SUPPORTED_DEVICES += tl-wr810n
endef
TARGET_DEVICES += tplink_tl-wr810n-v1
define Device/tplink_tl-wr810n-v2
$(Device/tplink-8mlzma)
SOC := qca9533
DEVICE_MODEL := TL-WR810N
DEVICE_VARIANT := v2
TPLINK_HWID := 0x8100002
SUPPORTED_DEVICES += tl-wr810n-v2
endef
TARGET_DEVICES += tplink_tl-wr810n-v2
define Device/tplink_tl-wr841hp-v2
$(Device/tplink-8mlzma)
SOC := ar9344
DEVICE_MODEL := TL-WR841HP
DEVICE_VARIANT := v2
TPLINK_HWID := 0x08411002
endef
TARGET_DEVICES += tplink_tl-wr841hp-v2
define Device/tplink_tl-wr841hp-v3
$(Device/tplink-8mlzma)
SOC := qca9533
DEVICE_MODEL := TL-WR841HP
DEVICE_VARIANT := v3
TPLINK_HWID := 0x08411003
endef
TARGET_DEVICES += tplink_tl-wr841hp-v3
define Device/tplink_tl-wr842n-v1
$(Device/tplink-8m)
SOC := ar7241
DEVICE_MODEL := TL-WR842N/ND
DEVICE_VARIANT := v1
DEVICE_PACKAGES := kmod-usb2 kmod-usb-ledtrig-usbport
TPLINK_HWID := 0x8420001
SUPPORTED_DEVICES += tl-mr3420
endef
TARGET_DEVICES += tplink_tl-wr842n-v1
define Device/tplink_tl-wr842n-v2
$(Device/tplink-8mlzma)
SOC := ar9341
DEVICE_MODEL := TL-WR842N/ND
DEVICE_VARIANT := v2
DEVICE_PACKAGES := kmod-usb2 kmod-usb-ledtrig-usbport
TPLINK_HWID := 0x8420002
SUPPORTED_DEVICES += tl-wr842n-v2
endef
TARGET_DEVICES += tplink_tl-wr842n-v2
define Device/tplink_tl-wr842n-v3
$(Device/tplink-16mlzma)
SOC := qca9533
DEVICE_MODEL := TL-WR842N
DEVICE_VARIANT := v3
DEVICE_PACKAGES := kmod-usb2 kmod-usb-ledtrig-usbport
TPLINK_HWID := 0x8420003
SUPPORTED_DEVICES += tl-wr842n-v3
endef
TARGET_DEVICES += tplink_tl-wr842n-v3
define Device/tplink_tl-wr902ac-v1
$(Device/tplink-safeloader)
SOC := qca9531
DEVICE_MODEL := TL-WR902AC
DEVICE_VARIANT := v1
DEVICE_PACKAGES := kmod-usb2 kmod-usb-ledtrig-usbport \
kmod-ath10k-ct-smallbuffers ath10k-firmware-qca9887-ct \
-swconfig -uboot-envtools
TPLINK_BOARD_ID := TL-WR902AC-V1
IMAGE_SIZE := 7360k
SUPPORTED_DEVICES += tl-wr902ac-v1
endef
TARGET_DEVICES += tplink_tl-wr902ac-v1
define Device/tplink_tl-wr941hp-v1
$(Device/tplink-safeloader)
SOC := tp9343
DEVICE_MODEL := TL-WR941HP
DEVICE_VARIANT := v1
TPLINK_BOARD_ID := TL-WR941HP-V1
IMAGE_SIZE := 7360k
endef
TARGET_DEVICES += tplink_tl-wr941hp-v1
define Device/tplink_wbs210-v1
$(Device/tplink-safeloader-okli)
SOC := ar9344
IMAGE_SIZE := 7680k
DEVICE_MODEL := WBS210
DEVICE_VARIANT := v1
DEVICE_PACKAGES := rssileds
TPLINK_BOARD_ID := WBS210
SUPPORTED_DEVICES += wbs210
endef
TARGET_DEVICES += tplink_wbs210-v1
define Device/tplink_wbs210-v2
$(Device/tplink-safeloader-okli)
SOC := ar9344
IMAGE_SIZE := 7680k
DEVICE_MODEL := WBS210
DEVICE_VARIANT := v2
DEVICE_PACKAGES := rssileds
TPLINK_BOARD_ID := WBS210V2
endef
TARGET_DEVICES += tplink_wbs210-v2
define Device/tplink_wbs510-v1
$(Device/tplink-safeloader-okli)
SOC := ar9344
IMAGE_SIZE := 7680k
DEVICE_MODEL := WBS510
DEVICE_VARIANT := v1
DEVICE_PACKAGES := rssileds
TPLINK_BOARD_ID := WBS510
SUPPORTED_DEVICES += wbs510
endef
TARGET_DEVICES += tplink_wbs510-v1
define Device/tplink_wbs510-v2
$(Device/tplink-safeloader-okli)
SOC := ar9344
IMAGE_SIZE := 7680k
DEVICE_MODEL := WBS510
DEVICE_VARIANT := v2
DEVICE_PACKAGES := rssileds
TPLINK_BOARD_ID := WBS510V2
endef
TARGET_DEVICES += tplink_wbs510-v2