From db4b6535f837a1e335a560f8aeb2cf61973865b7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20=C5=A0tetiar?= Date: Sat, 17 Nov 2018 08:01:55 +0100 Subject: [PATCH] ath79: Add support for Ubiquity Bullet M (XW) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 --- .../ath79/base-files/etc/board.d/01_leds | 1 + .../ath79/base-files/etc/board.d/02_network | 1 + .../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 f04eb7f5c6..5b54c83674 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 5f02c5769a..ef94388b15 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 0000000000..cc0940fb65 --- /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 +#include + +#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@4 { + phy-mode = "rgmii"; + reg = <4>; + }; +}; + +ð0 { + 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>; + }; +}; + +ð1 { + 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 0000000000..8db565e8b9 --- /dev/null +++ b/target/linux/ath79/dts/ar9342_ubnt_xw.dtsi @@ -0,0 +1,111 @@ +// SPDX-License-Identifier: GPL-2.0 + +#include +#include + +#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 = ; + 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@0 { + compatible = "jedec,spi-nor"; + reg = <0>; + spi-max-frequency = <25000000>; + + partitions { + compatible = "fixed-partitions"; + #address-cells = <1>; + #size-cells = <1>; + + partition@0 { + label = "u-boot"; + reg = <0x000000 0x040000>; + read-only; + }; + + partition@40000 { + label = "u-boot-env"; + reg = <0x040000 0x010000>; + read-only; + }; + + partition@50000 { + label = "firmware"; + reg = <0x050000 0x760000>; + }; + + partition@fb0000 { + label = "cfg"; + reg = <0x7b0000 0x040000>; + read-only; + }; + + eeprom: partition@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 bb86c8b288..2d0b1adadb 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