[PATCHv2] ath79: Add support for Ubiquiti Bullet AC

Russell Senior russell at personaltelco.net
Wed Dec 16 16:17:42 EST 2020


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 at personaltelco.net> wrote:
>
> responses in-line.
>
> On Wed, Dec 16, 2020 at 8:20 AM Adrian Schmutzler
> <mail at adrianschmutzler.de> wrote:
> >
> > Hi,
> >
> > > -----Original Message-----
> > > From: openwrt-devel [mailto:openwrt-devel-bounces at lists.openwrt.org]
> > > On Behalf Of Russell Senior
> > > Sent: Mittwoch, 16. Dezember 2020 12:01
> > > To: openwrt-devel at 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 at 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 at personaltelco.net
> > >
> > > _______________________________________________
> > > openwrt-devel mailing list
> > > openwrt-devel at lists.openwrt.org
> > > https://lists.openwrt.org/mailman/listinfo/openwrt-devel



More information about the openwrt-devel mailing list