From dd8a8735f6a2b5afa9bbd00d1e0869e4a0c4e59e Mon Sep 17 00:00:00 2001 From: Russell Senior Date: Tue, 22 Dec 2020 18:32:54 -0800 Subject: [PATCH] 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 ` 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 5. Set the Bullet AC's ip address, with: setenv ipaddr 6. Set the boot file, with: setenv bootfile 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 --- .../linux/ath79/dts/ar9342_ubnt_bullet-ac.dts | 38 +++++++++++++++++++ .../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(-) create mode 100644 target/linux/ath79/dts/ar9342_ubnt_bullet-ac.dts 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 b28fcbb4ff..5954e2892f 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 9336e8dbf2..ec9f0d0218 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 cfc95fd87b..2ce57f0d9d 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 @@ -88,6 +88,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 eeaef1d301..2ea43158b0 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