[OpenWrt-Devel] [PATCH] ath79: Add support for Ubiquity Bullet M2HP

Lech Perczak lech.perczak at gmail.com
Thu Nov 15 13:30:00 EST 2018


Hi,

Just a couple of remarks inline, based on my knowledge about XM series.

W dniu 2018-11-15 o 13:32, Petr Štetiar pisze:
> 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 GHz
> UART:     1 UART on PCB marked as J1 with 115200 8N1 config
> LEDs:       Power, Ethernet, WPS, USB, RF 2.4G, RF 5G
> 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) Sysupgrade over SSH in airOS v6.1.7
>
>     1. Upgrade or downgrade airOS to v6.1.7
>     2. git clone https://github.com/true-systems/ubnt-bullet-m2hp-openwrt-flashing
>     3. cd ubnt-bullet-m2hp-openwrt-flashing
>     4. less README.md
>     5. make flash FW_UBNT=/path/to/your/openwrt-ath79-generic-ubnt_bullet-m2hp-squashfs-sysupgrade.bin
>
> Signed-off-by: Petr Štetiar <ynezz at true.cz>
> ---
>   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-m2hp.dts | 66 ++++++++++++++++
>   target/linux/ath79/dts/ar9342_ubnt_xw.dtsi         | 88 ++++++++++++++++++++++
>   target/linux/ath79/image/generic-ubnt.mk           | 16 ++++
>   5 files changed, 172 insertions(+)
>   create mode 100644 target/linux/ath79/dts/ar9342_ubnt_bullet-m2hp.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..281686e 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-m2hp|\
>   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..8556bd3 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-m2hp|\
I'd call it ubnt,bullet-m-xw, as this patch will very likely support 
Bullet-M5HP also.
>   	ubnt,lap-120|\
>   	ubnt,nanostation-ac-loco|\
>   	ubnt,rocket-m|\
> diff --git a/target/linux/ath79/dts/ar9342_ubnt_bullet-m2hp.dts b/target/linux/ath79/dts/ar9342_ubnt_bullet-m2hp.dts
> new file mode 100644
> index 0000000..2e978cf
> --- /dev/null
> +++ b/target/linux/ath79/dts/ar9342_ubnt_bullet-m2hp.dts
> @@ -0,0 +1,66 @@
> +// 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-m2hp", "ubnt,xw";
> +	model = "Ubiquiti Bullet M2HP (XW)";
> +
> +	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>;
> +		};
> +	};
> +};

Shouldn't those LEDs be defined in ar9342_ubnt_xw.dtsi?
AFAIK all XW boards (Bullet, Nano, Rocket) use same LED configurations, 
like in XM target also.
Please take a look at ath79 device tree for XM boards and for board file 
for XW in ar71xx.

> +
> +&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..c5ae5df
> --- /dev/null
> +++ b/target/linux/ath79/dts/ar9342_ubnt_xw.dtsi
> @@ -0,0 +1,88 @@
> +// 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";
> +
> +	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";
> +
> +	qca,disable-5ghz;
Couldn't the upper be dropped to support M5HP also? On XM targets the 
radio band is autodetected based on calibration data.
Which not-so-long ago wasn't available at all, as calibration data had 
to be extracted in userspace on first boot.
> +	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..d12a32e 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-m2hp
> +  $(Device/ubnt-xw)
> +  DEVICE_TITLE := Ubiquiti Bullet M2HP
> +  SUPPORTED_DEVICES += bullet-m2hp
> +endef
> +TARGET_DEVICES += ubnt_bullet-m2hp
> +
Same as before, I'd call it ubnt_bullet-m-xw, as this patchset should 
automatically support Bullet-M5HP also.
>   define Device/ubnt_rocket-m
>     $(Device/ubnt-xm)
>     DEVICE_TITLE := Ubiquiti Rocket-M

With kind regards,
Lech


_______________________________________________
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