From 3930aab2cb067d04f5c9ebbf1af57744e19355eb Mon Sep 17 00:00:00 2001 From: Bernhard Geier Date: Sun, 3 Nov 2019 13:58:12 +0100 Subject: [PATCH] ath79: add support for TP-Link WBS210 v2 TP-Link WBS210 v2 is an outdoor wireless CPE for 2.4 GHz with two Ethernet ports based on Atheros AR9344 The device is the same as TP-Link CPE220 v2, but with higher TX power (27 dBm instead of 12 dBm) and two antenna connectors instead of built-in antennas. Specifications: - SoC: Atheros AR9344 - RAM: 64MB - Storage: 8 MB SPI NOR - Wireless: 2.4GHz 300 Mbps, 2x RP-SMA connector, 27 dBm TX power - Ethernet: 1x 10/100 Mbps with 24V POE IN, 1x 10/100 Mbps Installation: Flash factory image through stock firmware WEB UI or through TFTP To get to TFTP recovery just hold reset button while powering on for around 4-5 seconds and release. Rename factory image to recovery.bin Stock TFTP server IP: 192.168.0.100 Stock device TFTP adress: 192.168.0.254 The TP-Link WBS devices use the same GPIOs as the CPE devices, except for the link4 LED. For this one, WBS devices use "2", while CPE devices use "16". (Tested on WBS210 v2) Signed-off-by: Bernhard Geier [added comment about GPIO] Signed-off-by: Adrian Schmutzler --- .../ath79/dts/ar9344_tplink_cpe210-v1.dts | 4 +++ .../ath79/dts/ar9344_tplink_cpe220-v2.dts | 4 +++ .../ath79/dts/ar9344_tplink_cpe510-v1.dts | 4 +++ .../ath79/dts/ar9344_tplink_cpexxx-v1.dtsi | 11 +++---- .../ath79/dts/ar9344_tplink_wbs210-v2.dts | 13 ++++++++ .../generic/base-files/etc/board.d/01_leds | 3 +- .../generic/base-files/etc/board.d/02_network | 1 + .../base-files/etc/board.d/03_gpio_switches | 3 +- target/linux/ath79/image/generic-tp-link.mk | 11 +++++++ tools/firmware-utils/src/tplink-safeloader.c | 32 +++++++++++++++++++ 10 files changed, 78 insertions(+), 8 deletions(-) create mode 100644 target/linux/ath79/dts/ar9344_tplink_wbs210-v2.dts diff --git a/target/linux/ath79/dts/ar9344_tplink_cpe210-v1.dts b/target/linux/ath79/dts/ar9344_tplink_cpe210-v1.dts index 1a107c23ef59..e82fd4a32f69 100644 --- a/target/linux/ath79/dts/ar9344_tplink_cpe210-v1.dts +++ b/target/linux/ath79/dts/ar9344_tplink_cpe210-v1.dts @@ -7,3 +7,7 @@ compatible = "tplink,cpe210-v1", "qca,ar9344"; model = "TP-Link CPE210 v1"; }; + +&led_link4 { + gpios = <&gpio 16 GPIO_ACTIVE_LOW>; +}; diff --git a/target/linux/ath79/dts/ar9344_tplink_cpe220-v2.dts b/target/linux/ath79/dts/ar9344_tplink_cpe220-v2.dts index 0981b4af07ce..7e8822710fca 100644 --- a/target/linux/ath79/dts/ar9344_tplink_cpe220-v2.dts +++ b/target/linux/ath79/dts/ar9344_tplink_cpe220-v2.dts @@ -7,3 +7,7 @@ compatible = "tplink,cpe220-v2", "qca,ar9344"; model = "TP-Link CPE220 v2"; }; + +&led_link4 { + gpios = <&gpio 16 GPIO_ACTIVE_LOW>; +}; diff --git a/target/linux/ath79/dts/ar9344_tplink_cpe510-v1.dts b/target/linux/ath79/dts/ar9344_tplink_cpe510-v1.dts index 225d16e2e783..34b83c944e67 100644 --- a/target/linux/ath79/dts/ar9344_tplink_cpe510-v1.dts +++ b/target/linux/ath79/dts/ar9344_tplink_cpe510-v1.dts @@ -7,3 +7,7 @@ compatible = "tplink,cpe510-v1", "qca,ar9344"; model = "TP-Link CPE510 v1"; }; + +&led_link4 { + gpios = <&gpio 16 GPIO_ACTIVE_LOW>; +}; diff --git a/target/linux/ath79/dts/ar9344_tplink_cpexxx-v1.dtsi b/target/linux/ath79/dts/ar9344_tplink_cpexxx-v1.dtsi index 81802f3b5bb6..3ba964edde5f 100644 --- a/target/linux/ath79/dts/ar9344_tplink_cpexxx-v1.dtsi +++ b/target/linux/ath79/dts/ar9344_tplink_cpexxx-v1.dtsi @@ -5,10 +5,10 @@ / { aliases { - led-boot = &system; - led-failsafe = &system; - led-running = &system; - led-upgrade = &system; + led-boot = &led_link4; + led-failsafe = &led_link4; + led-running = &led_link4; + led-upgrade = &led_link4; }; leds { @@ -39,9 +39,8 @@ gpios = <&gpio 15 GPIO_ACTIVE_LOW>; }; - system: link4 { + led_link4: link4 { label = "tp-link:green:link4"; - gpios = <&gpio 16 GPIO_ACTIVE_LOW>; }; }; }; diff --git a/target/linux/ath79/dts/ar9344_tplink_wbs210-v2.dts b/target/linux/ath79/dts/ar9344_tplink_wbs210-v2.dts new file mode 100644 index 000000000000..dddf4aebdaf8 --- /dev/null +++ b/target/linux/ath79/dts/ar9344_tplink_wbs210-v2.dts @@ -0,0 +1,13 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT +/dts-v1/; + +#include "ar9344_tplink_cpexxx-v1.dtsi" + +/ { + compatible = "tplink,wbs210-v2", "qca,ar9344"; + model = "TP-Link WBS210 v2"; +}; + +&led_link4 { + gpios = <&gpio 2 GPIO_ACTIVE_LOW>; +}; diff --git a/target/linux/ath79/generic/base-files/etc/board.d/01_leds b/target/linux/ath79/generic/base-files/etc/board.d/01_leds index 441091de329c..fbb0d0ea03dc 100755 --- a/target/linux/ath79/generic/base-files/etc/board.d/01_leds +++ b/target/linux/ath79/generic/base-files/etc/board.d/01_leds @@ -173,7 +173,8 @@ tplink,archer-d50-v1) ;; tplink,cpe210-v1|\ tplink,cpe220-v2|\ -tplink,cpe510-v1) +tplink,cpe510-v1|\ +tplink,wbs210-v2) ucidef_set_led_netdev "lan0" "LAN0" "tp-link:green:lan0" "eth1" ucidef_set_led_switch "lan1" "LAN1" "tp-link:green:lan1" "switch0" "0x10" ucidef_set_rssimon "wlan0" "200000" "1" diff --git a/target/linux/ath79/generic/base-files/etc/board.d/02_network b/target/linux/ath79/generic/base-files/etc/board.d/02_network index e4179b4d384d..10ca213e707b 100755 --- a/target/linux/ath79/generic/base-files/etc/board.d/02_network +++ b/target/linux/ath79/generic/base-files/etc/board.d/02_network @@ -90,6 +90,7 @@ ath79_setup_interfaces() tplink,cpe210-v1|\ tplink,cpe220-v2|\ tplink,cpe510-v1|\ + tplink,wbs210-v2|\ ubnt,nanostation-m|\ ubnt,routerstation) ucidef_set_interfaces_lan_wan "eth1" "eth0" diff --git a/target/linux/ath79/generic/base-files/etc/board.d/03_gpio_switches b/target/linux/ath79/generic/base-files/etc/board.d/03_gpio_switches index d84d6cfe85b6..4d6277c223ca 100755 --- a/target/linux/ath79/generic/base-files/etc/board.d/03_gpio_switches +++ b/target/linux/ath79/generic/base-files/etc/board.d/03_gpio_switches @@ -44,7 +44,8 @@ tplink,archer-c25-v1) ;; tplink,cpe210-v1|\ tplink,cpe220-v2|\ -tplink,cpe510-v1) +tplink,cpe510-v1|\ +tplink,wbs210-v2) ucidef_add_gpio_switch "poe_passthrough" "PoE Passthrough" "20" ;; ubnt,nanostation-ac) diff --git a/target/linux/ath79/image/generic-tp-link.mk b/target/linux/ath79/image/generic-tp-link.mk index b272276b9f61..69cb1719e6d8 100644 --- a/target/linux/ath79/image/generic-tp-link.mk +++ b/target/linux/ath79/image/generic-tp-link.mk @@ -525,3 +525,14 @@ define Device/tplink_tl-wr842n-v3 SUPPORTED_DEVICES += tl-wr842n-v3 endef TARGET_DEVICES += tplink_tl-wr842n-v3 + +define Device/tplink_wbs210-v2 + $(Device/tplink-loader-okli) + ATH_SOC := ar9344 + IMAGE_SIZE := 7680k + DEVICE_MODEL := WBS210 + DEVICE_VARIANT := v2 + DEVICE_PACKAGES := rssileds + TPLINK_BOARD_ID := WBS210V2 +endef +TARGET_DEVICES += tplink_wbs210-v2 diff --git a/tools/firmware-utils/src/tplink-safeloader.c b/tools/firmware-utils/src/tplink-safeloader.c index ce3a039e7ed6..ee0d20ae9fe2 100644 --- a/tools/firmware-utils/src/tplink-safeloader.c +++ b/tools/firmware-utils/src/tplink-safeloader.c @@ -465,6 +465,38 @@ static struct device_info boards[] = { .last_sysupgrade_partition = "support-list", }, + { + .id = "WBS210V2", + .vendor = "CPE510(TP-LINK|UN|N300-5):1.0\r\n", + .support_list = + "SupportList:\r\n" + "WBS210(TP-LINK|UN|N300-2|00000000):2.00\r\n" + "WBS210(TP-LINK|US|N300-2|55530000):2.00\r\n" + "WBS210(TP-LINK|EU|N300-2|45550000):2.00\r\n", + .support_trail = '\xff', + .soft_ver = NULL, + + .partitions = { + {"fs-uboot", 0x00000, 0x20000}, + {"partition-table", 0x20000, 0x02000}, + {"default-mac", 0x30000, 0x00020}, + {"product-info", 0x31100, 0x00100}, + {"signature", 0x32000, 0x00400}, + {"os-image", 0x40000, 0x200000}, + {"file-system", 0x240000, 0x570000}, + {"soft-version", 0x7b0000, 0x00100}, + {"support-list", 0x7b1000, 0x00400}, + {"user-config", 0x7c0000, 0x10000}, + {"default-config", 0x7d0000, 0x10000}, + {"log", 0x7e0000, 0x10000}, + {"radio", 0x7f0000, 0x10000}, + {NULL, 0, 0} + }, + + .first_sysupgrade_partition = "os-image", + .last_sysupgrade_partition = "support-list", + }, + { .id = "WBS510", .vendor = "CPE510(TP-LINK|UN|N300-5):1.0\r\n", -- 2.30.2