6e35f6b95a
Device specifications: ====================== * Qualcomm/Atheros QCA9558 ver 1 rev 0 * 720/600/240 MHz (CPU/DDR/AHB) * 128 MB of RAM * 16 MB of SPI NOR flash - 2x 7 MB available; but one of the 7 MB regions is the recovery image * 2T2R 2.4 GHz Wi-Fi (11n) * 2T2R 5 GHz Wi-Fi (11ac) * 6x GPIO-LEDs (3x wifi, 2x ethernet, 1x power) * external h/w watchdog (enabled by default)) * TTL pins are on board (arrow points to VCC, then follows: GND, TX, RX) * TI tmp423 (package kmod-hwmon-tmp421) for temperature monitoring * 2x ethernet - eth0 + AR8035 ethernet PHY (RGMII) + 10/100/1000 Mbps Ethernet + 802.3af POE + used as LAN interface - eth1 + AR8035 ethernet PHY (SGMII) + 10/100/1000 Mbps Ethernet + 18-24V passive POE (mode B) + used as WAN interface * 12-24V 1A DC * internal antennas Flashing instructions: ====================== Various methods can be used to install the actual image on the flash. Two easy ones are: ap51-flash ---------- The tool ap51-flash (https://github.com/ap51-flash/ap51-flash) should be used to transfer the image to the u-boot when the device boots up. initramfs from TFTP ------------------- The serial console must be used to access the u-boot shell during bootup. It can then be used to first boot up the initramfs image from a TFTP server (here with the IP 192.168.1.21): setenv serverip 192.168.1.21 setenv ipaddr 192.168.1.1 tftpboot 0c00000 <filename-of-initramfs-kernel>.bin && bootm $fileaddr The actual sysupgrade image can then be transferred (on the LAN port) to the device via scp <filename-of-squashfs-sysupgrade>.bin root@192.168.1.1:/tmp/ On the device, the sysupgrade must then be started using sysupgrade -n /tmp/<filename-of-squashfs-sysupgrade>.bin Gluon image name change ======================= The device had the image name "openmesh-om5p-ac" in older versions of Gluon. This had to be changed with the new name in the device trees of the ath79 device tree.
349 lines
9.0 KiB
Diff
349 lines
9.0 KiB
Diff
From: Sven Eckelmann <sven@narfation.org>
|
|
Date: Mon, 23 Nov 2020 13:41:34 +0100
|
|
Subject: ath79: Add support for OpenMesh OM5P-AC v1
|
|
|
|
Device specifications:
|
|
======================
|
|
|
|
* Qualcomm/Atheros QCA9558 ver 1 rev 0
|
|
* 720/600/240 MHz (CPU/DDR/AHB)
|
|
* 128 MB of RAM
|
|
* 16 MB of SPI NOR flash
|
|
- 2x 7 MB available; but one of the 7 MB regions is the recovery image
|
|
* 2T2R 2.4 GHz Wi-Fi (11n)
|
|
* 2T2R 5 GHz Wi-Fi (11ac)
|
|
* 6x GPIO-LEDs (3x wifi, 2x ethernet, 1x power)
|
|
* external h/w watchdog (enabled by default))
|
|
* TTL pins are on board (arrow points to VCC, then follows: GND, TX, RX)
|
|
* TI tmp423 (package kmod-hwmon-tmp421) for temperature monitoring
|
|
* 2x ethernet
|
|
- eth0
|
|
+ AR8035 ethernet PHY (RGMII)
|
|
+ 10/100/1000 Mbps Ethernet
|
|
+ 802.3af POE
|
|
+ used as LAN interface
|
|
- eth1
|
|
+ AR8035 ethernet PHY (SGMII)
|
|
+ 10/100/1000 Mbps Ethernet
|
|
+ 18-24V passive POE (mode B)
|
|
+ used as WAN interface
|
|
* 12-24V 1A DC
|
|
* internal antennas
|
|
|
|
Flashing instructions:
|
|
======================
|
|
|
|
Various methods can be used to install the actual image on the flash.
|
|
Two easy ones are:
|
|
|
|
ap51-flash
|
|
----------
|
|
|
|
The tool ap51-flash (https://github.com/ap51-flash/ap51-flash) should be
|
|
used to transfer the image to the u-boot when the device boots up.
|
|
|
|
initramfs from TFTP
|
|
-------------------
|
|
|
|
The serial console must be used to access the u-boot shell during bootup.
|
|
It can then be used to first boot up the initramfs image from a TFTP server
|
|
(here with the IP 192.168.1.21):
|
|
|
|
setenv serverip 192.168.1.21
|
|
setenv ipaddr 192.168.1.1
|
|
tftpboot 0c00000 <filename-of-initramfs-kernel>.bin && bootm $fileaddr
|
|
|
|
The actual sysupgrade image can then be transferred (on the LAN port) to the
|
|
device via
|
|
|
|
scp <filename-of-squashfs-sysupgrade>.bin root@192.168.1.1:/tmp/
|
|
|
|
On the device, the sysupgrade must then be started using
|
|
|
|
sysupgrade -n /tmp/<filename-of-squashfs-sysupgrade>.bin
|
|
|
|
Signed-off-by: Sven Eckelmann <sven@narfation.org>
|
|
(cherry picked from commit 97f561725962ddb8823b2e01563a0f37f7930477)
|
|
|
|
diff --git a/package/boot/uboot-envtools/files/ath79 b/package/boot/uboot-envtools/files/ath79
|
|
index f4ccb2faea4e5e6202413a76cd137065dc535fe7..08c066c3494e8ea6fa5db639e11caa6406f3c6f9 100644
|
|
--- a/package/boot/uboot-envtools/files/ath79
|
|
+++ b/package/boot/uboot-envtools/files/ath79
|
|
@@ -58,6 +58,7 @@ openmesh,mr900-v2|\
|
|
openmesh,mr1750-v1|\
|
|
openmesh,mr1750-v2|\
|
|
openmesh,om5p|\
|
|
+openmesh,om5p-ac-v1|\
|
|
openmesh,om5p-ac-v2|\
|
|
samsung,wam250|\
|
|
ubnt,nanostation-m|\
|
|
diff --git a/target/linux/ath79/dts/qca9558_openmesh_om5p-ac-v1.dts b/target/linux/ath79/dts/qca9558_openmesh_om5p-ac-v1.dts
|
|
new file mode 100644
|
|
index 0000000000000000000000000000000000000000..ae69992abf583168a0ab9a017a9aee33758dd4d8
|
|
--- /dev/null
|
|
+++ b/target/linux/ath79/dts/qca9558_openmesh_om5p-ac-v1.dts
|
|
@@ -0,0 +1,199 @@
|
|
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
|
|
+
|
|
+#include "qca955x.dtsi"
|
|
+
|
|
+#include <dt-bindings/gpio/gpio.h>
|
|
+#include <dt-bindings/input/input.h>
|
|
+
|
|
+/ {
|
|
+ compatible = "openmesh,om5p-ac-v1", "qca,qca9558";
|
|
+ model = "OpenMesh OM5P-AC v1";
|
|
+
|
|
+ chosen {
|
|
+ /delete-property/ bootargs;
|
|
+ };
|
|
+
|
|
+ aliases {
|
|
+ serial0 = &uart;
|
|
+ led-boot = &led_power_blue;
|
|
+ led-failsafe = &led_power_blue;
|
|
+ led-running = &led_power_blue;
|
|
+ led-upgrade = &led_power_blue;
|
|
+ label-mac-device = ð0;
|
|
+ };
|
|
+
|
|
+ leds {
|
|
+ compatible = "gpio-leds";
|
|
+
|
|
+ led_power_blue: power_blue {
|
|
+ label = "blue:power";
|
|
+ gpios = <&gpio 18 GPIO_ACTIVE_LOW>;
|
|
+ default-state = "on";
|
|
+ };
|
|
+
|
|
+ wan_blue {
|
|
+ label = "blue:wan";
|
|
+ gpios = <&gpio 19 GPIO_ACTIVE_LOW>;
|
|
+ };
|
|
+
|
|
+ lan_blue {
|
|
+ label = "blue:lan";
|
|
+ gpios = <&gpio 20 GPIO_ACTIVE_LOW>;
|
|
+ };
|
|
+
|
|
+ wifi_green {
|
|
+ label = "green:wifi";
|
|
+ gpios = <&gpio 21 GPIO_ACTIVE_LOW>;
|
|
+ linux,default-trigger = "phy0tpt";
|
|
+ };
|
|
+
|
|
+ wifi_yellow {
|
|
+ label = "yellow:wifi";
|
|
+ gpios = <&gpio 22 GPIO_ACTIVE_LOW>;
|
|
+ };
|
|
+
|
|
+ wifi_red {
|
|
+ label = "red:wifi";
|
|
+ gpios = <&gpio 23 GPIO_ACTIVE_LOW>;
|
|
+ };
|
|
+ };
|
|
+
|
|
+ i2c {
|
|
+ compatible = "i2c-gpio";
|
|
+ gpios = <&gpio 11 GPIO_ACTIVE_HIGH /* sda */
|
|
+ &gpio 12 GPIO_ACTIVE_HIGH /* scl */
|
|
+ >;
|
|
+ #address-cells = <1>;
|
|
+ #size-cells = <0>;
|
|
+
|
|
+ i2c-gpio,scl-open-drain;
|
|
+ i2c-gpio,sda-open-drain;
|
|
+
|
|
+ tmp423a@4c {
|
|
+ compatible = "ti,tmp423";
|
|
+ reg = <0x4c>;
|
|
+ };
|
|
+ };
|
|
+
|
|
+ watchdog {
|
|
+ compatible = "linux,wdt-gpio";
|
|
+ gpios = <&gpio 17 GPIO_ACTIVE_LOW>;
|
|
+ hw_algo = "toggle";
|
|
+ /* hw_margin_ms is actually 300s but driver limits it to 60s */
|
|
+ hw_margin_ms = <60000>;
|
|
+ always-running;
|
|
+ };
|
|
+};
|
|
+
|
|
+&spi {
|
|
+ status = "okay";
|
|
+
|
|
+ flash@0 {
|
|
+ compatible = "jedec,spi-nor";
|
|
+ reg = <0>;
|
|
+ spi-max-frequency = <40000000>;
|
|
+
|
|
+ /* partitions are passed via bootloader */
|
|
+ partitions {
|
|
+ compatible = "fixed-partitions";
|
|
+ #address-cells = <1>;
|
|
+ #size-cells = <1>;
|
|
+
|
|
+ partition@0 {
|
|
+ label = "u-boot";
|
|
+ reg = <0x000000 0x040000>;
|
|
+ read-only;
|
|
+ };
|
|
+
|
|
+ partition@40000 {
|
|
+ label = "u-boot-env";
|
|
+ reg = <0x040000 0x010000>;
|
|
+ };
|
|
+
|
|
+ partition@50000 {
|
|
+ label = "custom";
|
|
+ reg = <0x050000 0x060000>;
|
|
+ read-only;
|
|
+ };
|
|
+
|
|
+ partition@b0000 {
|
|
+ label = "inactive";
|
|
+ reg = <0x0b0000 0x7a0000>;
|
|
+ };
|
|
+
|
|
+ partition@850000 {
|
|
+ label = "inactive2";
|
|
+ reg = <0x850000 0x7a0000>;
|
|
+ };
|
|
+
|
|
+ art: partition@ff0000 {
|
|
+ label = "ART";
|
|
+ reg = <0xff0000 0x010000>;
|
|
+ read-only;
|
|
+ };
|
|
+ };
|
|
+ };
|
|
+};
|
|
+
|
|
+&mdio0 {
|
|
+ status = "okay";
|
|
+
|
|
+ phy-mask = <0x6>;
|
|
+
|
|
+ phy1: ethernet-phy@1 {
|
|
+ reg = <1>;
|
|
+ eee-broken-100tx;
|
|
+ eee-broken-1000t;
|
|
+ };
|
|
+
|
|
+ phy2: ethernet-phy@2 {
|
|
+ reg = <2>;
|
|
+ eee-broken-100tx;
|
|
+ eee-broken-1000t;
|
|
+ at803x-override-sgmii-link-check;
|
|
+ };
|
|
+};
|
|
+
|
|
+ð0 {
|
|
+ status = "okay";
|
|
+
|
|
+ pll-data = <0x82000101 0x80000101 0x80001313>;
|
|
+
|
|
+ mtd-mac-address = <&art 0x0>;
|
|
+
|
|
+ phy-mode = "rgmii-id";
|
|
+ phy-handle = <&phy1>;
|
|
+
|
|
+ gmac-config {
|
|
+ device = <&gmac>;
|
|
+ rgmii-enabled = <1>;
|
|
+ rxd-delay = <3>;
|
|
+ rxdv-delay = <3>;
|
|
+ txd-delay = <0>;
|
|
+ txen-delay = <0>;
|
|
+ };
|
|
+};
|
|
+
|
|
+ð1 {
|
|
+ status = "okay";
|
|
+
|
|
+ pll-data = <0x03000101 0x80000101 0x80001313>;
|
|
+
|
|
+ mtd-mac-address = <&art 0x6>;
|
|
+
|
|
+ qca955x-sgmii-fixup;
|
|
+
|
|
+ phy-handle = <&phy2>;
|
|
+};
|
|
+
|
|
+&wmac {
|
|
+ status = "okay";
|
|
+
|
|
+ mtd-cal-data = <&art 0x1000>;
|
|
+ mtd-mac-address = <&art 0x0>;
|
|
+ mac-address-increment = <2>;
|
|
+};
|
|
+
|
|
+&pcie1 {
|
|
+ status = "okay";
|
|
+};
|
|
diff --git a/target/linux/ath79/generic/base-files/etc/board.d/01_leds b/target/linux/ath79/generic/base-files/etc/board.d/01_leds
|
|
index f5384e7fc3859bab1d6c0422de7e173fad3abae2..68ea4281a56bff44147c7792990cc1e26bc10a7c 100755
|
|
--- a/target/linux/ath79/generic/base-files/etc/board.d/01_leds
|
|
+++ b/target/linux/ath79/generic/base-files/etc/board.d/01_leds
|
|
@@ -257,6 +257,10 @@ openmesh,om2p-v1)
|
|
ucidef_set_led_netdev "wan" "WAN" "blue:wan" "eth0"
|
|
ucidef_set_led_switch "lan" "LAN" "blue:lan" "switch0" "0x10"
|
|
;;
|
|
+openmesh,om5p-ac-v1)
|
|
+ ucidef_set_led_netdev "lan" "LAN" "blue:lan" "eth0"
|
|
+ ucidef_set_led_netdev "wan" "WAN" "blue:wan" "eth1"
|
|
+ ;;
|
|
pcs,cr3000)
|
|
ucidef_set_led_netdev "wan" "WAN" "blue:wan" "eth1"
|
|
ucidef_set_led_switch "lan1" "LAN1" "blue:lan1" "switch0" "0x04"
|
|
diff --git a/target/linux/ath79/generic/base-files/etc/hotplug.d/firmware/11-ath10k-caldata b/target/linux/ath79/generic/base-files/etc/hotplug.d/firmware/11-ath10k-caldata
|
|
index b70a87054b10fbe708d9aa8603ecdb591fc92591..00dbeec6a51457c23ba97aa627bf14acd8349f74 100644
|
|
--- a/target/linux/ath79/generic/base-files/etc/hotplug.d/firmware/11-ath10k-caldata
|
|
+++ b/target/linux/ath79/generic/base-files/etc/hotplug.d/firmware/11-ath10k-caldata
|
|
@@ -158,6 +158,10 @@ case "$FIRMWARE" in
|
|
;;
|
|
"ath10k/cal-pci-0000:01:00.0.bin")
|
|
case $board in
|
|
+ openmesh,om5p-ac-v1)
|
|
+ caldata_extract "ART" 0x5000 0x844
|
|
+ ath10k_patch_mac $(macaddr_add $(cat /sys/class/net/eth0/address) +16)
|
|
+ ;;
|
|
sitecom,wlr-8100)
|
|
caldata_extract "art" 0x5000 0x844
|
|
ath10k_patch_mac $(macaddr_add $(mtd_get_mac_ascii u-boot-env ethaddr) +1)
|
|
diff --git a/target/linux/ath79/generic/base-files/lib/upgrade/platform.sh b/target/linux/ath79/generic/base-files/lib/upgrade/platform.sh
|
|
index e9203f3a5b624e1e9b46c474e95e27583bcb6765..2cac42c9feaed3c0360091a5b7959e741d4a0473 100644
|
|
--- a/target/linux/ath79/generic/base-files/lib/upgrade/platform.sh
|
|
+++ b/target/linux/ath79/generic/base-files/lib/upgrade/platform.sh
|
|
@@ -82,6 +82,7 @@ platform_do_upgrade() {
|
|
openmesh,om2p-hs-v4|\
|
|
openmesh,om2p-lc|\
|
|
openmesh,om5p|\
|
|
+ openmesh,om5p-ac-v1|\
|
|
openmesh,om5p-ac-v2)
|
|
PART_NAME="inactive"
|
|
platform_do_upgrade_openmesh "$1"
|
|
diff --git a/target/linux/ath79/image/generic.mk b/target/linux/ath79/image/generic.mk
|
|
index 8113b515368b253d0812fbbb86278e7fde63a038..75dbc1c03b5c42b81463bf7c4ddd4aa5803afd69 100644
|
|
--- a/target/linux/ath79/image/generic.mk
|
|
+++ b/target/linux/ath79/image/generic.mk
|
|
@@ -1810,6 +1810,17 @@ define Device/openmesh_om5p
|
|
endef
|
|
TARGET_DEVICES += openmesh_om5p
|
|
|
|
+define Device/openmesh_om5p-ac-v1
|
|
+ $(Device/openmesh_common_64k)
|
|
+ SOC := qca9558
|
|
+ DEVICE_MODEL := OM5P-AC
|
|
+ DEVICE_VARIANT := v1
|
|
+ DEVICE_PACKAGES += kmod-ath10k-ct ath10k-firmware-qca988x-ct
|
|
+ OPENMESH_CE_TYPE := OM5PAC
|
|
+ SUPPORTED_DEVICES += om5p-ac
|
|
+endef
|
|
+TARGET_DEVICES += openmesh_om5p-ac-v1
|
|
+
|
|
define Device/openmesh_om5p-ac-v2
|
|
$(Device/openmesh_common_64k)
|
|
SOC := qca9558
|