ath79: add support for Ubiquiti NanoBeam M5
authorJan-Niklas Burfeind <git@aiyionpri.me>
Sat, 23 Apr 2022 15:49:34 +0000 (17:49 +0200)
committerDavid Bauer <mail@david-bauer.net>
Sat, 21 May 2022 11:54:15 +0000 (13:54 +0200)
Ubiquiti NanoBeam M5 devices are CPE equipment for customer locations
with one Ethernet port and a 5 GHz 300Mbps wireless interface.

Specificatons:

- Atheros AR9342
- 535 MHz CPU
- 64 MB RAM
- 8 MB Flash
- 1x 10/100 Mbps Ethernet with passive PoE input (24 V)
- 6 LEDs of which four are rssi
- 1 reset button
- UART (4-pin) header on PCB

Notes:

The device was supported by OpenWrt in ar71xx.

Flash instructions (web/ssh/tftp):

Loading the image via ssh vias a stock firmware prior "AirOS 5.6".
Downgrading stock is possible.

* Flashing is possible via AirOS software update page:
The "factory" ROM image is recognized as non-native and then installed correctly.
AirOS warns to better be familiar with the recovery procedure.

* Flashing can be done via ssh, which is becoming difficult due to legacy
keyexchange methods.

This is an exempary ssh-config:
KexAlgorithms +diffie-hellman-group1-sha1
HostKeyAlgorithms ssh-rsa
PubkeyAcceptedKeyTypes ssh-rsa
User ubnt

The password is ubnt.

Connecting via IPv6 link local worked best for me.

1. scp the factory image to /tmp
2. fwupdate.real -m /tmp/firmware_image_file.bin -d

* Alternatively tftp is possible:

1. Configure PC with static IP 192.168.1.2/24.
2. Enter the rescue mode. Power off the device, push the reset button on
   the device (or the PoE) and keep it pressed.
   Power on the device, while still pushing the reset button.
3. When all the leds blink at the same time, release the reset button.
4. Upload the firmware image file via TFTP:

tftp 192.168.1.20
tftp> bin
tftp> trace
Packet tracing on.
tftp> put firmware_image.bin

Signed-off-by: Jan-Niklas Burfeind <git@aiyionpri.me>
target/linux/ath79/dts/ar9342_ubnt_nanobeam-m5.dts [new file with mode: 0644]
target/linux/ath79/image/generic-ubnt.mk

diff --git a/target/linux/ath79/dts/ar9342_ubnt_nanobeam-m5.dts b/target/linux/ath79/dts/ar9342_ubnt_nanobeam-m5.dts
new file mode 100644 (file)
index 0000000..86a5e3a
--- /dev/null
@@ -0,0 +1,26 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+
+#include "ar9342_ubnt_xw.dtsi"
+
+/ {
+       compatible = "ubnt,nanobeam-m5-xw", "ubnt,xw", "qca,ar9342";
+       model = "Ubiquiti NanoBeam M5 (XW)";
+};
+
+&mdio0 {
+       status = "okay";
+
+       phy-mask = <0x1>;
+
+       phy1: ethernet-phy@1 {
+               reg = <1>;
+               phy-mode = "mii";
+               reset-gpios = <&gpio 0 GPIO_ACTIVE_LOW>;
+       };
+};
+
+&eth0 {
+       status = "okay";
+
+       phy-handle = <&phy1>;
+};
index 153b73abb0ef57421a6360c56858dfdd29fae6fb..3713f538f1c1df1f7435eb9e58aa826c83021dce 100644 (file)
@@ -255,6 +255,14 @@ define Device/ubnt_nanobeam-ac-xc
 endef
 TARGET_DEVICES += ubnt_nanobeam-ac-xc
 
 endef
 TARGET_DEVICES += ubnt_nanobeam-ac-xc
 
+define Device/ubnt_nanobeam-m5
+  $(Device/ubnt-xw)
+  DEVICE_MODEL := NanoBeam M5
+  DEVICE_PACKAGES += rssileds
+  SUPPORTED_DEVICES += loco-m-xw
+endef
+TARGET_DEVICES += ubnt_nanobeam-m5
+
 define Device/ubnt_nanobridge-m
   $(Device/ubnt-xm)
   SOC := ar7241
 define Device/ubnt_nanobridge-m
   $(Device/ubnt-xm)
   SOC := ar7241