diff mbox series

[PATCHv2] ath79: Add support for Ubiquiti Bullet AC

Message ID 874kkm3th8.fsf@husum.ptp
State Superseded
Delegated to: Adrian Schmutzler
Headers show
Series [PATCHv2] ath79: Add support for Ubiquiti Bullet AC | expand

Commit Message

Russell Senior Dec. 16, 2020, 11:01 a.m. UTC
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.

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>
---
v2:
- Make "Flashing through factory firmware" instructions actually work by changing UBNT_TYPE to 2WA
---
 .../linux/ath79/dts/ar9342_ubnt_bullet-ac.dts | 38 +++++++++++++++++++
 .../generic/base-files/etc/board.d/01_leds    |  1 +
 .../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, 58 insertions(+)
 create mode 100644 target/linux/ath79/dts/ar9342_ubnt_bullet-ac.dts

Comments

Adrian Schmutzler Dec. 16, 2020, 4:20 p.m. UTC | #1
Hi,

> -----Original Message-----
> From: openwrt-devel [mailto:openwrt-devel-bounces@lists.openwrt.org]
> On Behalf Of Russell Senior
> Sent: Mittwoch, 16. Dezember 2020 12:01
> To: openwrt-devel@lists.openwrt.org
> Subject: [PATCHv2] 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.
> 
> 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>
> ---
> v2:
> - Make "Flashing through factory firmware" instructions actually work by
> changing UBNT_TYPE to 2WA
> ---
>  .../linux/ath79/dts/ar9342_ubnt_bullet-ac.dts | 38 +++++++++++++++++++
>  .../generic/base-files/etc/board.d/01_leds    |  1 +
>  .../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, 58 insertions(+)
>  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)";

would you provide some details about that odd "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 a0ed21e318..46d4650eac 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
> @@ -366,6 +366,7 @@ 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,bullet-ac|\

This requires to move the block to keep sorting.

>  ubnt,nanobeam-ac|\
>  ubnt,nanobeam-ac-gen2|\
>  ubnt,nanostation-ac|\
> 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 905848a2ba..9293e5522b 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
> @@ -58,6 +58,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 0d09cd3140..be62e52480 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-at
> +++ h10k-caldata
> @@ -26,6 +26,7 @@ case "$FIRMWARE" in
>  	qxwlan,e1700ac-v2-16m|\
>  	qxwlan,e600gac-v2-8m|\
>  	qxwlan,e600gac-v2-16m|\
> +	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 c347bd1cf1..4c34aa5dfa 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

Strictly, the would need to be moved as well. But I'm not sure whether I insist here.

Best

Adrian

> +  $(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
> @@ -131,6 +141,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
> --
> 2.29.2
> 
> 
> 
> --
> Russell Senior, President
> russell@personaltelco.net
> 
> _______________________________________________
> openwrt-devel mailing list
> openwrt-devel@lists.openwrt.org
> https://lists.openwrt.org/mailman/listinfo/openwrt-devel
Russell Senior Dec. 16, 2020, 8:27 p.m. UTC | #2
responses in-line.

On Wed, Dec 16, 2020 at 8:20 AM Adrian Schmutzler
<mail@adrianschmutzler.de> wrote:
>
> Hi,
>
> > -----Original Message-----
> > From: openwrt-devel [mailto:openwrt-devel-bounces@lists.openwrt.org]
> > On Behalf Of Russell Senior
> > Sent: Mittwoch, 16. Dezember 2020 12:01
> > To: openwrt-devel@lists.openwrt.org
> > Subject: [PATCHv2] 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.
> >
> > 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>
> > ---
> > v2:
> > - Make "Flashing through factory firmware" instructions actually work by
> > changing UBNT_TYPE to 2WA
> > ---
> >  .../linux/ath79/dts/ar9342_ubnt_bullet-ac.dts | 38 +++++++++++++++++++
> >  .../generic/base-files/etc/board.d/01_leds    |  1 +
> >  .../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, 58 insertions(+)
> >  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)";
>
> would you provide some details about that odd "2WA"?

2WA is what Ubiquiti calls it. It is needed in UBNT_TYPE in order for
the patched fwupdate.real to match and accept the factory.bin

There are two other 2WA devices supported by the same Ubiquiti
firmware. The 2 in 2WA seems to represent the 2.4GHz band (despite the
Bullet AC being able to use either band).

>
> > +
> > +     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 a0ed21e318..46d4650eac 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
> > @@ -366,6 +366,7 @@ 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,bullet-ac|\
>
> This requires to move the block to keep sorting.
>
> >  ubnt,nanobeam-ac|\
> >  ubnt,nanobeam-ac-gen2|\
> >  ubnt,nanostation-ac|\
> > 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 905848a2ba..9293e5522b 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
> > @@ -58,6 +58,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 0d09cd3140..be62e52480 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-at
> > +++ h10k-caldata
> > @@ -26,6 +26,7 @@ case "$FIRMWARE" in
> >       qxwlan,e1700ac-v2-16m|\
> >       qxwlan,e600gac-v2-8m|\
> >       qxwlan,e600gac-v2-16m|\
> > +     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 c347bd1cf1..4c34aa5dfa 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
>
> Strictly, the would need to be moved as well. But I'm not sure whether I insist here.
>
> Best
>
> Adrian
>
> > +  $(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
> > @@ -131,6 +141,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
> > --
> > 2.29.2
> >
> >
> >
> > --
> > Russell Senior, President
> > russell@personaltelco.net
> >
> > _______________________________________________
> > openwrt-devel mailing list
> > openwrt-devel@lists.openwrt.org
> > https://lists.openwrt.org/mailman/listinfo/openwrt-devel
Russell Senior Dec. 16, 2020, 9:17 p.m. UTC | #3
I would suggest doing the re-ordering to maintain lexical ordering in
a separate commit, to keep the functional changes more clear.

On Wed, Dec 16, 2020 at 12:27 PM Russell Senior
<russell@personaltelco.net> wrote:
>
> responses in-line.
>
> On Wed, Dec 16, 2020 at 8:20 AM Adrian Schmutzler
> <mail@adrianschmutzler.de> wrote:
> >
> > Hi,
> >
> > > -----Original Message-----
> > > From: openwrt-devel [mailto:openwrt-devel-bounces@lists.openwrt.org]
> > > On Behalf Of Russell Senior
> > > Sent: Mittwoch, 16. Dezember 2020 12:01
> > > To: openwrt-devel@lists.openwrt.org
> > > Subject: [PATCHv2] 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.
> > >
> > > 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>
> > > ---
> > > v2:
> > > - Make "Flashing through factory firmware" instructions actually work by
> > > changing UBNT_TYPE to 2WA
> > > ---
> > >  .../linux/ath79/dts/ar9342_ubnt_bullet-ac.dts | 38 +++++++++++++++++++
> > >  .../generic/base-files/etc/board.d/01_leds    |  1 +
> > >  .../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, 58 insertions(+)
> > >  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)";
> >
> > would you provide some details about that odd "2WA"?
>
> 2WA is what Ubiquiti calls it. It is needed in UBNT_TYPE in order for
> the patched fwupdate.real to match and accept the factory.bin
>
> There are two other 2WA devices supported by the same Ubiquiti
> firmware. The 2 in 2WA seems to represent the 2.4GHz band (despite the
> Bullet AC being able to use either band).
>
> >
> > > +
> > > +     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 a0ed21e318..46d4650eac 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
> > > @@ -366,6 +366,7 @@ 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,bullet-ac|\
> >
> > This requires to move the block to keep sorting.
> >
> > >  ubnt,nanobeam-ac|\
> > >  ubnt,nanobeam-ac-gen2|\
> > >  ubnt,nanostation-ac|\
> > > 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 905848a2ba..9293e5522b 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
> > > @@ -58,6 +58,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 0d09cd3140..be62e52480 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-at
> > > +++ h10k-caldata
> > > @@ -26,6 +26,7 @@ case "$FIRMWARE" in
> > >       qxwlan,e1700ac-v2-16m|\
> > >       qxwlan,e600gac-v2-8m|\
> > >       qxwlan,e600gac-v2-16m|\
> > > +     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 c347bd1cf1..4c34aa5dfa 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
> >
> > Strictly, the would need to be moved as well. But I'm not sure whether I insist here.
> >
> > Best
> >
> > Adrian
> >
> > > +  $(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
> > > @@ -131,6 +141,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
> > > --
> > > 2.29.2
> > >
> > >
> > >
> > > --
> > > Russell Senior, President
> > > russell@personaltelco.net
> > >
> > > _______________________________________________
> > > openwrt-devel mailing list
> > > openwrt-devel@lists.openwrt.org
> > > https://lists.openwrt.org/mailman/listinfo/openwrt-devel
diff mbox series

Patch

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 a0ed21e318..46d4650eac 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
@@ -366,6 +366,7 @@  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,bullet-ac|\
 ubnt,nanobeam-ac|\
 ubnt,nanobeam-ac-gen2|\
 ubnt,nanostation-ac|\
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 905848a2ba..9293e5522b 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
@@ -58,6 +58,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 0d09cd3140..be62e52480 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
@@ -26,6 +26,7 @@  case "$FIRMWARE" in
 	qxwlan,e1700ac-v2-16m|\
 	qxwlan,e600gac-v2-8m|\
 	qxwlan,e600gac-v2-16m|\
+	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 c347bd1cf1..4c34aa5dfa 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
@@ -131,6 +141,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