[OpenWrt-Devel] [PATCH v2] ath79: Add support for Ubiquity Bullet M (XW)

Petr Štetiar ynezz at true.cz
Sat Nov 17 02:01:55 EST 2018


From: Petr Štetiar <pstetiar at ext.nomosphere.fr>

CPU: AR9342 SoC
RAM:     64 MB DDR2
Flash:    8 MB NOR SPI
Ports:  100 MBit (24V PoE in)
WLAN: 2.4/5 GHz
UART:     1 UART on PCB marked as J1 with 115200 8N1 config
LEDs:       Power, Ethernet, 4x RSSI LEDs (orange, red, 2x green)
Buttons:    Reset

UART connection details

  .---------------------------------.
  |                                 |
[ETH]          J1                 [ANT]
  |    o VCC o RX o TX o GND        |
  `---------------------------------'

Flashing instructions

 A) Serial console, U-Boot and TFTP

   1. Connect to serial header J1 on the PCB
   2. Power on device and enter U-Boot console
   3. Set up TFTP server serving an OpenWrt initramfs build
   4. Load initramfs build using the command tftpboot in the U-Boot cli
   5. Boot the loaded image using the command bootm
   6. Copy squashfs OpenWrt sysupgrade build to the booted device
   7. Use mtd to write sysupgrade to partition "firmware"
   8. Reboot and enjoy

 B) Experimental factory image flashing over SSH from airOS v6.1.7

   1. You need to flash your UBNT M2HP with airOS v6.1.7 firmware
      no other airOS version is currently supported
   2. git clone https://github.com/true-systems/ubnt-bullet-m2hp-openwrt-flashing
   3. cd ubnt-bullet-m2hp-openwrt-flashing
   4. make flash-factory FW_OWRT=/path/to/your/openwrt-ath79-generic-ubnt_bullet-m-xw-squashfs-factory.bin

Tested only on Bullet M2HP.

Signed-off-by: Petr Štetiar <ynezz at true.cz>
---

Changes in v2:

 * updated flashing instructions
 * fixed description of HW details
 * moved LED definitions to XW platform include
 * renamed board name to more generic bullet-m-xw
 * dropped qca,disable-5ghz in wmac so this board can support both M2 and M5 variants

 target/linux/ath79/base-files/etc/board.d/01_leds  |   1 +
 .../linux/ath79/base-files/etc/board.d/02_network  |   1 +
 target/linux/ath79/dts/ar9342_ubnt_bullet-m-xw.dts |  42 ++++++++
 target/linux/ath79/dts/ar9342_ubnt_xw.dtsi         | 111 +++++++++++++++++++++
 target/linux/ath79/image/generic-ubnt.mk           |  16 +++
 5 files changed, 171 insertions(+)
 create mode 100644 target/linux/ath79/dts/ar9342_ubnt_bullet-m-xw.dts
 create mode 100644 target/linux/ath79/dts/ar9342_ubnt_xw.dtsi

diff --git a/target/linux/ath79/base-files/etc/board.d/01_leds b/target/linux/ath79/base-files/etc/board.d/01_leds
index f04eb7f..5b54c83 100755
--- a/target/linux/ath79/base-files/etc/board.d/01_leds
+++ b/target/linux/ath79/base-files/etc/board.d/01_leds
@@ -94,6 +94,7 @@ tplink,tl-wr841-v11)
 	ucidef_set_led_switch "lan4" "LAN4" "tp-link:green:lan4" "switch0" "0x02"
 	;;
 ubnt,bullet-m|\
+ubnt,bullet-m-xw|\
 ubnt,nano-m|\
 ubnt,rocket-m)
 	ucidef_set_rssimon "wlan0" "200000" "1"
diff --git a/target/linux/ath79/base-files/etc/board.d/02_network b/target/linux/ath79/base-files/etc/board.d/02_network
index 5f02c57..ef94388 100755
--- a/target/linux/ath79/base-files/etc/board.d/02_network
+++ b/target/linux/ath79/base-files/etc/board.d/02_network
@@ -22,6 +22,7 @@ ath79_setup_interfaces()
 	tplink,tl-wa901nd-v2|\
 	tplink,tl-wr703n|\
 	ubnt,bullet-m|\
+	ubnt,bullet-m-xw|\
 	ubnt,lap-120|\
 	ubnt,nanostation-ac-loco|\
 	ubnt,rocket-m|\
diff --git a/target/linux/ath79/dts/ar9342_ubnt_bullet-m-xw.dts b/target/linux/ath79/dts/ar9342_ubnt_bullet-m-xw.dts
new file mode 100644
index 0000000..cc0940f
--- /dev/null
+++ b/target/linux/ath79/dts/ar9342_ubnt_bullet-m-xw.dts
@@ -0,0 +1,42 @@
+// SPDX-License-Identifier: GPL-2.0
+/dts-v1/;
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+
+#include "ar9342_ubnt_xw.dtsi"
+
+/ {
+	compatible = "ubnt,bullet-m-xw", "ubnt,xw";
+	model = "Ubiquiti Bullet M (XW)";
+};
+
+&mdio0 {
+	status = "okay";
+
+	phy-mask = <4>;
+	phy4: ethernet-phy at 4 {
+		phy-mode = "rgmii";
+		reg = <4>;
+	};
+};
+
+&eth0 {
+	status = "okay";
+
+	pll-data = <0x06000000 0x00000101 0x00001313>;
+	mtd-mac-address = <&eeprom 0x0>;
+
+	phy-mode = "rgmii";
+	phy-handle = <&phy4>;
+
+	gmac-config {
+		device = <&gmac>;
+		rxd-delay = <3>;
+		rxdv-delay = <3>;
+	};
+};
+
+&eth1 {
+	status = "disabled";
+};
diff --git a/target/linux/ath79/dts/ar9342_ubnt_xw.dtsi b/target/linux/ath79/dts/ar9342_ubnt_xw.dtsi
new file mode 100644
index 0000000..8db565e
--- /dev/null
+++ b/target/linux/ath79/dts/ar9342_ubnt_xw.dtsi
@@ -0,0 +1,111 @@
+// SPDX-License-Identifier: GPL-2.0
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+
+#include "ar9344.dtsi"
+
+/ {
+	compatible = "ubnt,xw", "qca,ar9342";
+	model = "Ubiquiti Networks XW board";
+
+	gpio-leds {
+		compatible = "gpio-leds";
+
+		link1 {
+			label = "ubnt:red:link1";
+			gpios = <&gpio 11 GPIO_ACTIVE_LOW>;
+		};
+
+		link2 {
+			label = "ubnt:orange:link2";
+			gpios = <&gpio 16 GPIO_ACTIVE_LOW>;
+		};
+
+		link3 {
+			label = "ubnt:green:link3";
+			gpios = <&gpio 13 GPIO_ACTIVE_LOW>;
+		};
+
+		link4 {
+			label = "ubnt:green:link4";
+			gpios = <&gpio 14 GPIO_ACTIVE_LOW>;
+		};
+	};
+
+	keys {
+		compatible = "gpio-keys";
+
+		reset {
+			label = "Reset button";
+			linux,code = <KEY_RESTART>;
+			gpios = <&gpio 12 GPIO_ACTIVE_LOW>;
+			debounce-interval = <60>;
+		};
+	};
+};
+
+&ref {
+	clock-frequency = <40000000>;
+};
+
+&uart {
+	status = "okay";
+};
+
+&gpio {
+	status = "okay";
+};
+
+&spi {
+	status = "okay";
+	num-cs = <1>;
+
+	flash at 0 {
+		compatible = "jedec,spi-nor";
+		reg = <0>;
+		spi-max-frequency = <25000000>;
+
+		partitions {
+			compatible = "fixed-partitions";
+			#address-cells = <1>;
+			#size-cells = <1>;
+
+			partition at 0 {
+				label = "u-boot";
+				reg = <0x000000 0x040000>;
+				read-only;
+			};
+
+			partition at 40000 {
+				label = "u-boot-env";
+				reg = <0x040000 0x010000>;
+				read-only;
+			};
+
+			partition at 50000 {
+				label = "firmware";
+				reg = <0x050000 0x760000>;
+			};
+
+			partition at fb0000 {
+				label = "cfg";
+				reg = <0x7b0000 0x040000>;
+				read-only;
+			};
+
+			eeprom: partition at ff0000 {
+				label = "EEPROM";
+				reg = <0x7f0000 0x010000>;
+				read-only;
+			};
+		};
+	};
+};
+
+&wmac {
+	status = "okay";
+
+	mtd-cal-data = <&eeprom 0x1000>;
+	mtd-mac-address = <&eeprom 0x1002>;
+};
diff --git a/target/linux/ath79/image/generic-ubnt.mk b/target/linux/ath79/image/generic-ubnt.mk
index bb86c8b..2d0b1ad 100644
--- a/target/linux/ath79/image/generic-ubnt.mk
+++ b/target/linux/ath79/image/generic-ubnt.mk
@@ -63,6 +63,15 @@ define Device/ubnt-wa
   ATH_SOC := ar9342
 endef
 
+define Device/ubnt-xw
+  $(Device/ubnt)
+  UBNT_TYPE := XW
+  UBNT_CHIP := ar934x
+  UBNT_BOARD := XM
+  UBNT_VERSION := 6.0.4
+  ATH_SOC := ar9342
+endef
+
 define Device/ubnt_bullet-m
   $(Device/ubnt-xm)
   DEVICE_TITLE := Ubiquiti Bullet-M
@@ -70,6 +79,13 @@ define Device/ubnt_bullet-m
 endef
 TARGET_DEVICES += ubnt_bullet-m
 
+define Device/ubnt_bullet-m-xw
+  $(Device/ubnt-xw)
+  DEVICE_TITLE := Ubiquiti Bullet-M (XW)
+  SUPPORTED_DEVICES += bullet-m-xw
+endef
+TARGET_DEVICES += ubnt_bullet-m-xw
+
 define Device/ubnt_rocket-m
   $(Device/ubnt-xm)
   DEVICE_TITLE := Ubiquiti Rocket-M
-- 
1.9.1


_______________________________________________
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