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 1a107c23ef..e82fd4a32f 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 0981b4af07..7e8822710f 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 225d16e2e7..34b83c944e 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 81802f3b5b..3ba964edde 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 0000000000..dddf4aebda --- /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 441091de32..fbb0d0ea03 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 e4179b4d38..10ca213e70 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 d84d6cfe85..4d6277c223 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 b272276b9f..69cb1719e6 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 ce3a039e7e..ee0d20ae9f 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