ath79: Add support for Ubiquiti Nanostation AC
authorTobias Schramm <tobleminer@gmail.com>
Tue, 4 Sep 2018 00:08:01 +0000 (02:08 +0200)
committerMathias Kresin <dev@kresin.me>
Sun, 7 Oct 2018 08:46:20 +0000 (10:46 +0200)
5 GHz AC wireless outdoor PoE CPE with internal 2.4 GHz management radio

CPU:    Atheros AR9342 SoC
RAM:    64 MB DDR2
Flash:  16 MB NOR SPI
Switch: QCA8334
Ports:  2 GbE ports (1x PoE in, 1x PoE passthrough)
WLAN:   5 GHz QCA899X (PCI) and 2.4 GHZ AR9342

Successor to the old NanoStation M5 with AC wireless.

The integrated QCA899X is a Ubiquiti branded part with modified vendor and
product id (0777:11ac9).

Serial

Serial settings: 115200, 8N1

* = plated through hole
0 = nylon screw

      [Top of device]
+--------------------------+
|    [label]               |
|  0                       |
|                    0     |
|         [ubnt]           |
|         [logo]  3V3  *   |
|                  TX  *   |
|                  RX  *   |
|                 GND  *   |
|                          |
|                      *   |
|                      *   |
|                      *   |
|                      *   |
|    0                     |
|                 0        |
|                          |
|                          |

Installation

1. Connect to serial header on device
2. Power on device and enter uboot console
3. Set up tftp server serving an openwrt initramfs build
4. Load initramfs build using the command tftpboot in the uboot cli
5. Boot the loaded image using the command bootm
6. Copy squashfs openwrt sysupgrade build to the booted device
7. Use mtd to write sysupgrade to partition "firmware"
8. Reboot and enjoy

Signed-off-by: Tobias Schramm <tobleminer@gmail.com>
target/linux/ath79/base-files/etc/board.d/01_leds
target/linux/ath79/base-files/etc/board.d/02_network
target/linux/ath79/base-files/etc/board.d/03_gpio_switches [new file with mode: 0755]
target/linux/ath79/base-files/etc/hotplug.d/firmware/11-ath10k-caldata
target/linux/ath79/dts/ar9342_ubnt_nanostation-ac.dts [new file with mode: 0644]
target/linux/ath79/image/generic-ubnt.mk

index 7ec5300917426e9169ec3953c42f6c9b6be45f2f..99646ad678141023010a3962785e89dc7a103eb6 100755 (executable)
@@ -101,6 +101,13 @@ ubnt,rocket-m)
        ucidef_set_led_rssi "rssimediumhigh" "RSSIMEDIUMHIGH" "ubnt:green:link3" "wlan0" "51" "100"
        ucidef_set_led_rssi "rssihigh" "RSSIHIGH" "ubnt:green:link4" "wlan0" "76" "100"
        ;;
+ubnt,nanostation-ac)
+       ucidef_set_rssimon "wlan0" "200000" "1"
+       ucidef_set_led_rssi "rssilow" "RSSILOW" "ubnt:blue:rssi0" "wlan0" "1" "100"
+       ucidef_set_led_rssi "rssimediumlow" "RSSIMEDIUMLOW" "ubnt:blue:rssi1" "wlan0" "26" "100"
+       ucidef_set_led_rssi "rssimediumhigh" "RSSIMEDIUMHIGH" "ubnt:blue:rssi2" "wlan0" "51" "100"
+       ucidef_set_led_rssi "rssihigh" "RSSIHIGH" "ubnt:blue:rssi3" "wlan0" "76" "100"
+       ;;
 wd,mynet-wifi-rangeextender)
        ucidef_set_led_netdev "lan" "LAN" "$boardname:green:lan" "eth0"
        ucidef_set_rssimon "wlan0" "200000" "1"
index 30577a1a9f3709aa6a80acb4a89e605f5273fbdb..f782affe34a6fb73614e7c9b7d52520ad3dad495 100755 (executable)
@@ -161,6 +161,7 @@ ath79_setup_interfaces()
                ucidef_add_switch "switch0" \
                        "0@eth1" "2:lan:3" "3:lan:2" "4:lan:1"
                ;;
+       ubnt,nanostation-ac|\
        ubnt,unifiac-mesh-pro|\
        ubnt,unifiac-pro)
                ucidef_add_switch "switch0" \
diff --git a/target/linux/ath79/base-files/etc/board.d/03_gpio_switches b/target/linux/ath79/base-files/etc/board.d/03_gpio_switches
new file mode 100755 (executable)
index 0000000..4af9845
--- /dev/null
@@ -0,0 +1,20 @@
+#!/bin/sh
+#
+# Copyright (C) 2018 OpenWrt.org
+#
+
+. /lib/functions/uci-defaults.sh
+
+board_config_update
+
+board=$(board_name)
+
+case "$board" in
+ubnt,nanostation-ac)
+       ucidef_add_gpio_switch "poe_passthrough" "PoE Passthrough" "3"
+       ;;
+esac
+
+board_config_flush
+
+exit 0
index ec490dda7faa0ee7da590308a363b89580879aab..9365d67e8534309eed8d37986e7f13334849f971 100644 (file)
@@ -111,6 +111,7 @@ case "$FIRMWARE" in
        ubnt,unifiac-lite|\
        ubnt,unifiac-mesh|\
        ubnt,unifiac-mesh-pro|\
+       ubnt,nanostation-ac|\
        ubnt,nanostation-ac-loco|\
        ubnt,unifiac-pro)
                ath10kcal_extract "EEPROM" 20480 2116
diff --git a/target/linux/ath79/dts/ar9342_ubnt_nanostation-ac.dts b/target/linux/ath79/dts/ar9342_ubnt_nanostation-ac.dts
new file mode 100644 (file)
index 0000000..164587d
--- /dev/null
@@ -0,0 +1,78 @@
+// SPDX-License-Identifier: GPL-2.0
+/dts-v1/;
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+
+#include "ar9342_ubnt_wa.dtsi"
+
+/ {
+       compatible = "ubnt,nanostation-ac", "ubnt,wa";
+       model = "Ubiquiti Nanostation AC (WA)";
+
+       gpio-leds {
+               compatible = "gpio-leds";
+
+               rssi0 {
+                       label = "ubnt:blue:rssi0";
+                       gpios = <&gpio 11 GPIO_ACTIVE_LOW>;
+               };
+
+               rssi1 {
+                       label = "ubnt:blue:rssi1";
+                       gpios = <&gpio 16 GPIO_ACTIVE_LOW>;
+               };
+
+               rssi2 {
+                       label = "ubnt:blue:rssi2";
+                       gpios = <&gpio 13 GPIO_ACTIVE_LOW>;
+               };
+
+               rssi3 {
+                       label = "ubnt:blue:rssi3";
+                       gpios = <&gpio 14 GPIO_ACTIVE_LOW>;
+               };
+       };
+};
+
+&mdio0 {
+       status = "okay";
+
+       phy-mask = <4>;
+       phy0: ethernet-phy@0 {
+               phy-mode = "rgmii";
+               reg = <0>;
+
+               qca,ar8327-initvals = <
+                       0x04 0x07600000 /* PORT0 PAD MODE CTRL */
+                       0x58 0xffb7ffb7 /* LED_CTRL2 */
+                       0x5c 0x03ffff00 /* LED_CTRL3 */
+                       0x7c 0x0000007e /* PORT0_STATUS */
+               >;
+       };
+};
+
+&eth0 {
+       status = "okay";
+
+       /* default for ar934x, except for 1000M and 10M */
+       pll-data = <0x06000000 0x00000101 0x00001313>;
+
+       mtd-mac-address = <&eeprom 0x0>;
+
+       phy-mode = "rgmii";
+       phy-handle = <&phy0>;
+
+       gmac-config {
+               device = <&gmac>;
+               rxd-delay = <2>;
+               rxdv-delay = <2>;
+       };
+};
+
+&wmac {
+       status = "okay";
+
+       mtd-cal-data = <&eeprom 0x1000>;
+       mtd-mac-address = <&eeprom 0x1002>;
+};
index 86afa11deb8f5e43c4f72e7722c2a1b1d3f4ec6d..91cd5fc681c484c9435ae853a8346de14df99589 100644 (file)
@@ -84,6 +84,16 @@ define Device/ubnt_nano-m
 endef
 TARGET_DEVICES += ubnt_nano-m
 
+define Device/ubnt_nanostation-ac
+  $(Device/ubnt-wa)
+  DEVICE_TITLE := Ubiquiti Nanostation AC
+  DEVICE_PACKAGES += kmod-ath10k ath10k-firmware-qca988x
+  IMAGE_SIZE := 15744k
+  IMAGES += factory.bin
+  IMAGE/factory.bin := $$(IMAGE/sysupgrade.bin) | mkubntimage-split
+endef
+TARGET_DEVICES += ubnt_nanostation-ac
+
 define Device/ubnt_nanostation-ac-loco
   $(Device/ubnt-wa)
   DEVICE_TITLE := Ubiquiti Nanostation AC loco