[openwrt/openwrt] ath79: Add support for Ubiquiti Bullet AC

LEDE Commits lede-commits at lists.infradead.org
Fri Jan 15 13:46:25 EST 2021


adrian pushed a commit to openwrt/openwrt.git, branch master:
https://git.openwrt.org/591a4c9ed3a3e3d9b0a2d1dd856c1df87892b877

commit 591a4c9ed3a3e3d9b0a2d1dd856c1df87892b877
Author: Russell Senior <russell at personaltelco.net>
AuthorDate: Tue Dec 22 18:32:54 2020 -0800

    ath79: Add support for Ubiquiti Bullet AC
    
    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 at personaltelco.net>
---
 target/linux/ath79/dts/ar9342_ubnt_bullet-ac.dts   | 38 ++++++++++++++++++++++
 .../ath79/generic/base-files/etc/board.d/01_leds   | 21 ++++++------
 .../generic/base-files/etc/board.d/02_network      |  1 +
 .../etc/hotplug.d/firmware/11-ath10k-caldata       |  1 +
 target/linux/ath79/image/generic-ubnt.mk           | 17 ++++++++++
 5 files changed, 68 insertions(+), 10 deletions(-)

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
index 0000000000..be0b0792bb
--- /dev/null
+++ b/target/linux/ath79/dts/ar9342_ubnt_bullet-ac.dts
@@ -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>;
+		};
+	};
+};
diff --git a/target/linux/ath79/generic/base-files/etc/board.d/01_leds b/target/linux/ath79/generic/base-files/etc/board.d/01_leds
index 079c8d4e47..9e5e42e268 100755
--- a/target/linux/ath79/generic/base-files/etc/board.d/01_leds
+++ b/target/linux/ath79/generic/base-files/etc/board.d/01_leds
@@ -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"
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 c08f374d3a..fbe2545adb 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
@@ -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|\
diff --git a/target/linux/ath79/generic/base-files/etc/hotplug.d/firmware/11-ath10k-caldata b/target/linux/ath79/generic/base-files/etc/hotplug.d/firmware/11-ath10k-caldata
index 295bc1b180..99d2353ac1 100644
--- a/target/linux/ath79/generic/base-files/etc/hotplug.d/firmware/11-ath10k-caldata
+++ b/target/linux/ath79/generic/base-files/etc/hotplug.d/firmware/11-ath10k-caldata
@@ -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|\
diff --git a/target/linux/ath79/image/generic-ubnt.mk b/target/linux/ath79/image/generic-ubnt.mk
index 710ab54772..91a18d3d35 100644
--- a/target/linux/ath79/image/generic-ubnt.mk
+++ b/target/linux/ath79/image/generic-ubnt.mk
@@ -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



More information about the lede-commits mailing list