From fa3c2676ab0ce5fbb648249da31e31bbc61a3e3d Mon Sep 17 00:00:00 2001 From: Tobias Schramm Date: Tue, 4 Sep 2018 02:08:01 +0200 Subject: [PATCH] ath79: Add support for Ubiquiti Nanostation AC 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 --- .../ath79/base-files/etc/board.d/01_leds | 7 ++ .../ath79/base-files/etc/board.d/02_network | 1 + .../base-files/etc/board.d/03_gpio_switches | 20 +++++ .../etc/hotplug.d/firmware/11-ath10k-caldata | 1 + .../ath79/dts/ar9342_ubnt_nanostation-ac.dts | 78 +++++++++++++++++++ target/linux/ath79/image/generic-ubnt.mk | 10 +++ 6 files changed, 117 insertions(+) create mode 100755 target/linux/ath79/base-files/etc/board.d/03_gpio_switches create mode 100644 target/linux/ath79/dts/ar9342_ubnt_nanostation-ac.dts diff --git a/target/linux/ath79/base-files/etc/board.d/01_leds b/target/linux/ath79/base-files/etc/board.d/01_leds index 7ec5300917..99646ad678 100755 --- a/target/linux/ath79/base-files/etc/board.d/01_leds +++ b/target/linux/ath79/base-files/etc/board.d/01_leds @@ -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" diff --git a/target/linux/ath79/base-files/etc/board.d/02_network b/target/linux/ath79/base-files/etc/board.d/02_network index 30577a1a9f..f782affe34 100755 --- a/target/linux/ath79/base-files/etc/board.d/02_network +++ b/target/linux/ath79/base-files/etc/board.d/02_network @@ -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 index 0000000000..4af9845b65 --- /dev/null +++ b/target/linux/ath79/base-files/etc/board.d/03_gpio_switches @@ -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 diff --git a/target/linux/ath79/base-files/etc/hotplug.d/firmware/11-ath10k-caldata b/target/linux/ath79/base-files/etc/hotplug.d/firmware/11-ath10k-caldata index ec490dda7f..9365d67e85 100644 --- a/target/linux/ath79/base-files/etc/hotplug.d/firmware/11-ath10k-caldata +++ b/target/linux/ath79/base-files/etc/hotplug.d/firmware/11-ath10k-caldata @@ -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 index 0000000000..164587dc3f --- /dev/null +++ b/target/linux/ath79/dts/ar9342_ubnt_nanostation-ac.dts @@ -0,0 +1,78 @@ +// SPDX-License-Identifier: GPL-2.0 +/dts-v1/; + +#include +#include + +#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 */ + >; + }; +}; + +ð0 { + 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>; +}; diff --git a/target/linux/ath79/image/generic-ubnt.mk b/target/linux/ath79/image/generic-ubnt.mk index 86afa11deb..91cd5fc681 100644 --- a/target/linux/ath79/image/generic-ubnt.mk +++ b/target/linux/ath79/image/generic-ubnt.mk @@ -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