aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Schaper <openwrt@sebastianschaper.net>2024-02-11 18:55:43 +0100
committerChristian Lamparter <chunkeey@gmail.com>2024-03-09 20:00:11 +0100
commitee69f81ca5032f13e39ce7c2515ae9c5ee0a78f1 (patch)
tree07a6541508852bed44fe3db63d7963239402dc67
parent6fa2ae30bbfa0fb0919fcd0dd3b96b185594c7f1 (diff)
ath79: add support for D-Link COVR-C1200 A1
The COVR-C1200 devices are sold as "Whole Home Mesh Wi-Fi" sets in packs of two (COVR-C1202) and three (COVR-C1203). Specifications: * QCA9563, 16 MiB flash, 128 MiB RAM, 2x3:2 802.11n * QCA9886 2x2:2 801.11ac Wave 2 * AR8337, 2 Gigabit ports (1: WAN; 2: LAN) * USB Type-C power connector (5V, 3A) Installation COVR Point A: * In factory reset state: OEM Web UI is at 192.168.0.50 no DHCP, skip wizard by directly accessing: http://192.168.0.50/UpdateFirmware_Simple.html * After completing setup wizard: Web UI is at 192.168.0.1 DHCP enabled, login with empty password * Flash factory.bin * Perform a factory reset to restore OpenWrt UCI defaults Installation COVR Points B: * OEM Web UI is at 192.168.0.50, no DHCP, empty password * Flash factory.bin * Perform a factory reset to restore OpenWrt UCI defaults Recovery: * Keep reset button pressed during power on * Recovery Web UI is at 192.168.0.50, no DHCP * Flash factory.bin used to work best with Chromium-based browsers or curl: curl -F firmware=@factory.bin \ http://192.168.0.50/upgrade.cgi since this fails to work on modern Linux systems, there is also a script dlink_recovery_upload.py Signed-off-by: Sebastian Schaper <openwrt@sebastianschaper.net>
4 files changed, 60 insertions, 0 deletions
diff --git a/target/linux/ath79/dts/qca9563_dlink_covr-c1200-a1.dts b/target/linux/ath79/dts/qca9563_dlink_covr-c1200-a1.dts
new file mode 100644
index 0000000000..b4f0bb3b64
--- /dev/null
+++ b/target/linux/ath79/dts/qca9563_dlink_covr-c1200-a1.dts
@@ -0,0 +1,40 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+
+#include "qca9563_dlink_covr.dtsi"
+
+/ {
+ compatible = "dlink,covr-c1200-a1", "qca,qca9563";
+ model = "D-Link COVR-C1200 A1";
+
+ aliases {
+ led-boot = &led_power_orange;
+ led-failsafe = &led_power_red;
+ led-running = &led_power_white;
+ led-upgrade = &led_power_red;
+ };
+
+ leds {
+ compatible = "gpio-leds";
+ pinctrl-names = "default";
+ pinctrl-0 = <&jtag_disable_pins>;
+
+ led_power_red: power_red {
+ function = LED_FUNCTION_POWER;
+ color = <LED_COLOR_ID_RED>;
+ gpios = <&gpio 6 GPIO_ACTIVE_HIGH>;
+ };
+
+ led_power_white: power_white {
+ function = LED_FUNCTION_POWER;
+ color = <LED_COLOR_ID_WHITE>;
+ gpios = <&gpio 7 GPIO_ACTIVE_HIGH>;
+ };
+
+ led_power_orange: power_orange {
+ function = LED_FUNCTION_POWER;
+ color = <LED_COLOR_ID_ORANGE>;
+ gpios = <&gpio 8 GPIO_ACTIVE_HIGH>;
+ default-state = "on";
+ };
+ };
+};
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 4e08860cfa..6c1cb86235 100644
--- a/target/linux/ath79/generic/base-files/etc/board.d/02_network
+++ b/target/linux/ath79/generic/base-files/etc/board.d/02_network
@@ -292,6 +292,10 @@ ath79_setup_interfaces()
ucidef_add_switch "switch0" \
"0@eth0" "2:wan" "3:lan" "4:lan"
;;
+ dlink,covr-c1200-a1)
+ ucidef_add_switch "switch0" \
+ "0@eth0" "1:wan" "2:lan"
+ ;;
dlink,covr-p2500-a1)
ucidef_add_switch "switch0" \
"0@eth0" "1:lan" "2:lan" "3:wan" "4:plc"
@@ -644,6 +648,11 @@ ath79_setup_macs()
devolo,magic-2-wifi)
label_mac=$(macaddr_add "$(mtd_get_mac_binary art 0x1002)" 3)
;;
+ dlink,covr-c1200-a1)
+ lan_mac=$(mtd_get_mac_ascii art "protest_lan_mac")
+ wan_mac=$(mtd_get_mac_ascii art "protest_wan_mac")
+ label_mac=$lan_mac
+ ;;
dlink,covr-p2500-a1)
lan_mac=$(mtd_get_mac_ascii art "protest_lan_mac")
wan_mac=$(mtd_get_mac_ascii art "protest_lan_mac")
diff --git a/target/linux/ath79/generic/base-files/etc/hotplug.d/ieee80211/10_fix_wifi_mac b/target/linux/ath79/generic/base-files/etc/hotplug.d/ieee80211/10_fix_wifi_mac
index 9574d8a17d..b90e382223 100644
--- a/target/linux/ath79/generic/base-files/etc/hotplug.d/ieee80211/10_fix_wifi_mac
+++ b/target/linux/ath79/generic/base-files/etc/hotplug.d/ieee80211/10_fix_wifi_mac
@@ -17,6 +17,7 @@ case "$board" in
adtran,bsap1840)
macaddr_add "$(mtd_get_mac_binary 'Board data' 2)" $(($PHYNBR * 8 + 1)) > /sys${DEVPATH}/macaddress
;;
+ dlink,covr-c1200-a1|\
dlink,covr-p2500-a1)
[ "$PHYNBR" -eq 0 ] && \
mtd_get_mac_ascii art "protest_ath1_mac" > /sys${DEVPATH}/macaddress
diff --git a/target/linux/ath79/image/generic.mk b/target/linux/ath79/image/generic.mk
index d5d8aa5592..e7960efbaa 100644
--- a/target/linux/ath79/image/generic.mk
+++ b/target/linux/ath79/image/generic.mk
@@ -1021,6 +1021,16 @@ define Device/dlink_covr
append-loader-okli-uimage $(1) | pad-to 15616k
endef
+define Device/dlink_covr-c1200-a1
+ $(Device/dlink_covr)
+ DEVICE_MODEL := COVR-C1200
+ DEVICE_VARIANT := A1
+ IMAGES += factory.bin
+ IMAGE/factory.bin := $$(IMAGE/recovery.bin) | \
+ dlink-sge-signature COVR-C1200 | dlink-sge-image COVR-C1200
+endef
+TARGET_DEVICES += dlink_covr-c1200-a1
+
define Device/dlink_covr-p2500-a1
$(Device/dlink_covr)
DEVICE_MODEL := COVR-P2500