diff mbox series

[OpenWrt-Devel,v6] ath79: add support for COMFAST CF-E130N v2

Message ID 20200327033255.19291-1-admin@kryma.net
State Accepted
Delegated to: Adrian Schmutzler
Headers show
Series [OpenWrt-Devel,v6] ath79: add support for COMFAST CF-E130N v2 | expand

Commit Message

Pavel Balan March 27, 2020, 3:32 a.m. UTC
From: Pavel Balan <admin@kryma.net>

This patch adds support for the COMFAST CF-E130N v2, an outdoor wireless
CPE with a single Ethernet port and a 802.11bgn radio.

Specifications:

 - QCA9531 SoC
 - 1x 10/100 Mbps Ethernet with PoE-in support
 - 64 MB of RAM (DDR2)
 - 16 MB of FLASH
 - 5 dBi built-in antenna
 - POWER/LAN/WLAN green LEDs
 - 4x RSSI LEDs (2x red, 2x green)
 - UART (115200 8N1) and GPIO (J9) headers on PCB

Flashing instructions:

 The original firmware is based on OpenWrt so a sysupgrade image can be
 installed via the stock web GUI.

 The U-boot bootloader also contains a backup TFTP client to upload the
 firmware from. Upon boot, it checks its ethernet network for the IP
 192.168.1.10. Host a TFTP server and provide the image to be flashed as
 file firmware_auto.bin.

Signed-off-by: Pavel Balan <admin@kryma.net>
---
Run-tested on hardware.

Changes since v5:

 Made partition@7e0000 read-only.

 Changed IMAGE_SIZE to 7936k.

---
 .../ath79/dts/qca9531_comfast_cf-e130n-v2.dts | 150 ++++++++++++++++++
 .../generic/base-files/etc/board.d/01_leds    |   8 +
 .../generic/base-files/etc/board.d/02_network |   1 +
 target/linux/ath79/image/generic.mk           |  10 ++
 4 files changed, 169 insertions(+)
 create mode 100644 target/linux/ath79/dts/qca9531_comfast_cf-e130n-v2.dts

Comments

Adrian Schmutzler May 24, 2020, 11:45 a.m. UTC | #1
Hi,

> -----Original Message-----
> From: openwrt-devel [mailto:openwrt-devel-bounces@lists.openwrt.org]
> On Behalf Of admin@kryma.net
> Sent: Freitag, 27. März 2020 04:33
> To: openwrt-devel@lists.openwrt.org
> Cc: Pavel Balan <admin@kryma.net>
> Subject: [OpenWrt-Devel] [PATCH v6] ath79: add support for COMFAST CF-
> E130N v2
> 
> From: Pavel Balan <admin@kryma.net>
> 
> This patch adds support for the COMFAST CF-E130N v2, an outdoor wireless
> CPE with a single Ethernet port and a 802.11bgn radio.
> 
> Specifications:
> 
>  - QCA9531 SoC
>  - 1x 10/100 Mbps Ethernet with PoE-in support
>  - 64 MB of RAM (DDR2)
>  - 16 MB of FLASH
>  - 5 dBi built-in antenna
>  - POWER/LAN/WLAN green LEDs
>  - 4x RSSI LEDs (2x red, 2x green)
>  - UART (115200 8N1) and GPIO (J9) headers on PCB
> 
> Flashing instructions:
> 
>  The original firmware is based on OpenWrt so a sysupgrade image can be
> installed via the stock web GUI.
> 
>  The U-boot bootloader also contains a backup TFTP client to upload the
> firmware from. Upon boot, it checks its ethernet network for the IP
> 192.168.1.10. Host a TFTP server and provide the image to be flashed as  file
> firmware_auto.bin.
> 
> Signed-off-by: Pavel Balan <admin@kryma.net>
> ---
> Run-tested on hardware.
> 
> Changes since v5:
> 
>  Made partition@7e0000 read-only.
> 
>  Changed IMAGE_SIZE to 7936k.

it looks like you have actually sent the v5 version of your patch again, as the v6-changes you report are not included. Anyway, I've added these (and a few others) myself and pushed the result to my staging tree here:

https://git.openwrt.org/?p=openwrt/staging/adrian.git;a=shortlog;h=refs/heads/staging

Please run this on your device and check whether everything is okay, so I can merge this.

Despite, I'd be interested whether the MAC address from calibration data (art 0x1002) is actually the same as art 0x0, so we can drop mtd-mac-address from wmac.

Best

Adrian

> 
> ---
>  .../ath79/dts/qca9531_comfast_cf-e130n-v2.dts | 150
> ++++++++++++++++++
>  .../generic/base-files/etc/board.d/01_leds    |   8 +
>  .../generic/base-files/etc/board.d/02_network |   1 +
>  target/linux/ath79/image/generic.mk           |  10 ++
>  4 files changed, 169 insertions(+)
>  create mode 100644 target/linux/ath79/dts/qca9531_comfast_cf-e130n-
> v2.dts
> 
> diff --git a/target/linux/ath79/dts/qca9531_comfast_cf-e130n-v2.dts
> b/target/linux/ath79/dts/qca9531_comfast_cf-e130n-v2.dts
> new file mode 100644
> index 0000000000..dc1e037307
> --- /dev/null
> +++ b/target/linux/ath79/dts/qca9531_comfast_cf-e130n-v2.dts
> @@ -0,0 +1,150 @@
> +// 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-e130n-v2", "qca,qca9531";
> +	model = "COMFAST CF-E130N v2";
> +
> +	aliases {
> +		serial0 = &uart;
> +		led-boot = &led_rssihigh;
> +		led-failsafe = &led_rssihigh;
> +		led-upgrade = &led_rssihigh;
> +		label-mac-device = &eth1;
> +	};
> +
> +	leds {
> +		compatible = "gpio-leds";
> +
> +		pinctrl-names = "default";
> +
> +		wlan {
> +			label = "cf-e130n-v2:green:wlan";
> +			gpios = <&gpio 0 GPIO_ACTIVE_LOW>;
> +			linux,default-trigger = "phy0tpt";
> +		};
> +
> +		lan {
> +			label = "cf-e130n-v2:green:lan";
> +			gpios = <&gpio 2 GPIO_ACTIVE_LOW>;
> +		};
> +
> +		unused {
> +			label = "cf-e130n-v2:green:unused";
> +			gpios = <&gpio 3 GPIO_ACTIVE_LOW>;
> +		};
> +
> +		rssilow {
> +			label = "cf-e130n-v2:red:rssilow";
> +			gpios = <&gpio 11 GPIO_ACTIVE_LOW>;
> +		};
> +
> +		rssimediumlow {
> +			label = "cf-e130n-v2:red:rssimediumlow";
> +			gpios = <&gpio 12 GPIO_ACTIVE_LOW>;
> +		};
> +
> +		rssimediumhigh {
> +			label = "cf-e130n-v2:green:rssimediumhigh";
> +			gpios = <&gpio 14 GPIO_ACTIVE_LOW>;
> +		};
> +
> +		led_rssihigh: rssihigh {
> +			label = "cf-e130n-v2:green:rssihigh";
> +			gpios = <&gpio 16 GPIO_ACTIVE_LOW>;
> +		};
> +	};
> +
> +	keys {
> +		compatible = "gpio-keys";
> +
> +		reset {
> +			label = "reset";
> +			linux,code = <KEY_RESTART>;
> +			gpios = <&gpio 17 GPIO_ACTIVE_LOW>;
> +			debounce-interval = <60>;
> +		};
> +	};
> +};
> +
> +&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 0x7c0000>;
> +			};
> +
> +			partition@7e0000 {
> +				compatible = "denx,uimage";
> +				label = "configs";
> +				reg = <0x7e0000 0x010000>;
> +			};
> +
> +			partition@7f0000 {
> +				label = "nvram";
> +				reg = <0x7f0000 0x010000>;
> +				read-only;
> +			};
> +		};
> +	};
> +};
> +
> +&uart {
> +	status = "okay";
> +
> +};
> +
> +&eth0 {
> +	compatible = "syscon", "simple-mfd";
> +};
> +
> +&eth1 {
> +	status = "okay";
> +
> +	phy-handle = <&swphy0>;
> +
> +	mtd-mac-address = <&art 0x0>;
> +
> +	gmac-config {
> +		device = <&gmac>;
> +		switch-phy-swap = <1>;
> +	};
> +};
> +
> +&wmac {
> +	status = "okay";
> +
> +	mtd-mac-address = <&art 0x0>;
> +	mtd-cal-data = <&art 0x1000>;
> +};
> 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 fbb0d0ea03..3046d34605 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
> @@ -47,6 +47,14 @@ comfast,cf-e120a-v3)
>  	ucidef_set_led_rssi "rssimediumhigh" "RSSIMEDIUMHIGH"
> "$boardname:green:rssimediumhigh" "wlan0" "51" "100"
>  	ucidef_set_led_rssi "rssihigh" "RSSIHIGH"
> "$boardname:green:rssihigh" "wlan0" "76" "100"
>  	;;
> +comfast,cf-e130n-v2)
> +	ucidef_set_led_netdev "lan" "LAN" "$boardname:green:lan" "eth0"
> +	ucidef_set_rssimon "wlan0" "200000" "1"
> +	ucidef_set_led_rssi "rssilow" "RSSILOW" "$boardname:red:rssilow"
> "wlan0" "1" "100"
> +	ucidef_set_led_rssi "rssimediumlow" "RSSIMEDIUMLOW"
> "$boardname:red:rssimediumlow" "wlan0" "26" "100"
> +	ucidef_set_led_rssi "rssimediumhigh" "RSSIMEDIUMHIGH"
> "$boardname:green:rssimediumhigh" "wlan0" "51" "100"
> +	ucidef_set_led_rssi "rssihigh" "RSSIHIGH"
> "$boardname:green:rssihigh" "wlan0" "76" "100"
> +	;;
>  comfast,cf-e313ac)
>  	ucidef_set_led_switch "lan" "LAN" "$boardname:green:lan"
> "switch0" "0x02"
>  	ucidef_set_led_netdev "wan" "WAN" "$boardname:green:wan"
> "eth1"
> 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 10ca213e70..b1ecc066fd 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-e130n-v2|\
>  	devolo,dvl1200i|\
>  	devolo,dvl1750c|\
>  	devolo,dvl1750i|\
> diff --git a/target/linux/ath79/image/generic.mk
> b/target/linux/ath79/image/generic.mk
> index 70631c20d0..256481ece3 100644
> --- a/target/linux/ath79/image/generic.mk
> +++ b/target/linux/ath79/image/generic.mk
> @@ -258,6 +258,16 @@ define Device/comfast_cf-e120a-v3  endef
> TARGET_DEVICES += comfast_cf-e120a-v3
> 
> +define Device/comfast_cf-e130n-v2
> +  ATH_SOC := qca9531
> +  DEVICE_VENDOR := COMFAST
> +  DEVICE_MODEL := CF-E130N
> +  DEVICE_VARIANT := v2
> +  DEVICE_PACKAGES := rssileds kmod-leds-gpio -swconfig -uboot-envtools
> +  IMAGE_SIZE := 8000k
> +endef
> +TARGET_DEVICES += comfast_cf-e130n-v2
> +
>  define Device/comfast_cf-e313ac
>    ATH_SOC := qca9531
>    DEVICE_VENDOR := COMFAST
> --
> 2.17.1
> 
> 
> _______________________________________________
> openwrt-devel mailing list
> openwrt-devel@lists.openwrt.org
> https://lists.openwrt.org/mailman/listinfo/openwrt-devel
Pavel Balan May 26, 2020, 9:29 p.m. UTC | #2
Hello. I have just run-tested the patch from your tree on actual 
hardware - the web GUI works fine, as do both internet and wireless 
interfaces.

An investigation into the art partition has shown that there are four 
sequential MAC addresses stored in memory.

The first and the third are back-to-back, addresses 0x0000 and 0x0006 
respectively.

The second one is located at 0x1002, and the fourth one is at 0x5006. I 
have no explanation for why it is like that.

To answer your question - it's not an exact match, but it's close to that.


P.S. Thank you for catching the v5/v6 difference - or lack of thereof, 
rather.

On 2020-05-24 7:45 a.m., mail@adrianschmutzler.de wrote:
> Hi,
>
>> -----Original Message-----
>> From: openwrt-devel [mailto:openwrt-devel-bounces@lists.openwrt.org]
>> On Behalf Of admin@kryma.net
>> Sent: Freitag, 27. März 2020 04:33
>> To: openwrt-devel@lists.openwrt.org
>> Cc: Pavel Balan <admin@kryma.net>
>> Subject: [OpenWrt-Devel] [PATCH v6] ath79: add support for COMFAST CF-
>> E130N v2
>>
>> From: Pavel Balan <admin@kryma.net>
>>
>> This patch adds support for the COMFAST CF-E130N v2, an outdoor wireless
>> CPE with a single Ethernet port and a 802.11bgn radio.
>>
>> Specifications:
>>
>>   - QCA9531 SoC
>>   - 1x 10/100 Mbps Ethernet with PoE-in support
>>   - 64 MB of RAM (DDR2)
>>   - 16 MB of FLASH
>>   - 5 dBi built-in antenna
>>   - POWER/LAN/WLAN green LEDs
>>   - 4x RSSI LEDs (2x red, 2x green)
>>   - UART (115200 8N1) and GPIO (J9) headers on PCB
>>
>> Flashing instructions:
>>
>>   The original firmware is based on OpenWrt so a sysupgrade image can be
>> installed via the stock web GUI.
>>
>>   The U-boot bootloader also contains a backup TFTP client to upload the
>> firmware from. Upon boot, it checks its ethernet network for the IP
>> 192.168.1.10. Host a TFTP server and provide the image to be flashed as  file
>> firmware_auto.bin.
>>
>> Signed-off-by: Pavel Balan <admin@kryma.net>
>> ---
>> Run-tested on hardware.
>>
>> Changes since v5:
>>
>>   Made partition@7e0000 read-only.
>>
>>   Changed IMAGE_SIZE to 7936k.
> it looks like you have actually sent the v5 version of your patch again, as the v6-changes you report are not included. Anyway, I've added these (and a few others) myself and pushed the result to my staging tree here:
>
> https://git.openwrt.org/?p=openwrt/staging/adrian.git;a=shortlog;h=refs/heads/staging
>
> Please run this on your device and check whether everything is okay, so I can merge this.
>
> Despite, I'd be interested whether the MAC address from calibration data (art 0x1002) is actually the same as art 0x0, so we can drop mtd-mac-address from wmac.
>
> Best
>
> Adrian
>
>> ---
>>   .../ath79/dts/qca9531_comfast_cf-e130n-v2.dts | 150
>> ++++++++++++++++++
>>   .../generic/base-files/etc/board.d/01_leds    |   8 +
>>   .../generic/base-files/etc/board.d/02_network |   1 +
>>   target/linux/ath79/image/generic.mk           |  10 ++
>>   4 files changed, 169 insertions(+)
>>   create mode 100644 target/linux/ath79/dts/qca9531_comfast_cf-e130n-
>> v2.dts
>>
>> diff --git a/target/linux/ath79/dts/qca9531_comfast_cf-e130n-v2.dts
>> b/target/linux/ath79/dts/qca9531_comfast_cf-e130n-v2.dts
>> new file mode 100644
>> index 0000000000..dc1e037307
>> --- /dev/null
>> +++ b/target/linux/ath79/dts/qca9531_comfast_cf-e130n-v2.dts
>> @@ -0,0 +1,150 @@
>> +// 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-e130n-v2", "qca,qca9531";
>> +	model = "COMFAST CF-E130N v2";
>> +
>> +	aliases {
>> +		serial0 = &uart;
>> +		led-boot = &led_rssihigh;
>> +		led-failsafe = &led_rssihigh;
>> +		led-upgrade = &led_rssihigh;
>> +		label-mac-device = &eth1;
>> +	};
>> +
>> +	leds {
>> +		compatible = "gpio-leds";
>> +
>> +		pinctrl-names = "default";
>> +
>> +		wlan {
>> +			label = "cf-e130n-v2:green:wlan";
>> +			gpios = <&gpio 0 GPIO_ACTIVE_LOW>;
>> +			linux,default-trigger = "phy0tpt";
>> +		};
>> +
>> +		lan {
>> +			label = "cf-e130n-v2:green:lan";
>> +			gpios = <&gpio 2 GPIO_ACTIVE_LOW>;
>> +		};
>> +
>> +		unused {
>> +			label = "cf-e130n-v2:green:unused";
>> +			gpios = <&gpio 3 GPIO_ACTIVE_LOW>;
>> +		};
>> +
>> +		rssilow {
>> +			label = "cf-e130n-v2:red:rssilow";
>> +			gpios = <&gpio 11 GPIO_ACTIVE_LOW>;
>> +		};
>> +
>> +		rssimediumlow {
>> +			label = "cf-e130n-v2:red:rssimediumlow";
>> +			gpios = <&gpio 12 GPIO_ACTIVE_LOW>;
>> +		};
>> +
>> +		rssimediumhigh {
>> +			label = "cf-e130n-v2:green:rssimediumhigh";
>> +			gpios = <&gpio 14 GPIO_ACTIVE_LOW>;
>> +		};
>> +
>> +		led_rssihigh: rssihigh {
>> +			label = "cf-e130n-v2:green:rssihigh";
>> +			gpios = <&gpio 16 GPIO_ACTIVE_LOW>;
>> +		};
>> +	};
>> +
>> +	keys {
>> +		compatible = "gpio-keys";
>> +
>> +		reset {
>> +			label = "reset";
>> +			linux,code = <KEY_RESTART>;
>> +			gpios = <&gpio 17 GPIO_ACTIVE_LOW>;
>> +			debounce-interval = <60>;
>> +		};
>> +	};
>> +};
>> +
>> +&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 0x7c0000>;
>> +			};
>> +
>> +			partition@7e0000 {
>> +				compatible = "denx,uimage";
>> +				label = "configs";
>> +				reg = <0x7e0000 0x010000>;
>> +			};
>> +
>> +			partition@7f0000 {
>> +				label = "nvram";
>> +				reg = <0x7f0000 0x010000>;
>> +				read-only;
>> +			};
>> +		};
>> +	};
>> +};
>> +
>> +&uart {
>> +	status = "okay";
>> +
>> +};
>> +
>> +&eth0 {
>> +	compatible = "syscon", "simple-mfd";
>> +};
>> +
>> +&eth1 {
>> +	status = "okay";
>> +
>> +	phy-handle = <&swphy0>;
>> +
>> +	mtd-mac-address = <&art 0x0>;
>> +
>> +	gmac-config {
>> +		device = <&gmac>;
>> +		switch-phy-swap = <1>;
>> +	};
>> +};
>> +
>> +&wmac {
>> +	status = "okay";
>> +
>> +	mtd-mac-address = <&art 0x0>;
>> +	mtd-cal-data = <&art 0x1000>;
>> +};
>> 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 fbb0d0ea03..3046d34605 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
>> @@ -47,6 +47,14 @@ comfast,cf-e120a-v3)
>>   	ucidef_set_led_rssi "rssimediumhigh" "RSSIMEDIUMHIGH"
>> "$boardname:green:rssimediumhigh" "wlan0" "51" "100"
>>   	ucidef_set_led_rssi "rssihigh" "RSSIHIGH"
>> "$boardname:green:rssihigh" "wlan0" "76" "100"
>>   	;;
>> +comfast,cf-e130n-v2)
>> +	ucidef_set_led_netdev "lan" "LAN" "$boardname:green:lan" "eth0"
>> +	ucidef_set_rssimon "wlan0" "200000" "1"
>> +	ucidef_set_led_rssi "rssilow" "RSSILOW" "$boardname:red:rssilow"
>> "wlan0" "1" "100"
>> +	ucidef_set_led_rssi "rssimediumlow" "RSSIMEDIUMLOW"
>> "$boardname:red:rssimediumlow" "wlan0" "26" "100"
>> +	ucidef_set_led_rssi "rssimediumhigh" "RSSIMEDIUMHIGH"
>> "$boardname:green:rssimediumhigh" "wlan0" "51" "100"
>> +	ucidef_set_led_rssi "rssihigh" "RSSIHIGH"
>> "$boardname:green:rssihigh" "wlan0" "76" "100"
>> +	;;
>>   comfast,cf-e313ac)
>>   	ucidef_set_led_switch "lan" "LAN" "$boardname:green:lan"
>> "switch0" "0x02"
>>   	ucidef_set_led_netdev "wan" "WAN" "$boardname:green:wan"
>> "eth1"
>> 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 10ca213e70..b1ecc066fd 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-e130n-v2|\
>>   	devolo,dvl1200i|\
>>   	devolo,dvl1750c|\
>>   	devolo,dvl1750i|\
>> diff --git a/target/linux/ath79/image/generic.mk
>> b/target/linux/ath79/image/generic.mk
>> index 70631c20d0..256481ece3 100644
>> --- a/target/linux/ath79/image/generic.mk
>> +++ b/target/linux/ath79/image/generic.mk
>> @@ -258,6 +258,16 @@ define Device/comfast_cf-e120a-v3  endef
>> TARGET_DEVICES += comfast_cf-e120a-v3
>>
>> +define Device/comfast_cf-e130n-v2
>> +  ATH_SOC := qca9531
>> +  DEVICE_VENDOR := COMFAST
>> +  DEVICE_MODEL := CF-E130N
>> +  DEVICE_VARIANT := v2
>> +  DEVICE_PACKAGES := rssileds kmod-leds-gpio -swconfig -uboot-envtools
>> +  IMAGE_SIZE := 8000k
>> +endef
>> +TARGET_DEVICES += comfast_cf-e130n-v2
>> +
>>   define Device/comfast_cf-e313ac
>>     ATH_SOC := qca9531
>>     DEVICE_VENDOR := COMFAST
>> --
>> 2.17.1
>>
>>
>> _______________________________________________
>> openwrt-devel mailing list
>> openwrt-devel@lists.openwrt.org
>> https://lists.openwrt.org/mailman/listinfo/openwrt-devel
>>
>> _______________________________________________
>> openwrt-devel mailing list
>> openwrt-devel@lists.openwrt.org
>> https://lists.openwrt.org/mailman/listinfo/openwrt-devel
Adrian Schmutzler May 26, 2020, 11:16 p.m. UTC | #3
Hi,

> Hello. I have just run-tested the patch from your tree on actual hardware - the web GUI works fine, as do both internet and wireless interfaces.
> An investigation into the art partition has shown that there are four sequential MAC addresses stored in memory.
> The first and the third are back-to-back, addresses 0x0000 and 0x0006 respectively.
> The second one is located at 0x1002, and the fourth one is at 0x5006. I have no explanation for why it is like that.
> To answer your question - it's not an exact match, but it's close to that.

That makes perfect sense, as these are the locations of the addresses in the calibration data.

Can you translate that into a list of addresses (you may just report the last one or two bytes ...) related to the locations?

0x0 aa:bb:cc:xx:xx:f1
0x6 aa:bb:cc:xx:xx:f2
etc.

How are these addresses assigned on OEM firmware (lan,wan,2g,5g)?

Best

Adrian
diff mbox series

Patch

diff --git a/target/linux/ath79/dts/qca9531_comfast_cf-e130n-v2.dts b/target/linux/ath79/dts/qca9531_comfast_cf-e130n-v2.dts
new file mode 100644
index 0000000000..dc1e037307
--- /dev/null
+++ b/target/linux/ath79/dts/qca9531_comfast_cf-e130n-v2.dts
@@ -0,0 +1,150 @@ 
+// 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-e130n-v2", "qca,qca9531";
+	model = "COMFAST CF-E130N v2";
+
+	aliases {
+		serial0 = &uart;
+		led-boot = &led_rssihigh;
+		led-failsafe = &led_rssihigh;
+		led-upgrade = &led_rssihigh;
+		label-mac-device = &eth1;
+	};
+
+	leds {
+		compatible = "gpio-leds";
+
+		pinctrl-names = "default";
+
+		wlan {
+			label = "cf-e130n-v2:green:wlan";
+			gpios = <&gpio 0 GPIO_ACTIVE_LOW>;
+			linux,default-trigger = "phy0tpt";
+		};
+
+		lan {
+			label = "cf-e130n-v2:green:lan";
+			gpios = <&gpio 2 GPIO_ACTIVE_LOW>;
+		};
+
+		unused {
+			label = "cf-e130n-v2:green:unused";
+			gpios = <&gpio 3 GPIO_ACTIVE_LOW>;
+		};
+
+		rssilow {
+			label = "cf-e130n-v2:red:rssilow";
+			gpios = <&gpio 11 GPIO_ACTIVE_LOW>;
+		};
+
+		rssimediumlow {
+			label = "cf-e130n-v2:red:rssimediumlow";
+			gpios = <&gpio 12 GPIO_ACTIVE_LOW>;
+		};
+
+		rssimediumhigh {
+			label = "cf-e130n-v2:green:rssimediumhigh";
+			gpios = <&gpio 14 GPIO_ACTIVE_LOW>;
+		};
+
+		led_rssihigh: rssihigh {
+			label = "cf-e130n-v2:green:rssihigh";
+			gpios = <&gpio 16 GPIO_ACTIVE_LOW>;
+		};
+	};
+
+	keys {
+		compatible = "gpio-keys";
+
+		reset {
+			label = "reset";
+			linux,code = <KEY_RESTART>;
+			gpios = <&gpio 17 GPIO_ACTIVE_LOW>;
+			debounce-interval = <60>;
+		};
+	};
+};
+
+&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 0x7c0000>;
+			};
+
+			partition@7e0000 {
+				compatible = "denx,uimage";
+				label = "configs";
+				reg = <0x7e0000 0x010000>;
+			};
+
+			partition@7f0000 {
+				label = "nvram";
+				reg = <0x7f0000 0x010000>;
+				read-only;
+			};
+		};
+	};
+};
+
+&uart {
+	status = "okay";
+
+};
+
+&eth0 {
+	compatible = "syscon", "simple-mfd";
+};
+
+&eth1 {
+	status = "okay";
+
+	phy-handle = <&swphy0>;
+
+	mtd-mac-address = <&art 0x0>;
+
+	gmac-config {
+		device = <&gmac>;
+		switch-phy-swap = <1>;
+	};
+};
+
+&wmac {
+	status = "okay";
+
+	mtd-mac-address = <&art 0x0>;
+	mtd-cal-data = <&art 0x1000>;
+};
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 fbb0d0ea03..3046d34605 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
@@ -47,6 +47,14 @@  comfast,cf-e120a-v3)
 	ucidef_set_led_rssi "rssimediumhigh" "RSSIMEDIUMHIGH" "$boardname:green:rssimediumhigh" "wlan0" "51" "100"
 	ucidef_set_led_rssi "rssihigh" "RSSIHIGH" "$boardname:green:rssihigh" "wlan0" "76" "100"
 	;;
+comfast,cf-e130n-v2)
+	ucidef_set_led_netdev "lan" "LAN" "$boardname:green:lan" "eth0"
+	ucidef_set_rssimon "wlan0" "200000" "1"
+	ucidef_set_led_rssi "rssilow" "RSSILOW" "$boardname:red:rssilow" "wlan0" "1" "100"
+	ucidef_set_led_rssi "rssimediumlow" "RSSIMEDIUMLOW" "$boardname:red:rssimediumlow" "wlan0" "26" "100"
+	ucidef_set_led_rssi "rssimediumhigh" "RSSIMEDIUMHIGH" "$boardname:green:rssimediumhigh" "wlan0" "51" "100"
+	ucidef_set_led_rssi "rssihigh" "RSSIHIGH" "$boardname:green:rssihigh" "wlan0" "76" "100"
+	;;
 comfast,cf-e313ac)
 	ucidef_set_led_switch "lan" "LAN" "$boardname:green:lan" "switch0" "0x02"
 	ucidef_set_led_netdev "wan" "WAN" "$boardname:green:wan" "eth1"
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 10ca213e70..b1ecc066fd 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-e130n-v2|\
 	devolo,dvl1200i|\
 	devolo,dvl1750c|\
 	devolo,dvl1750i|\
diff --git a/target/linux/ath79/image/generic.mk b/target/linux/ath79/image/generic.mk
index 70631c20d0..256481ece3 100644
--- a/target/linux/ath79/image/generic.mk
+++ b/target/linux/ath79/image/generic.mk
@@ -258,6 +258,16 @@  define Device/comfast_cf-e120a-v3
 endef
 TARGET_DEVICES += comfast_cf-e120a-v3
 
+define Device/comfast_cf-e130n-v2
+  ATH_SOC := qca9531
+  DEVICE_VENDOR := COMFAST
+  DEVICE_MODEL := CF-E130N
+  DEVICE_VARIANT := v2
+  DEVICE_PACKAGES := rssileds kmod-leds-gpio -swconfig -uboot-envtools
+  IMAGE_SIZE := 8000k
+endef
+TARGET_DEVICES += comfast_cf-e130n-v2
+
 define Device/comfast_cf-e313ac
   ATH_SOC := qca9531
   DEVICE_VENDOR := COMFAST