[PATCH 1/2] ath79: add support for Mojo Networks AirTight C-75

Adrian Schmutzler mail at adrianschmutzler.de
Tue Dec 1 14:47:23 EST 2020


Hi,

> -----Original Message-----
> From: openwrt-devel [mailto:openwrt-devel-bounces at lists.openwrt.org]
> On Behalf Of Tomasz Maciej Nowak
> Sent: Dienstag, 1. Dezember 2020 18:36
> To: openwrt-devel at lists.openwrt.org
> Cc: Vladimir Georgievsky <vladimir.georgievsky at yahoo.com>
> Subject: [PATCH 1/2] ath79: add support for Mojo Networks AirTight C-75
> 
> Mojo Networks AirTight C-75 is a dual-band access point, also sold by
> WatchGuard under name AP320.
> 
> Specification
> SoC: Qualcomm Atheros QCA9550
> RAM: 128 MiB DDR2
> Flash: 2x 16 MiB SPI NOR
> WIFI: 2.4 GHz 3T3R integrated
>       5 GHz 3T3R QCA9890 oversized Mini PCIe card
> Ethernet: 2x 10/100/1000 Mbps QCA8334
>           port labeled LAN1 is PoE capable (802.3at)
> USB: 1x 2.0
> LEDs: 7x which two are GPIO controlled, four switch controlled, one
>       controlled by wireless driver
> Buttons: 1x GPIO controlled
> Serial: RJ-45 port, Cisco pinout
>         baud: 115200, parity: none, flow control: none
> JTAG: Yes, pins marked J1 on PCB
> 
> Installation
> 1. Prepare TFTP server with OpenWrt initramfs-kernel image.
> 2. Connect to one of LAN ports.
> 3. Connect to serial port.
> 4. Power on the device and when prompted to stop autoboot, hit any key.
> 5. Adjust "ipaddr" and "serverip" addresses in U-Boot environment, use
>    'setenv' to do that, then run following commands:
>     tftpboot 0x81000000 <openwrt_initramfs-kernel_image_name>
>     bootm 0x81000000
> 6. Wait about 1 minute for OpenWrt to boot.
> 7. Transfer OpenWrt sysupgrade image to /tmp directory and flash it
>    with:
>     sysupgrade -n /tmp/<openwrt_sysupgrade_image_name>
> 8. After flashing, the access point will reboot to OpenWrt. Wait few
>    minutes, until the Power LED stops blinking, then it's ready for
>    configuration.
> 
> Known issues
> Green power LED does not work.
> 
> Additional information
> The U-Boot fails to initialise ethernet ports correctly when a UART adapter is
> attached to UART pins (marked J3 on PCB).
> 
> Cc: Vladimir Georgievsky <vladimir.georgievsky at yahoo.com>
> Signed-of-by: Tomasz Maciej Nowak <tmn505 at gmail.com>
> ---
>  package/boot/uboot-envtools/files/ath79       |   1 +
>  target/linux/ath79/dts/qca9550_mojo_c-75.dts  | 173
> ++++++++++++++++++
>  .../generic/base-files/etc/board.d/02_network |   4 +
>  target/linux/ath79/image/generic.mk           |  11 ++
>  4 files changed, 189 insertions(+)
>  create mode 100644 target/linux/ath79/dts/qca9550_mojo_c-75.dts
> 
> diff --git a/package/boot/uboot-envtools/files/ath79
> b/package/boot/uboot-envtools/files/ath79
> index 259c52c77034..a6b52b370530 100644
> --- a/package/boot/uboot-envtools/files/ath79
> +++ b/package/boot/uboot-envtools/files/ath79
> @@ -20,6 +20,7 @@ alfa-network,n5q|\
>  alfa-network,pi-wifi4|\
>  alfa-network,r36a|\
>  allnet,all-wap02860ac|\
> +airtight,c-75|\

This is inconsistent with the other names. See more detailed comment below.

>  arduino,yun|\
>  buffalo,bhr-4grv2|\
>  devolo,magic-2-wifi|\
> diff --git a/target/linux/ath79/dts/qca9550_mojo_c-75.dts
> b/target/linux/ath79/dts/qca9550_mojo_c-75.dts
> new file mode 100644
> index 000000000000..51046a740a02
> --- /dev/null
> +++ b/target/linux/ath79/dts/qca9550_mojo_c-75.dts
> @@ -0,0 +1,173 @@
> +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
> +
> +#include <dt-bindings/gpio/gpio.h>
> +#include <dt-bindings/input/input.h>
> +
> +#include "qca955x.dtsi"

This include needs to be first (after the license).

> +
> +/ {
> +	model = "Mojo Networks AirTight C-75";
> +	compatible = "mojo,c-75", "qca,qca9550", "qca,qca9558";

Please decide for one name and then use that consistently. It appears to me that both Mojo Networks and Airtight Networks are different _vendor_ names (due to a rename)?

Then please decide for one and use that one consistently, i.e.
either
	model = "Mojo Networks C-75";
	compatible = "mojo,c-75", "qca,qca9550", "qca,qca9558";
or
	model = "Airtight Networks C-75";
	compatible = "airtight,c-75", "qca,qca9550", "qca,qca9558";

> +
> +	aliases {
> +		label-mac-device = &eth0;
> +		led-boot = &led_power;
> +		led-failsafe = &led_power;
> +		led-upgrade = &led_power;

No led-running?

> +	};
> +
> +	keys {
> +		compatible = "gpio-keys";
> +
> +		reset {
> +			linux,code = <KEY_RESTART>;
> +			gpios = <&gpio 17 GPIO_ACTIVE_LOW>;

missing label?

> +		};
> +	};
> +
> +	leds {
> +		compatible = "gpio-leds";
> +
> +		led_power: power {
> +			label = "amber:power";
> +			gpios = <&gpio 14 GPIO_ACTIVE_HIGH>;
> +			default-state = "on";
> +		};
> +
> +		wlan2g {
> +			label = "green:wlan2g";
> +			gpios = <&gpio 13 GPIO_ACTIVE_LOW>;
> +			linux,default-trigger = "phy1tpt";
> +		};
> +	};
> +};
> +
> +&eth0 {
> +	status = "okay";
> +
> +	mtd-mac-address = <&art 0x0>;
> +	phy-handle = <&phy0>;
> +	phy-mode = "rgmii";
> +	pll-data = <0xa6000000 0x00000101 0x00001616>; };
> +
> +&eth1 {
> +	status = "okay";
> +
> +	mtd-mac-address = <&art 0x6>;
> +	phy-mode = "sgmii";
> +	pll-data = <0x03000101 0x00000101 0x00001616>;
> +
> +	fixed-link {
> +		speed = <1000>;
> +		full-duplex;
> +	};
> +};
> +
> +&mdio0 {
> +	status = "okay";
> +
> +	phy0: ethernet-phy at 0 {
> +		reg = <0>;
> +		qca,ar8327-initvals = <
> +			0x0c 0x00080080
> +			0x04 0x07600000
> +			0x58 0xc935c935
> +			0x5c 0x03ffff00
> +			0x7c 0x0000007e
> +			0x94 0x0000007e
> +		>;
> +	};
> +};

Please move mdio0 up so it's either directly before or after eth0.

> +
> +&pcie0 {
> +	status = "okay";
> +
> +	wifi at 0,0 {
> +		compatible = "qcom,ath10k";
> +		reg = <0x0000 0 0 0 0>;
> +	};
> +};
> +
> +&spi {
> +	status = "okay";
> +
> +	num-cs = <2>;

num-cs can be dropped for ath79.

> +
> +	flash at 0 {
> +		compatible = "jedec,spi-nor";
> +		reg = <0>;
> +		spi-max-frequency = <25000000>;
> +
> +		partitions {
> +			compatible = "fixed-partitions";
> +			#address-cells = <1>;
> +			#size-cells = <1>;
> +
> +			partition at 0 {
> +				label = "u-boot";
> +				reg = <0x000000 0x040000>;
> +				read-only;
> +			};
> +
> +			partition at 40000 {
> +				label = "u-boot-env";
> +				reg = <0x040000 0x010000>;
> +			};
> +
> +			partition at 50000 {
> +				label = "wlandrv";
> +				reg = <0x050000 0x010000>;
> +				read-only;
> +			};
> +
> +			partition at 60000 {
> +				label = "firmware";
> +				reg = <0x060000 0xf90000>;
> +				compatible = "denx,uimage";
> +			};
> +
> +			art: partition at ff0000 {
> +				label = "art";
> +				reg = <0xff0000 0x010000>;
> +				read-only;
> +			};
> +		};
> +	};
> +
> +	flash at 1 {
> +		compatible = "jedec,spi-nor";
> +		reg = <1>;
> +		spi-max-frequency = <25000000>;
> +
> +		partitions {
> +			compatible = "fixed-partitions";
> +			#address-cells = <1>;
> +			#size-cells = <1>;
> +
> +			partition at 0 {
> +				label = "opt";
> +				reg = <0x0 0x1000000>;

read-only? or is that intended for user data?

> +			};
> +		};
> +	};
> +};
> +
> +&uart {
> +	status = "okay";
> +};
> +
> +&usb_phy0 {
> +	status = "okay";
> +};
> +
> +&usb0 {
> +	status = "okay";
> +};
> +
> +&wmac {
> +	status = "okay";
> +
> +	mtd-cal-data = <&art 0x1000>;
> +	mtd-mac-address = <&art 0x1002>;

mtd-mac-address can be dropped, this will get read from caldata automatically.

> +};
> 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 5c0195f6ffc9..02e4d6b78dd4 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
> @@ -248,6 +248,10 @@ ath79_setup_interfaces()
>  		ucidef_add_switch "switch0" \
>  			"0 at eth0" "2:lan:1" "3:lan:2" "4:lan:3" "5:lan:4"
> "1:wan"
>  		;;
> +	mojo,c-75)
> +		ucidef_add_switch "switch0" \
> +			"0 at eth0" "2:wan" "3:lan" "6 at eth1"
> +		;;

Interesting setup. Is this necessary or can one use
		ucidef_set_interfaces_lan_wan "eth1" "eth0"
instead? (Have to think about that myself ...)

Best

Adrian

>  	nec,wg1200cr|\
>  	qxwlan,e1700ac-v2-8m|\
>  	qxwlan,e1700ac-v2-16m|\
> diff --git a/target/linux/ath79/image/generic.mk
> b/target/linux/ath79/image/generic.mk
> index a0d5e7ab0190..0f90c00b9c43 100644
> --- a/target/linux/ath79/image/generic.mk
> +++ b/target/linux/ath79/image/generic.mk
> @@ -1192,6 +1192,17 @@ define Device/mercury_mw4530r-v1  endef
> TARGET_DEVICES += mercury_mw4530r-v1
> 
> +define Device/mojo_c-75
> +  SOC := qca9550
> +  DEVICE_VENDOR := Mojo Networks
> +  DEVICE_MODEL := AirTight C-75
> +  DEVICE_ALT0_VENDOR := WatchGuard
> +  DEVICE_ALT0_MODEL := AP320
> +  DEVICE_PACKAGES := ath10k-firmware-qca988x kmod-ath10k-ct kmod-
> usb2
> +  IMAGE_SIZE := 15936k
> +endef
> +TARGET_DEVICES += mojo_c-75
> +
>  define Device/nec_wg1200cr
>    SOC := qca9563
>    DEVICE_VENDOR := NEC
> --
> 2.29.2
> 
> 
> _______________________________________________
> openwrt-devel mailing list
> openwrt-devel at lists.openwrt.org
> https://lists.openwrt.org/mailman/listinfo/openwrt-devel
-------------- next part --------------
A non-text attachment was scrubbed...
Name: openpgp-digital-signature.asc
Type: application/pgp-signature
Size: 834 bytes
Desc: not available
URL: <http://lists.openwrt.org/pipermail/openwrt-devel/attachments/20201201/444d5388/attachment.sig>


More information about the openwrt-devel mailing list