[PATCH 2/2] ath79: add support for Ubiquiti UniFi AP Outdoor+
David Bauer
mail at david-bauer.net
Fri Jan 22 19:58:54 EST 2021
Hardware
--------
Atheros AR7241
16M SPI-NOR
64M DDR2
Atheros AR9283 2T2R b/g/n
2x Fast Ethernet (built-in)
Installation
------------
Transfer the Firmware update to the device using SCP.
Install using fwupdate.real -m <openwrt.bin> -d
Signed-off-by: David Bauer <mail at david-bauer.net>
---
.../dts/ar7241_ubnt_unifi-ap-outdoor-plus.dts | 102 ++++++++++++++++++
target/linux/ath79/dts/ar7241_ubnt_unifi.dts | 45 +-------
target/linux/ath79/dts/ar7241_ubnt_unifi.dtsi | 52 +++++++++
.../generic/base-files/etc/board.d/02_network | 3 +-
.../etc/hotplug.d/firmware/10-ath9k-eeprom | 3 +-
target/linux/ath79/image/generic-ubnt.mk | 30 ++++--
6 files changed, 180 insertions(+), 55 deletions(-)
create mode 100644 target/linux/ath79/dts/ar7241_ubnt_unifi-ap-outdoor-plus.dts
create mode 100644 target/linux/ath79/dts/ar7241_ubnt_unifi.dtsi
diff --git a/target/linux/ath79/dts/ar7241_ubnt_unifi-ap-outdoor-plus.dts b/target/linux/ath79/dts/ar7241_ubnt_unifi-ap-outdoor-plus.dts
new file mode 100644
index 0000000000..936850b7df
--- /dev/null
+++ b/target/linux/ath79/dts/ar7241_ubnt_unifi-ap-outdoor-plus.dts
@@ -0,0 +1,102 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+
+#include "ar7241_ubnt_unifi.dtsi"
+
+/ {
+ compatible = "ubnt,unifi-ap-outdoor-plus", "qca,ar7241";
+ model = "Ubiquiti UniFi AP Outdoor+";
+
+ aliases {
+ led-boot = &led_white;
+ led-failsafe = &led_white;
+ led-running = &led_white;
+ led-upgrade = &led_white;
+ };
+
+ leds {
+ compatible = "gpio-leds";
+
+ led_white: white {
+ label = "blue";
+ gpios = <&gpio 0 GPIO_ACTIVE_HIGH>;
+ };
+
+ blue {
+ label = "white";
+ gpios = <&gpio 1 GPIO_ACTIVE_HIGH>;
+ };
+ };
+};
+
+&spi {
+ status = "okay";
+
+ flash at 0 {
+ compatible = "jedec,spi-nor";
+ reg = <0>;
+ spi-max-frequency = <50000000>;
+
+ partitions {
+ compatible = "fixed-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ uboot: partition at 0 {
+ label = "u-boot";
+ reg = <0x0 0x40000>;
+ read-only;
+ };
+
+ partition at 40000 {
+ label = "u-boot-env";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition at 50000 {
+ label = "firmware";
+ reg = <0x50000 0xf60000>;
+
+ compatible = "fixed-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition at 0 {
+ label = "kernel";
+ reg = <0x0 0x300000>;
+ /* Can be resized w/o issues.
+ * U-Boot can load kernel from the
+ * entirety of the "firmware" partition space.
+ */
+ };
+
+ partition at 300000 {
+ label = "rootfs";
+ reg = <0x300000 0xc60000>;
+ };
+ };
+
+ partition at fb0000 {
+ label = "cfg";
+ reg = <0xfb0000 0x40000>;
+ read-only;
+ };
+
+ art: partition at ff0000 {
+ label = "art";
+ reg = <0xff0000 0x10000>;
+ read-only;
+ };
+ };
+ };
+};
+
+ð1 {
+ status = "okay";
+
+ mtd-mac-address = <&art 0x6>;
+};
+
+&wifi {
+ ath9k,ubnt-hsr;
+};
diff --git a/target/linux/ath79/dts/ar7241_ubnt_unifi.dts b/target/linux/ath79/dts/ar7241_ubnt_unifi.dts
index bdb4c61a48..287e8cc7db 100644
--- a/target/linux/ath79/dts/ar7241_ubnt_unifi.dts
+++ b/target/linux/ath79/dts/ar7241_ubnt_unifi.dts
@@ -1,9 +1,6 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
-#include "ar7241.dtsi"
-
-#include <dt-bindings/gpio/gpio.h>
-#include <dt-bindings/input/input.h>
+#include "ar7241_ubnt_unifi.dtsi"
/ {
compatible = "ubnt,unifi", "qca,ar7241";
@@ -14,23 +11,6 @@
led-failsafe = &led_dome_green;
led-running = &led_dome_green;
led-upgrade = &led_dome_green;
- label-mac-device = &wifi;
- };
-
- extosc: ref {
- compatible = "fixed-clock";
- #clock-cells = <0>;
- clock-frequency = <40000000>;
- };
-
- keys {
- compatible = "gpio-keys";
-
- reset {
- linux,code = <KEY_RESTART>;
- gpios = <&gpio 12 GPIO_ACTIVE_LOW>;
- debounce-interval = <60>;
- };
};
leds {
@@ -48,14 +28,6 @@
};
};
-&uart {
- status = "okay";
-};
-
-&pll {
- clocks = <&extosc>;
-};
-
&spi {
status = "okay";
@@ -108,21 +80,6 @@
};
};
-&pcie {
- status = "okay";
-
- wifi: wifi at 0,0 {
- reg = <0x0000 0 0 0 0>;
- qca,no-eeprom;
- };
-};
-
-ð0 {
- status = "okay";
-
- mtd-mac-address = <&art 0x0>;
-};
-
ð1 {
compatible = "syscon", "simple-mfd";
};
diff --git a/target/linux/ath79/dts/ar7241_ubnt_unifi.dtsi b/target/linux/ath79/dts/ar7241_ubnt_unifi.dtsi
new file mode 100644
index 0000000000..7bf79f7465
--- /dev/null
+++ b/target/linux/ath79/dts/ar7241_ubnt_unifi.dtsi
@@ -0,0 +1,52 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+
+#include "ar7241.dtsi"
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+
+/ {
+ aliases {
+ label-mac-device = &wifi;
+ };
+
+ extosc: ref {
+ compatible = "fixed-clock";
+ #clock-cells = <0>;
+ clock-frequency = <40000000>;
+ };
+
+ keys {
+ compatible = "gpio-keys";
+
+ reset {
+ linux,code = <KEY_RESTART>;
+ gpios = <&gpio 12 GPIO_ACTIVE_LOW>;
+ debounce-interval = <60>;
+ };
+ };
+};
+
+&uart {
+ status = "okay";
+};
+
+&pll {
+ clocks = <&extosc>;
+};
+
+&pcie {
+ status = "okay";
+
+ wifi: wifi at 0,0 {
+ reg = <0x0000 0 0 0 0>;
+ qca,no-eeprom;
+ };
+};
+
+ð0 {
+ status = "okay";
+
+ mtd-mac-address = <&art 0x0>;
+};
+
diff --git a/target/linux/ath79/generic/base-files/etc/board.d/02_network b/target/linux/ath79/generic/base-files/etc/board.d/02_network
index 0c08871f99..9db4799e52 100755
--- a/target/linux/ath79/generic/base-files/etc/board.d/02_network
+++ b/target/linux/ath79/generic/base-files/etc/board.d/02_network
@@ -107,7 +107,8 @@ ath79_setup_interfaces()
alfa-network,n5q|\
devolo,dvl1200e|\
devolo,dvl1750e|\
- ocedo,ursus)
+ ocedo,ursus|\
+ ubnt,unifi-ap-outdoor-plus)
ucidef_set_interface_lan "eth0 eth1"
;;
avm,fritz4020|\
diff --git a/target/linux/ath79/generic/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom b/target/linux/ath79/generic/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom
index d50d8d9f82..552eb406ab 100644
--- a/target/linux/ath79/generic/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom
+++ b/target/linux/ath79/generic/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom
@@ -74,7 +74,8 @@ case "$FIRMWARE" in
avm,fritz300e)
caldata_extract_reverse "urloader" 0x1541 0x440
;;
- buffalo,wzr-hp-g302h-a1a0)
+ buffalo,wzr-hp-g302h-a1a0|\
+ ubnt,unifi-ap-outdoor-plus)
caldata_extract "art" 0x1000 0xeb8
;;
buffalo,wzr-hp-g450h|\
diff --git a/target/linux/ath79/image/generic-ubnt.mk b/target/linux/ath79/image/generic-ubnt.mk
index 91a18d3d35..733d803d7a 100644
--- a/target/linux/ath79/image/generic-ubnt.mk
+++ b/target/linux/ath79/image/generic-ubnt.mk
@@ -120,6 +120,18 @@ define Device/ubnt-xw
UBNT_VERSION := 6.0.4
endef
+define Device/ubnt-unifi-jffs2
+ $(Device/ubnt)
+ KERNEL_SIZE := 3072k
+ IMAGE_SIZE := 15744k
+ UBNT_TYPE := BZ
+ KERNEL := kernel-bin | append-dtb | lzma | uImage lzma | jffs2 kernel0
+ IMAGES := sysupgrade.bin factory.bin
+ IMAGE/sysupgrade.bin := append-kernel | pad-to $$$$(KERNEL_SIZE) | append-rootfs |\
+ pad-rootfs | append-metadata | check-size
+ IMAGE/factory.bin := $$(IMAGE/sysupgrade.bin) | mkubntimage2
+endef
+
define Device/ubnt-acb
$(Device/ubnt)
IMAGE_SIZE := 15744k
@@ -420,19 +432,19 @@ define Device/ubnt_unifiac-pro
endef
TARGET_DEVICES += ubnt_unifiac-pro
+define Device/ubnt_unifi-ap-outdoor-plus
+ $(Device/ubnt-bz)
+ $(Device/ubnt-unifi-jffs2)
+ DEVICE_MODEL := UniFi AP Outdoor+
+ SUPPORTED_DEVICES += unifi-outdoor-plus
+endef
+TARGET_DEVICES += ubnt_unifi-ap-outdoor-plus
+
define Device/ubnt_unifi-ap-pro
+ $(Device/ubnt-unifi-jffs2)
SOC := ar9344
- DEVICE_VENDOR := Ubiquiti
DEVICE_MODEL := UniFi AP Pro
- UBNT_TYPE := BZ
UBNT_CHIP := ar934x
- KERNEL_SIZE := 3072k
- IMAGE_SIZE := 15744k
- KERNEL := kernel-bin | append-dtb | lzma | uImage lzma | jffs2 kernel0
- IMAGES := sysupgrade.bin factory.bin
- IMAGE/sysupgrade.bin := append-kernel | pad-to $$$$(KERNEL_SIZE) | append-rootfs |\
- pad-rootfs | append-metadata | check-size
- IMAGE/factory.bin := $$(IMAGE/sysupgrade.bin) | mkubntimage2
SUPPORTED_DEVICES += uap-pro
endef
TARGET_DEVICES += ubnt_unifi-ap-pro
--
2.30.0
More information about the openwrt-devel
mailing list