aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xtarget/linux/ath79/base-files/etc/board.d/02_network13
-rw-r--r--target/linux/ath79/base-files/lib/upgrade/platform.sh13
-rw-r--r--target/linux/ath79/dts/ar7161_ubnt_routerstation-pro.dts33
-rw-r--r--target/linux/ath79/dts/ar7161_ubnt_routerstation.dts27
-rw-r--r--target/linux/ath79/dts/ar7161_ubnt_routerstation.dtsi106
-rw-r--r--target/linux/ath79/generic/config-default1
-rw-r--r--target/linux/ath79/image/generic-ubnt.mk30
7 files changed, 223 insertions, 0 deletions
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 1a83d56cc7..14f6c59822 100755
--- a/target/linux/ath79/base-files/etc/board.d/02_network
+++ b/target/linux/ath79/base-files/etc/board.d/02_network
@@ -141,6 +141,14 @@ ath79_setup_interfaces()
tplink,tl-wr941-v2)
ucidef_set_interfaces_lan_wan "lan1 lan2 lan3 lan4" "wan"
;;
+ ubnt,routerstation)
+ ucidef_set_interfaces_lan_wan "eth1" "eth0"
+ ;;
+ ubnt,routerstation-pro)
+ ucidef_set_interface_wan "eth0"
+ ucidef_add_switch "switch0" \
+ "0@eth1" "2:lan:3" "3:lan:2" "4:lan:1"
+ ;;
ubnt,unifiac-mesh-pro|\
ubnt,unifiac-pro)
ucidef_add_switch "switch0" \
@@ -194,6 +202,11 @@ ath79_setup_macs()
base_mac=$(mtd_get_mac_binary u-boot 130048)
wan_mac=$(macaddr_add "$base_mac" 1)
;;
+ ubnt,routerstation|\
+ ubnt,routerstation-pro)
+ wan_mac=$(fconfig -s -r -d $(find_mtd_part "RedBoot config") -n ar7100_esa)
+ lan_mac=$(macaddr_add "$wan_mac" 1)
+ ;;
esac
[ -n "$lan_mac" ] && ucidef_set_interface_macaddr "lan" $lan_mac
diff --git a/target/linux/ath79/base-files/lib/upgrade/platform.sh b/target/linux/ath79/base-files/lib/upgrade/platform.sh
index 08039e0052..806b3f0787 100644
--- a/target/linux/ath79/base-files/lib/upgrade/platform.sh
+++ b/target/linux/ath79/base-files/lib/upgrade/platform.sh
@@ -5,6 +5,15 @@
PART_NAME=firmware
REQUIRE_IMAGE_METADATA=1
+routerstation_do_upgrade() {
+ local append
+ local kern_length=0x$(dd if="$1" bs=2 skip=1 count=4 2>/dev/null)
+
+ [ -f "$CONF_TAR" -a "$SAVE_CONFIG" -eq 1 ] && append="-j $CONF_TAR"
+ dd if="$1" bs=64k skip=1 2>/dev/null | \
+ mtd -r $append -Fkernel:$kern_length:0x80060000,rootfs write - kernel:rootfs
+}
+
platform_check_image() {
return 0
}
@@ -17,6 +26,10 @@ platform_do_upgrade() {
PART_NAME="rootfs:kernel"
default_do_upgrade "$ARGV"
;;
+ ubnt,routerstation|\
+ ubnt,routerstation-pro)
+ routerstation_do_upgrade "$ARGV"
+ ;;
*)
default_do_upgrade "$ARGV"
;;
diff --git a/target/linux/ath79/dts/ar7161_ubnt_routerstation-pro.dts b/target/linux/ath79/dts/ar7161_ubnt_routerstation-pro.dts
new file mode 100644
index 0000000000..123d1efbf1
--- /dev/null
+++ b/target/linux/ath79/dts/ar7161_ubnt_routerstation-pro.dts
@@ -0,0 +1,33 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/dts-v1/;
+
+#include "ar7161_ubnt_routerstation.dtsi"
+
+/ {
+ compatible = "ubnt,routerstation-pro", "qca,ar7161";
+ model = "Ubiquiti RouterStation Pro";
+};
+
+&mdio0 {
+ status = "okay";
+
+ phy0: ethernet-phy@0 {
+ reg = <0>;
+ };
+
+ phy4: ethernet-phy@4 {
+ reg = <4>;
+ };
+};
+
+&eth0 {
+ compatible = "qca,ar7100-eth", "syscon";
+ phy-mode = "rgmii";
+ phy-handle = <&phy4>;
+};
+
+&eth1 {
+ compatible = "qca,ar7100-eth", "syscon";
+ phy-mode = "rgmii";
+ phy-handle = <&phy0>;
+};
diff --git a/target/linux/ath79/dts/ar7161_ubnt_routerstation.dts b/target/linux/ath79/dts/ar7161_ubnt_routerstation.dts
new file mode 100644
index 0000000000..63b46b9c79
--- /dev/null
+++ b/target/linux/ath79/dts/ar7161_ubnt_routerstation.dts
@@ -0,0 +1,27 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/dts-v1/;
+
+#include "ar7161_ubnt_routerstation.dtsi"
+
+/ {
+ compatible = "ubnt,routerstation", "qca,ar7161";
+ model = "Ubiquiti Networks RouterStation";
+};
+
+&eth0 {
+ phy-mode = "mii";
+
+ fixed-link {
+ speed = <100>;
+ full-duplex;
+ };
+};
+
+&eth1 {
+ phy-mode = "rmii";
+
+ fixed-link {
+ speed = <100>;
+ full-duplex;
+ };
+};
diff --git a/target/linux/ath79/dts/ar7161_ubnt_routerstation.dtsi b/target/linux/ath79/dts/ar7161_ubnt_routerstation.dtsi
new file mode 100644
index 0000000000..143a4b7e80
--- /dev/null
+++ b/target/linux/ath79/dts/ar7161_ubnt_routerstation.dtsi
@@ -0,0 +1,106 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/dts-v1/;
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+
+#include "ar7100.dtsi"
+
+/ {
+ chosen {
+ bootargs = "console=ttyS0,115200";
+ };
+
+ aliases {
+ led-boot = &rf;
+ led-failsafe = &rf;
+ led-running = &rf;
+ led-upgrade = &rf;
+ };
+
+ extosc: ref {
+ compatible = "fixed-clock";
+ #clock-cells = <0>;
+ clock-output-names = "ref";
+ clock-frequency = <40000000>;
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ rf: rf_green {
+ label = "ubnt:green:rf";
+ gpios = <&gpio 2 GPIO_ACTIVE_HIGH>;
+ default-state = "off";
+ };
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ poll-interval = <20>;
+ debounce-interval = <60>;
+
+ wps {
+ label = "sw4";
+ linux,code = <KEY_RESTART>;
+ gpios = <&gpio 8 GPIO_ACTIVE_LOW>;
+ };
+ };
+};
+
+&eth0 {
+ status = "okay";
+};
+
+&eth1 {
+ status = "okay";
+};
+
+&pcie0 {
+ status = "okay";
+};
+
+&spi {
+ status = "okay";
+ num-cs = <1>;
+
+ flash@0 {
+ compatible = "jedec,spi-nor";
+ reg = <0>;
+ spi-max-frequency = <25000000>;
+
+ partitions {
+ compatible = "ecoscentric,redboot-fis-partitions";
+ };
+ };
+};
+
+&uart {
+ status = "okay";
+};
+
+&usb_phy {
+ status = "okay";
+};
+
+&usb1 {
+ status = "okay";
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ usb_ochi_port: port@1 {
+ reg = <1>;
+ #trigger-source-cells = <0>;
+ };
+};
+
+&usb2 {
+ status = "okay";
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ usb_echi_port: port@1 {
+ reg = <1>;
+ #trigger-source-cells = <0>;
+ };
+};
diff --git a/target/linux/ath79/generic/config-default b/target/linux/ath79/generic/config-default
index a7d0d89aa9..b2194a4132 100644
--- a/target/linux/ath79/generic/config-default
+++ b/target/linux/ath79/generic/config-default
@@ -5,6 +5,7 @@ CONFIG_IP17XX_PHY=y
CONFIG_LEDS_RESET=y
CONFIG_MARVELL_PHY=y
CONFIG_MICREL_PHY=y
+CONFIG_MTD_REDBOOT_PARTS=y
CONFIG_MTD_SPLIT_EVA_FW=y
CONFIG_OF_ADDRESS_PCI=y
CONFIG_OF_PCI=y
diff --git a/target/linux/ath79/image/generic-ubnt.mk b/target/linux/ath79/image/generic-ubnt.mk
index 4681996a7b..49f5fcc4f2 100644
--- a/target/linux/ath79/image/generic-ubnt.mk
+++ b/target/linux/ath79/image/generic-ubnt.mk
@@ -117,3 +117,33 @@ define Device/ubnt_unifiac-pro
SUPPORTED_DEVICES += ubnt-unifiac-pro
endef
TARGET_DEVICES += ubnt_unifiac-pro
+
+define Device/ubnt_routerstation_common
+ DEVICE_PACKAGES := -kmod-ath9k -wpad-mini -uboot-envtools kmod-usb-ohci kmod-usb2 fconfig
+ ATH_SOC := ar7161
+ IMAGE_SIZE := 16128k
+ IMAGES := sysupgrade.bin factory.bin
+ IMAGE/factory.bin := append-rootfs | pad-rootfs | mkubntimage | check-size $$$$(IMAGE_SIZE)
+ IMAGE/sysupgrade.bin := append-rootfs | pad-rootfs | combined-image | check-size $$$$(IMAGE_SIZE) | append-metadata
+ KERNEL := kernel-bin | append-dtb | lzma | pad-to $$(BLOCKSIZE)
+ KERNEL_INITRAMFS := kernel-bin | append-dtb
+endef
+
+define Device/ubnt_routerstation
+ $(Device/ubnt_routerstation_common)
+ DEVICE_TITLE := Ubiquiti RouterStation
+ UBNT_BOARD := RS
+ UBNT_TYPE := RSx
+ UBNT_CHIP := ar7100
+ DEVICE_PACKAGES += -swconfig
+endef
+TARGET_DEVICES += ubnt_routerstation
+
+define Device/ubnt_routerstation-pro
+ $(Device/ubnt_routerstation_common)
+ DEVICE_TITLE := Ubiquiti RouterStation Pro
+ UBNT_BOARD := RSPRO
+ UBNT_TYPE := RSPRO
+ UBNT_CHIP := ar7100pro
+endef
+TARGET_DEVICES += ubnt_routerstation-pro