ath79: add support for MikroTik SXT 5nD r2 (SXT Lite5)
authorRoger Pueyo Centelles <roger.pueyo@guifi.net>
Thu, 11 Jun 2020 12:22:54 +0000 (14:22 +0200)
committerAdrian Schmutzler <freifunk@adrianschmutzler.de>
Wed, 12 Aug 2020 12:03:17 +0000 (14:03 +0200)
The MikroTik SXT Lite5 (product code RBSXT5nDr2, also SXT 5nD r2) is
an outdoor 5GHz CPE with a 16 dBi integrated antenna built around the
Atheros AR9344 SoC. It is based on the "sxt5n" board platform.

Specifications:
 - SoC: Atheros AR9344
 - RAM: 64 MB
 - Storage: 128 MB NAND
 - Wireless: Atheros AR9340 (SoC) 802.11a/n 2x2:2
 - Ethernet: Atheros AR8229 switch (SoC), 1x 10/100 port,
    8-32 Vdc PoE in
 - 6 user-controllable LEDs:
  · 1x power (blue)
  · 1x wlan (green)
  · 4x rssi (green)
 - 1 GPIO-controlled buzzer

 See https://mikrotik.com/product/RBSXT5nDr2 for more details.

Notes:
 The device was already supported in the ar71xx target. There, the
 Ethernet port was handled by GMAC1. Here in ath79 it is handled by
 GMAC0, which allows to get link information (loss, speed, duplex) on
 the eth0 interface.

Flashing:
 TFTP boot initramfs image and then perform sysupgrade. Follow common
 MikroTik procedure as in https://openwrt.org/toh/mikrotik/common.

Acknowledgments:
 Michael Pratt (@mpratt14) for helping on the network settings.

Signed-off-by: Roger Pueyo Centelles <roger.pueyo@guifi.net>
[rebase, use mikrotik LED label prefix, make names consistent,
add reg for bootloader2, use led_user for boot indication etc.,
minor cosmetic changes]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
target/linux/ath79/dts/ar9344_mikrotik_routerboard-sxt-5n.dtsi [new file with mode: 0644]
target/linux/ath79/dts/ar9344_mikrotik_routerboard-sxt-5nd-r2.dts [new file with mode: 0644]
target/linux/ath79/image/mikrotik.mk
target/linux/ath79/mikrotik/base-files/etc/board.d/01_leds
target/linux/ath79/mikrotik/base-files/etc/board.d/02_network
target/linux/ath79/mikrotik/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom
target/linux/ath79/mikrotik/base-files/lib/upgrade/platform.sh

diff --git a/target/linux/ath79/dts/ar9344_mikrotik_routerboard-sxt-5n.dtsi b/target/linux/ath79/dts/ar9344_mikrotik_routerboard-sxt-5n.dtsi
new file mode 100644 (file)
index 0000000..100976e
--- /dev/null
@@ -0,0 +1,193 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+
+#include "ar9344.dtsi"
+
+/ {
+       compatible = "mikrotik,routerboard-sxt-5n", "qca,ar9344";
+       model = "MikroTik SXT 5N platform";
+
+       aliases {
+               led-boot = &led_user;
+               led-failsafe = &led_user;
+               led-running = &led_user;
+               led-upgrade = &led_user;
+               serial0 = &uart;
+       };
+
+       leds {
+               compatible = "gpio-leds";
+
+               power {
+                       label = "mikrotik:green:power";
+                       gpios = <&gpio 11 GPIO_ACTIVE_HIGH>;
+                       default-state = "on";
+               };
+
+               rssilow {
+                       label = "mikrotik:green:rssilow";
+                       gpios = <&gpio 13 GPIO_ACTIVE_LOW>;
+               };
+
+               rssimediumlow {
+                       label = "mikrotik:green:rssimediumlow";
+                       gpios = <&gpio 12 GPIO_ACTIVE_LOW>;
+               };
+
+               rssimedium {
+                       label = "mikrotik:green:rssimedium";
+                       gpios = <&gpio 4 GPIO_ACTIVE_LOW>;
+               };
+
+               rssimediumhigh {
+                       label = "mikrotik:green:rssimediumhigh";
+                       gpios = <&gpio 21 GPIO_ACTIVE_LOW>;
+               };
+
+               rssihigh {
+                       label = "mikrotik:green:rssihigh";
+                       gpios = <&gpio 18 GPIO_ACTIVE_LOW>;
+               };
+
+               led_user: user {
+                       label = "mikrotik:green:user";
+                       gpios = <&gpio 3 GPIO_ACTIVE_LOW>;
+               };
+       };
+
+       keys {
+               compatible = "gpio-keys";
+
+               reset {
+                       label = "reset";
+                       linux,code = <KEY_RESTART>;
+                       gpios = <&gpio 15 GPIO_ACTIVE_LOW>;
+                       debounce-interval = <60>;
+               };
+       };
+
+       gpio-export {
+               compatible = "gpio-export";
+
+               gpio_nand_power {
+                       gpio-export,name = "sxt5n:power:nand";
+                       gpio-export,output = <0>;
+                       gpios = <&gpio 14 GPIO_ACTIVE_LOW>;
+               };
+       };
+
+       beeper {
+               compatible = "gpio-beeper";
+               gpios = <&gpio 19 GPIO_ACTIVE_HIGH>;
+       };
+};
+
+&spi {
+       status = "okay";
+
+       num-cs = <1>;
+
+       flash@0 {
+               compatible = "jedec,spi-nor";
+               reg = <0>;
+               spi-max-frequency = <40000000>;
+
+               partitions {
+                       compatible = "fixed-partitions";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+
+                       partition@0 {
+                               label = "RouterBoot";
+                               reg = <0x0 0x20000>;
+                               read-only;
+                               compatible = "mikrotik,routerboot-partitions";
+                               #address-cells = <1>;
+                               #size-cells = <1>;
+
+                               partition@0 {
+                                       label = "bootloader1";
+                                       reg = <0x0 0x0>;
+                                       read-only;
+                               };
+
+                               hard_config: hard_config {
+                                       read-only;
+                               };
+
+                               bios {
+                                       size = <0x1000>;
+                                       read-only;
+                               };
+
+                               partition@10000 {
+                                       label = "bootloader2";
+                                       reg = <0x10000 0x0>;
+                                       read-only;
+                               };
+
+                               soft_config {
+                               };
+                       };
+               };
+       };
+};
+
+&nand {
+       status = "okay";
+
+       nand-ecc-mode = "soft";
+       qca,nand-swap-dma;
+       qca,nand-scan-fixup;
+
+       partitions {
+               compatible = "fixed-partitions";
+               #address-cells = <1>;
+               #size-cells = <1>;
+
+               partition@0 {
+                       label = "booter";
+                       reg = <0x0000000 0x0040000>;
+                       read-only;
+               };
+
+               partition@40000 {
+                       label = "kernel";
+                       reg = <0x0040000 0x03c0000>;
+               };
+
+               partition@400000 {
+                       label = "ubi";
+                       reg = <0x0400000 0x7c00000>;
+               };
+       };
+};
+
+&uart {
+       status = "okay";
+};
+
+&eth0 {
+       status = "okay";
+
+       phy-handle = <&swphy0>;
+
+       gmac-config {
+               device = <&gmac>;
+               switch-phy-swap = <1>;
+       };
+};
+
+&eth1 {
+       status = "okay";
+
+       compatible = "syscon", "simple-mfd";
+};
+
+&wmac {
+       status = "okay";
+
+       qca,no-eeprom;
+};
diff --git a/target/linux/ath79/dts/ar9344_mikrotik_routerboard-sxt-5nd-r2.dts b/target/linux/ath79/dts/ar9344_mikrotik_routerboard-sxt-5nd-r2.dts
new file mode 100644 (file)
index 0000000..82b78c8
--- /dev/null
@@ -0,0 +1,9 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/dts-v1/;
+
+#include "ar9344_mikrotik_routerboard-sxt-5n.dtsi"
+
+/ {
+       compatible = "mikrotik,routerboard-sxt-5nd-r2", "qca,ar9344";
+       model = "MikroTik RouterBOARD SXT 5nD r2 (SXT Lite5)";
+};
index 6066d8a147cdf3926ffb17e8ef0aea57cda131bd..3752c891a7077e332ddf1ef6379d7b262d1f6593 100644 (file)
@@ -35,6 +35,15 @@ define Device/mikrotik_routerboard-lhg-2nd
 endef
 TARGET_DEVICES += mikrotik_routerboard-lhg-2nd
 
+define Device/mikrotik_routerboard-sxt-5nd-r2
+  $(Device/mikrotik_nand)
+  SOC := ar9344
+  DEVICE_MODEL := RouterBOARD SXT 5nD r2 (SXT Lite5)
+  DEVICE_PACKAGES += rssileds kmod-gpio-beeper
+  SUPPORTED_DEVICES += rb-sxt5n
+endef
+TARGET_DEVICES += mikrotik_routerboard-sxt-5nd-r2
+
 define Device/mikrotik_routerboard-wap-g-5hact2hnd
   $(Device/mikrotik_nor)
   SOC := qca9556
index adbaee126661f380d6d89e7ab0b4a2d0aa32af77..60858305955f21a12eac5ebfaec448c7ddd880e5 100755 (executable)
@@ -11,6 +11,14 @@ case "$board" in
 mikrotik,routerboard-lhg-2nd)
        ucidef_set_led_netdev "lan" "lan" "mikrotik:green:lan" "eth0"
        ;;
+mikrotik,routerboard-sxt-5nd-r2)
+       ucidef_set_rssimon "wlan0" "200000" "1"
+       ucidef_set_led_rssi "rssilow" "rssilow" "sxt5n:green:rssilow" "wlan0" "1" "100"
+       ucidef_set_led_rssi "rssimediumlow" "rssimediumlow" "sxt5n:green:rssimediumlow" "wlan0" "20" "100"
+       ucidef_set_led_rssi "rssimedium" "rssimedium" "sxt5n:green:rssimedium" "wlan0" "40" "100"
+       ucidef_set_led_rssi "rssimediumhigh" "rssimediumhigh" "sxt5n:green:rssimediumhigh" "wlan0" "60" "100"
+       ucidef_set_led_rssi "rssihigh" "rssihigh" "sxt5n:green:rssihigh" "wlan0" "80" "100"
+       ;;
 esac
 
 board_config_flush
index f0799a0b8c0656fcf3f9b77369ef382bcef397c2..6bc4822551b25b2ae9ef15b94d81bedbf83687db 100755 (executable)
@@ -18,6 +18,7 @@ ath79_setup_interfaces()
        mikrotik,routerboard-921gs-5hpacd-15s|\
        mikrotik,routerboard-922uags-5hpacd|\
        mikrotik,routerboard-lhg-2nd|\
+       mikrotik,routerboard-sxt-5nd-r2|\
        mikrotik,routerboard-wap-g-5hact2hnd)
                ucidef_set_interface_lan "eth0"
                ;;
@@ -38,6 +39,7 @@ ath79_setup_macs()
        case "$board" in
        mikrotik,routerboard-921gs-5hpacd-15s|\
        mikrotik,routerboard-lhg-2nd|\
+       mikrotik,routerboard-sxt-5nd-r2|\
        mikrotik,routerboard-wap-g-5hact2hnd)
                label_mac="$mac_base"
                lan_mac="$mac_base"
index 61c323552bd5e67b000917ca392d6026bdfa34d3..30a7759ef2481c3a36af23bcdd95ea80ad5879fc 100644 (file)
@@ -12,7 +12,8 @@ board=$(board_name)
 case "$FIRMWARE" in
 "ath9k-eeprom-ahb-18100000.wmac.bin")
        case $board in
-       mikrotik,routerboard-lhg-2nd)
+       mikrotik,routerboard-lhg-2nd|\
+       mikrotik,routerboard-sxt-5nd-r2)
                caldata_from_file $wlan_data 0x1000 0x440 /tmp/$FIRMWARE
                ath9k_patch_mac $(macaddr_add "$mac_base" +1) /tmp/$FIRMWARE
                caldata_sysfsload_from_file /tmp/$FIRMWARE 0x0 0x440
index 3297b0abafe9eea3be8c4bdf84e64fe9beb3295e..d79bd03af54f114827c9d424f6306c277e644dd5 100644 (file)
@@ -33,7 +33,8 @@ platform_do_upgrade() {
        case "$board" in
        mikrotik,routerboard-493g|\
        mikrotik,routerboard-921gs-5hpacd-15s|\
-       mikrotik,routerboard-922uags-5hpacd)
+       mikrotik,routerboard-922uags-5hpacd|\
+       mikrotik,routerboard-sxt-5nd-r2)
                platform_do_upgrade_mikrotik_nand "$1"
                ;;
        *)