[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>;
> + };
> +};
> +
> +ð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 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