[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 = ð0;
> + 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";
> + };
> + };
> +};
> +
> +ð0 {
> + status = "okay";
> +
> + mtd-mac-address = <&art 0x0>;
> + phy-handle = <&phy0>;
> + phy-mode = "rgmii";
> + pll-data = <0xa6000000 0x00000101 0x00001616>; };
> +
> +ð1 {
> + 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