diff options
author | Roman Hampel <rhamp@arcor.de> | 2020-03-20 17:32:30 +0100 |
---|---|---|
committer | Adrian Schmutzler <freifunk@adrianschmutzler.de> | 2020-04-09 01:06:37 +0200 |
commit | cd510e775bc7c806b3ad6981221258385554b9e8 (patch) | |
tree | 15cc47f1513a932e81b8bf9d7479b85d8967e29f | |
parent | b299002877c801202c3b61d5e09865e88f506176 (diff) | |
download | upstream-cd510e775bc7c806b3ad6981221258385554b9e8.tar.gz upstream-cd510e775bc7c806b3ad6981221258385554b9e8.tar.bz2 upstream-cd510e775bc7c806b3ad6981221258385554b9e8.zip |
ath79: add support for Comfast CF-WR752AC v1
Specifications:
- Qualcomm QCA9531 + QCA9886
- dual band, antenna 2*3dBi
- Output power 50mW (17dBm)
- 1x 10/100 Mbps LAN RJ45
- 128 MB RAM / 16 MB FLASH (w25q128)
- 3 LEDs (red/green/blue)
incorporated in
"color wheel reset switch"
- UART 115200 8N1
Flashing instructions:
The U-boot bootloader contains a recovery HTTP server
to upload the firmware. Push the reset button while powering the
device on and keep it pressed for ~10 seconds. The device's LEDs will
blink several times and the recovery page will be at
http://192.168.1.1; use it to upload the sysupgrade image.
Alternatively, the original firmware is based on OpenWrt so a
sysupgrade image can be installed via the stock web GUI. Settings from
the original firmware will be saved and restored on the new one, so a
factory reset will be needed. To do so, once the new firmware is flashed,
enter into failsafe mode by pressing the reset button several times during
the boot process, until it starts flashing. Once in failsafe mode, perform
a factory reset as usual.
LED-Info:
The LEDs on the Comfast stock fw have a very proprietary behaviour,
corresponding to the user selected working mode (AP, ROUTER or REPEATER).
In the first two cases, only blue is used for status and LAN signaling. When
using the latter, blue is always off (except for sysupgrade), either red
signals bad rssi on master-link, or green good. Since the default working
mode of OpenWrt resembles that of a router/AP, the default behavior is
implemented accordingly.
MAC addresses (art partition):
location address (example) use in vendor firmware
0x0 xx:xx:xx:xx:xc:f8 -> eth0
0x6 xx:xx:xx:xx:xc:fa -> wlan5g (+2)
0x1002 xx:xx:xx:xx:xc:f9 -> not used
0x5006 xx:xx:xx:xx:xc:fb -> not used
--- xx:xx:xx:xx:xd:02 -> wlan2g (+10)
The same strange situation has already been observed and documented
for COMFAST CF-E560AC.
Signed-off-by: Roman Hampel <rhamp@arcor.de>
Co-developed-by: Joao Albuquerque <joaohccalbu@gmail.com>
Signed-off-by: Joao Albuquerque <joaohccalbu@gmail.com>
[adjust and extend commit message, rebase, minor DTS adjustments,
add correct MAC address for wmac, change RSSI LED names and behavior]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
5 files changed, 151 insertions, 4 deletions
diff --git a/target/linux/ath79/dts/qca9531_comfast_cf-wr752ac-v1.dts b/target/linux/ath79/dts/qca9531_comfast_cf-wr752ac-v1.dts new file mode 100644 index 0000000000..4530c59031 --- /dev/null +++ b/target/linux/ath79/dts/qca9531_comfast_cf-wr752ac-v1.dts @@ -0,0 +1,133 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT +/dts-v1/; + +#include <dt-bindings/gpio/gpio.h> +#include <dt-bindings/input/input.h> + +#include "qca953x.dtsi" + +/ { + compatible = "comfast,cf-wr752ac-v1", "qca,qca9531"; + model = "COMFAST CF-WR752AC v1"; + + aliases { + serial0 = &uart; + led-boot = &led_lan; + led-failsafe = &led_lan; + led-upgrade = &led_lan; + }; + + leds { + compatible = "gpio-leds"; + + pinctrl-names = "default"; + pinctrl-0 = <&jtag_disable_pins &pinmux_led_rssihigh &pinmux_led_rssilow>; + + led_lan: lan { + label = "cf-wr752ac-v1:blue:lan"; + gpios = <&gpio 12 GPIO_ACTIVE_LOW>; + }; + + rssihigh { + label = "cf-wr752ac-v1:green:rssihigh"; + gpios = <&gpio 15 GPIO_ACTIVE_LOW>; + }; + + rssilow { + label = "cf-wr752ac-v1:red:rssilow"; + gpios = <&gpio 11 GPIO_ACTIVE_LOW>; + }; + }; + + keys { + compatible = "gpio-keys"; + + button { + label = "reset"; + linux,code = <KEY_RESTART>; + gpios = <&gpio 17 GPIO_ACTIVE_LOW>; + debounce-interval = <60>; + }; + }; +}; + +&pinmux { + pinmux_led_rssihigh: pinmux_led_rssihigh { + pinctrl-single,bits = <0xc 0x0 0xff000000>; + }; + + pinmux_led_rssilow: pinmux_led_rssilow { + pinctrl-single,bits = <0x8 0x0 0xff000000>; + }; +}; + +&pcie0 { + status = "okay"; +}; + +&spi { + status = "okay"; + + num-cs = <1>; + + flash@0 { + compatible = "jedec,spi-nor"; + reg = <0>; + spi-max-frequency = <25000000>; + + partitions { + compatible = "fixed-partitions"; + #address-cells = <1>; + #size-cells = <1>; + + partition@0 { + label = "u-boot"; + reg = <0x000000 0x010000>; + read-only; + }; + + art: partition@10000 { + label = "art"; + reg = <0x010000 0x010000>; + read-only; + }; + + partition@20000 { + compatible = "denx,uimage"; + label = "firmware"; + reg = <0x020000 0xfd0000>; + }; + + partition@ff0000 { + label = "nvram"; + reg = <0xff0000 0x010000>; + read-only; + }; + }; + }; +}; + +&uart { + status = "okay"; +}; + +ð0 { + status = "okay"; + + phy-handle = <&swphy4>; + + mtd-mac-address = <&art 0x0>; +}; + +ð1 { + compatible = "syscon", "simple-mfd"; +}; + +&wmac { + status = "okay"; + + mtd-cal-data = <&art 0x1000>; + + mtd-mac-address = <&art 0x0>; + mtd-mac-address-increment = <10>; +}; 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 8e84ca25bf..b946d0c63b 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 @@ -84,6 +84,10 @@ comfast,cf-ew72) ucidef_set_led_switch "lan" "LAN" "$boardname:blue:lan" "switch0" "0x02" ucidef_set_led_netdev "wan" "WAN" "$boardname:blue:wan" "eth1" ;; +comfast,cf-wr752ac-v1|\ +engenius,ecb1750) + ucidef_set_led_netdev "lan" "LAN" "$boardname:blue:lan" "eth0" + ;; devolo,magic-2-wifi) ucidef_set_led_netdev "plcw" "dLAN" "devolo:white:dlan" "eth0.1" "rx" ;; @@ -93,9 +97,6 @@ dlink,dir-842-c3|\ dlink,dir-859-a1) ucidef_set_led_switch "internet" "WAN" "$boardname:green:internet" "switch0" "0x20" ;; -engenius,ecb1750) - ucidef_set_led_netdev "lan" "LAN" "$boardname:blue:lan" "eth0" - ;; engenius,ews511ap) ucidef_set_led_netdev "lan1" "LAN1" "$boardname:blue:lan1" "eth1" ucidef_set_led_netdev "lan2" "LAN2" "$boardname:blue:lan2" "eth0" 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 48bdf657d0..77855d7ab7 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 @@ -14,6 +14,7 @@ ath79_setup_interfaces() alfa-network,ap121f|\ aruba,ap-105|\ avm,fritz300e|\ + comfast,cf-wr752ac-v1|\ devolo,dvl1200i|\ devolo,dvl1750c|\ devolo,dvl1750i|\ diff --git a/target/linux/ath79/generic/base-files/etc/hotplug.d/firmware/11-ath10k-caldata b/target/linux/ath79/generic/base-files/etc/hotplug.d/firmware/11-ath10k-caldata index 18bdfa2b22..c126d9df6a 100644 --- a/target/linux/ath79/generic/base-files/etc/hotplug.d/firmware/11-ath10k-caldata +++ b/target/linux/ath79/generic/base-files/etc/hotplug.d/firmware/11-ath10k-caldata @@ -141,7 +141,8 @@ case "$FIRMWARE" in rm /lib/firmware/ath10k/QCA9888/hw2.0/board-2.bin ;; comfast,cf-e560ac|\ - comfast,cf-ew72) + comfast,cf-ew72|\ + comfast,cf-wr752ac-v1) caldata_extract "art" 0x5000 0x2f20 ath10k_patch_mac $(macaddr_add $(mtd_get_mac_binary art 0x0) +2) ln -sf /lib/firmware/ath10k/pre-cal-pci-0000\:00\:00.0.bin \ diff --git a/target/linux/ath79/image/generic.mk b/target/linux/ath79/image/generic.mk index 87586492be..69067c9de0 100644 --- a/target/linux/ath79/image/generic.mk +++ b/target/linux/ath79/image/generic.mk @@ -356,6 +356,17 @@ define Device/comfast_cf-wr650ac-v2 endef TARGET_DEVICES += comfast_cf-wr650ac-v2 +define Device/comfast_cf-wr752ac-v1 + SOC := qca9531 + DEVICE_VENDOR := COMFAST + DEVICE_MODEL := CF-WR752AC + DEVICE_VARIANT := v1 + DEVICE_PACKAGES := kmod-usb2 kmod-ath10k-ct ath10k-firmware-qca9888-ct \ + -uboot-envtools + IMAGE_SIZE := 16192k +endef +TARGET_DEVICES += comfast_cf-wr752ac-v1 + define Device/devolo_dvl1200e SOC := qca9558 DEVICE_VENDOR := devolo |