ath79: Add support for Ubiquiti Bullet AC
authorRussell Senior <russell@personaltelco.net>
Wed, 23 Dec 2020 02:32:54 +0000 (18:32 -0800)
committerAdrian Schmutzler <freifunk@adrianschmutzler.de>
Fri, 15 Jan 2021 17:32:38 +0000 (18:32 +0100)
CPU:         Atheros AR9342 rev 3 SoC
RAM:         64 MB DDR2
Flash:       16 MB NOR SPI
WLAN 2.4GHz: Atheros AR9342 v3 (ath9k)
WLAN 5.0GHz: QCA988X
Ports:       1x GbE

Flashing procedure is identical to other ubnt devices.
https://openwrt.org/toh/ubiquiti/common

Flashing through factory firmware
1. Ensure firmware version v8.7.0 is installed.
   Up/downgrade to this exact version.
2. Patch fwupdate.real binary using
   `hexdump -Cv /bin/ubntbox | sed 's/14 40 fe 27/00 00 00 00/g' | \
    hexdump -R > /tmp/fwupdate.real`
3. Make the patched fwupdate.real binary executable using
   `chmod +x /tmp/fwupdate.real`
4. Copy the squashfs factory image to /tmp on the device
5. Flash OpenWrt using `/tmp/fwupdate.real -m <squashfs-factory image>`
6. Wait for the device to reboot
(copied from Ubiquiti NanoBeam AC and modified)

Flashing from serial console
1. Connect serial console (115200 baud)
2. Connect ethernet to a network with a TFTP server, through a
   passive PoE injector.
3. Press a key to obtain a u-boot prompt
4. Set your TFTP server's ip address, with:
   setenv serverip <tftp-server-address>
5. Set the Bullet AC's ip address, with:
   setenv ipaddr <bullet-ac-address>
6. Set the boot file, with:
   setenv bootfile <name-of-initramfs-binary-on-tftp-server>
7. Fetch the binary with tftp:
   tftpboot
8. Boot the initramfs binary:
   bootm
9. From the initramfs, fetch the sysupgrade binary, and flash it with
   sysupgrade.

The Bullet AC is identified as a 2WA board by Ubiquiti. As such, the UBNT_TYPE
must match from the "Flashing through factory firmware" install instructions
to work.

Phy0 is QCA988X which can tune either band (2.4 or 5GHz). Phy1 is AR9342,
on which 5GHz is disabled.  It isn't currently known whether phy1 is
routed to the N connector at all.

Signed-off-by: Russell Senior <russell@personaltelco.net>
target/linux/ath79/dts/ar9342_ubnt_bullet-ac.dts [new file with mode: 0644]
target/linux/ath79/generic/base-files/etc/board.d/01_leds
target/linux/ath79/generic/base-files/etc/board.d/02_network
target/linux/ath79/generic/base-files/etc/hotplug.d/firmware/11-ath10k-caldata
target/linux/ath79/image/generic-ubnt.mk

diff --git a/target/linux/ath79/dts/ar9342_ubnt_bullet-ac.dts b/target/linux/ath79/dts/ar9342_ubnt_bullet-ac.dts
new file mode 100644 (file)
index 0000000..be0b079
--- /dev/null
@@ -0,0 +1,38 @@
+// SPDX-License-Identifier: GPL-2.0-only
+
+#include "ar9342_ubnt_wa_1port.dtsi"
+
+/ {
+       compatible = "ubnt,bullet-ac", "ubnt,wa", "qca,ar9342";
+       model = "Ubiquiti Bullet AC (2WA)";
+
+       aliases {
+               led-boot = &led_rssi3;
+               led-failsafe = &led_rssi3;
+               led-upgrade = &led_rssi3;
+       };
+
+       leds {
+               compatible = "gpio-leds";
+
+               rssi0 {
+                       label = "blue:rssi0";
+                       gpios = <&gpio 11 GPIO_ACTIVE_LOW>;
+               };
+
+               rssi1 {
+                       label = "blue:rssi1";
+                       gpios = <&gpio 16 GPIO_ACTIVE_LOW>;
+               };
+
+               rssi2 {
+                       label = "blue:rssi2";
+                       gpios = <&gpio 13 GPIO_ACTIVE_LOW>;
+               };
+
+               led_rssi3: rssi3 {
+                       label = "blue:rssi3";
+                       gpios = <&gpio 14 GPIO_ACTIVE_LOW>;
+               };
+       };
+};
index 079c8d4e4715910e8d56dc947fc83e2ab7157278..9e5e42e268a9523bc73a681d24a747cbd2218d42 100755 (executable)
@@ -352,6 +352,17 @@ tplink,tl-wr842n-v2)
 trendnet,tew-823dru)
        ucidef_set_led_netdev "wan" "WAN" "green:planet" "eth0"
        ;;
+ubnt,bullet-ac|\
+ubnt,nanobeam-ac|\
+ubnt,nanobeam-ac-gen2|\
+ubnt,nanostation-ac|\
+ubnt,powerbeam-5ac-gen2)
+       ucidef_set_rssimon "wlan0" "200000" "1"
+       ucidef_set_led_rssi "rssilow" "RSSILOW" "blue:rssi0" "wlan0" "1" "100"
+       ucidef_set_led_rssi "rssimediumlow" "RSSIMEDIUMLOW" "blue:rssi1" "wlan0" "26" "100"
+       ucidef_set_led_rssi "rssimediumhigh" "RSSIMEDIUMHIGH" "blue:rssi2" "wlan0" "51" "100"
+       ucidef_set_led_rssi "rssihigh" "RSSIHIGH" "blue:rssi3" "wlan0" "76" "100"
+       ;;
 ubnt,bullet-m-ar7240|\
 ubnt,bullet-m-ar7241|\
 ubnt,bullet-m-xw|\
@@ -369,16 +380,6 @@ ubnt,rocket-m)
        ucidef_set_led_rssi "rssimediumhigh" "RSSIMEDIUMHIGH" "green:link3" "wlan0" "51" "100"
        ucidef_set_led_rssi "rssihigh" "RSSIHIGH" "green:link4" "wlan0" "76" "100"
        ;;
-ubnt,nanobeam-ac|\
-ubnt,nanobeam-ac-gen2|\
-ubnt,nanostation-ac|\
-ubnt,powerbeam-5ac-gen2)
-       ucidef_set_rssimon "wlan0" "200000" "1"
-       ucidef_set_led_rssi "rssilow" "RSSILOW" "blue:rssi0" "wlan0" "1" "100"
-       ucidef_set_led_rssi "rssimediumlow" "RSSIMEDIUMLOW" "blue:rssi1" "wlan0" "26" "100"
-       ucidef_set_led_rssi "rssimediumhigh" "RSSIMEDIUMHIGH" "blue:rssi2" "wlan0" "51" "100"
-       ucidef_set_led_rssi "rssihigh" "RSSIHIGH" "blue:rssi3" "wlan0" "76" "100"
-       ;;
 wallys,dr531)
        ucidef_set_led_netdev "lan" "LAN" "green:lan" "eth0"
        ucidef_set_led_switch "wan" "WAN" "green:wan" "switch0" "0x2"
index c08f374d3af6085e4376810cb272f60aaca94448..fbe2545adb8aecb644ef3dc8e4f84c8da8c3cf3d 100755 (executable)
@@ -66,6 +66,7 @@ ath79_setup_interfaces()
        tplink,re450-v2|\
        tplink,re450-v3|\
        tplink,tl-wr902ac-v1|\
+       ubnt,bullet-ac|\
        ubnt,bullet-m-ar7240|\
        ubnt,bullet-m-ar7241|\
        ubnt,bullet-m-xw|\
index 295bc1b18008328330dcce5c696ad795647166a1..99d2353ac163328082b34e5dfa973e1ad53d9fb3 100644 (file)
@@ -28,6 +28,7 @@ case "$FIRMWARE" in
        qxwlan,e600gac-v2-8m|\
        qxwlan,e600gac-v2-16m|\
        ubnt,aircube-ac|\
+       ubnt,bullet-ac|\
        ubnt,unifiac-lite|\
        ubnt,unifiac-lr|\
        ubnt,unifiac-mesh|\
index 710ab547720a457f7c2748e27f618ed3334801b1..91a18d3d3551bf82cd58204d5e5856c1e98bc46f 100644 (file)
@@ -67,6 +67,16 @@ define Device/ubnt-sw
   KERNEL := kernel-bin | append-dtb | relocate-kernel | lzma | uImage lzma
 endef
 
+define Device/ubnt-2wa
+  $(Device/ubnt)
+  SOC := ar9342
+  IMAGE_SIZE := 15744k
+  UBNT_BOARD := WA
+  UBNT_CHIP := ar934x
+  UBNT_TYPE := 2WA
+  UBNT_VERSION := 8.5.3
+endef
+
 define Device/ubnt-wa
   $(Device/ubnt)
   SOC := ar9342
@@ -144,6 +154,13 @@ define Device/ubnt_airrouter
 endef
 TARGET_DEVICES += ubnt_airrouter
 
+define Device/ubnt_bullet-ac
+  $(Device/ubnt-2wa)
+  DEVICE_MODEL := Bullet AC
+  DEVICE_PACKAGES += kmod-ath10k-ct-smallbuffers ath10k-firmware-qca988x-ct rssileds
+endef
+TARGET_DEVICES += ubnt_bullet-ac
+
 define Device/ubnt_bullet-m-ar7240
   $(Device/ubnt-xm)
   SOC := ar7240