-
Notifications
You must be signed in to change notification settings - Fork 324
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #2325 from FreifunkVogtland/ath79-openmesh
ath79-generic: Re-add OpenMesh devices
- Loading branch information
Showing
8 changed files
with
1,790 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
337 changes: 337 additions & 0 deletions
337
patches/openwrt/0005-ath79-Add-support-for-OpenMesh-A60.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,337 @@ | ||
From: Sven Eckelmann <[email protected]> | ||
Date: Mon, 23 Nov 2020 13:41:34 +0100 | ||
Subject: ath79: Add support for OpenMesh A60 | ||
|
||
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 | ||
* 3T3R 2.4 GHz Wi-Fi (11n) | ||
* 3T3R 5 GHz Wi-Fi (11ac) | ||
* multi-color LED (controlled via red/green/blue GPIOs) | ||
* 1x GPIO-button (reset) | ||
* external h/w watchdog (enabled by default)) | ||
* TTL pins are on board (arrow points to VCC, then follows: GND, TX, RX) | ||
* 2x ethernet | ||
- eth0 | ||
+ Label: Ethernet 1 | ||
+ AR8035 ethernet PHY (RGMII) | ||
+ 10/100/1000 Mbps Ethernet | ||
+ 802.3af POE | ||
+ used as WAN interface | ||
- eth1 | ||
+ Label: Ethernet 2 | ||
+ AR8031 ethernet PHY (SGMII) | ||
+ 10/100/1000 Mbps Ethernet | ||
+ used as LAN interface | ||
* 1x USB | ||
* 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 [email protected]:/tmp/ | ||
|
||
On the device, the sysupgrade must then be started using | ||
|
||
sysupgrade -n /tmp/<filename-of-squashfs-sysupgrade>.bin | ||
|
||
Signed-off-by: Sven Eckelmann <[email protected]> | ||
(cherry picked from commit eaf2e32c12655d7fb58e158086a784393dc6f69a) | ||
|
||
diff --git a/package/boot/uboot-envtools/files/ath79 b/package/boot/uboot-envtools/files/ath79 | ||
index abcb99663dfd8e5d1ad0ee757e17972d63c856c7..0791d58b04cd108fcd2190bcf3c39f715f0b511f 100644 | ||
--- a/package/boot/uboot-envtools/files/ath79 | ||
+++ b/package/boot/uboot-envtools/files/ath79 | ||
@@ -49,6 +49,7 @@ netgear,wnr2200-16m|\ | ||
netgear,wnr612-v2|\ | ||
ocedo,koala|\ | ||
ocedo,raccoon|\ | ||
+openmesh,a60|\ | ||
openmesh,mr600-v1|\ | ||
openmesh,mr600-v2|\ | ||
openmesh,mr900-v1|\ | ||
diff --git a/target/linux/ath79/dts/qca9558_openmesh_a60.dts b/target/linux/ath79/dts/qca9558_openmesh_a60.dts | ||
new file mode 100644 | ||
index 0000000000000000000000000000000000000000..473f055b492f6dffb0c460fd13e7ad9b604373c6 | ||
--- /dev/null | ||
+++ b/target/linux/ath79/dts/qca9558_openmesh_a60.dts | ||
@@ -0,0 +1,8 @@ | ||
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT | ||
+ | ||
+#include "qca9558_openmesh_a60.dtsi" | ||
+ | ||
+/ { | ||
+ compatible = "openmesh,a60", "qca,qca9558"; | ||
+ model = "OpenMesh A60"; | ||
+}; | ||
diff --git a/target/linux/ath79/dts/qca9558_openmesh_a60.dtsi b/target/linux/ath79/dts/qca9558_openmesh_a60.dtsi | ||
new file mode 100644 | ||
index 0000000000000000000000000000000000000000..9938e5f4c013575c686edce5699f3541942133d3 | ||
--- /dev/null | ||
+++ b/target/linux/ath79/dts/qca9558_openmesh_a60.dtsi | ||
@@ -0,0 +1,180 @@ | ||
+// 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> | ||
+ | ||
+/ { | ||
+ chosen { | ||
+ /delete-property/ bootargs; | ||
+ }; | ||
+ | ||
+ aliases { | ||
+ serial0 = &uart; | ||
+ led-boot = &led_status_green; | ||
+ led-failsafe = &led_status_green; | ||
+ led-running = &led_status_green; | ||
+ led-upgrade = &led_status_green; | ||
+ label-mac-device = ð0; | ||
+ }; | ||
+ | ||
+ keys { | ||
+ compatible = "gpio-keys"; | ||
+ | ||
+ reset { | ||
+ label = "reset"; | ||
+ linux,code = <KEY_RESTART>; | ||
+ gpios = <&gpio 17 GPIO_ACTIVE_LOW>; | ||
+ }; | ||
+ }; | ||
+ | ||
+ leds { | ||
+ compatible = "gpio-leds"; | ||
+ | ||
+ status_blue { | ||
+ label = "blue:status"; | ||
+ gpios = <&gpio 13 GPIO_ACTIVE_HIGH>; | ||
+ }; | ||
+ | ||
+ status_red { | ||
+ label = "red:status"; | ||
+ gpios = <&gpio 22 GPIO_ACTIVE_HIGH>; | ||
+ }; | ||
+ | ||
+ led_status_green: status_green { | ||
+ label = "green:status"; | ||
+ gpios = <&gpio 23 GPIO_ACTIVE_HIGH>; | ||
+ }; | ||
+ }; | ||
+ | ||
+ watchdog { | ||
+ compatible = "linux,wdt-gpio"; | ||
+ gpios = <&gpio 16 GPIO_ACTIVE_LOW>; | ||
+ hw_algo = "toggle"; | ||
+ /* hw_margin_ms is actually 300s but driver limits it to 60s */ | ||
+ hw_margin_ms = <60000>; | ||
+ always-running; | ||
+ }; | ||
+}; | ||
+ | ||
+&usb_phy1 { | ||
+ status = "okay"; | ||
+}; | ||
+ | ||
+&usb1 { | ||
+ status = "okay"; | ||
+}; | ||
+ | ||
+&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>; | ||
+ mtd-mac-address-increment = <2>; | ||
+}; | ||
+ | ||
+&pcie0 { | ||
+ status = "okay"; | ||
+}; | ||
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 d4f53e7dae16b84955d318b9d79b6912ee156bdb..4b83ac7d32fc372cd3b493e8ec427c04e0f2e0d1 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 | ||
@@ -172,6 +172,7 @@ ath79_setup_interfaces() | ||
comfast,cf-e120a-v3|\ | ||
comfast,cf-e314n-v2|\ | ||
compex,wpj531-16m|\ | ||
+ openmesh,a60|\ | ||
openmesh,om2p-v4|\ | ||
openmesh,om2p-hs-v4|\ | ||
plasmacloud,pa300|\ | ||
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 69735f336070a48ddad76c72c2876bcd775c56a1..b4c8a78a7fe4ba5bd3ca1f9c6e2b5e51e7fd1882 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 | ||
@@ -99,6 +99,7 @@ case "$FIRMWARE" in | ||
caldata_extract "art" 0x5000 0x844 | ||
ath10k_patch_mac $(mtd_get_mac_binary art 0xc) | ||
;; | ||
+ openmesh,a60|\ | ||
openmesh,mr1750-v1|\ | ||
openmesh,mr1750-v2|\ | ||
openmesh,om5p-ac-v2) | ||
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 1240ef51e88ed2e5d24088746596da085c01ab5c..f7862bb032fbce56be77e9db8ae2e37bf5da30ea 100644 | ||
--- a/target/linux/ath79/generic/base-files/lib/upgrade/platform.sh | ||
+++ b/target/linux/ath79/generic/base-files/lib/upgrade/platform.sh | ||
@@ -65,6 +65,7 @@ platform_do_upgrade() { | ||
jjplus,ja76pf2) | ||
redboot_fis_do_upgrade "$1" linux | ||
;; | ||
+ openmesh,a60|\ | ||
openmesh,mr600-v1|\ | ||
openmesh,mr600-v2|\ | ||
openmesh,mr900-v1|\ | ||
diff --git a/target/linux/ath79/image/generic.mk b/target/linux/ath79/image/generic.mk | ||
index 304e58980062465ba7955e5fe45dbd6b0097937b..c669eb2cdb3f868c320412801723ceb112b4089f 100644 | ||
--- a/target/linux/ath79/image/generic.mk | ||
+++ b/target/linux/ath79/image/generic.mk | ||
@@ -1640,6 +1640,16 @@ define Device/openmesh_common_256k | ||
openmesh-image ce_type=$$$$(OPENMESH_CE_TYPE) | append-metadata | ||
endef | ||
|
||
+define Device/openmesh_a60 | ||
+ $(Device/openmesh_common_64k) | ||
+ SOC := qca9558 | ||
+ DEVICE_MODEL := A60 | ||
+ DEVICE_PACKAGES += kmod-ath10k-ct ath10k-firmware-qca988x-ct kmod-usb2 | ||
+ OPENMESH_CE_TYPE := A60 | ||
+ SUPPORTED_DEVICES += a60 | ||
+endef | ||
+TARGET_DEVICES += openmesh_a60 | ||
+ | ||
define Device/openmesh_mr600-v1 | ||
$(Device/openmesh_common_64k) | ||
SOC := ar9344 |
Oops, something went wrong.