aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorsven friedmann <sf.openwrt@okay.ms>2019-03-26 22:35:05 +0100
committerChristian Lamparter <chunkeey@gmail.com>2019-05-18 13:43:55 +0200
commit30dcbc741d84e36ea5408d99593ccb35f900cb5e (patch)
tree692c43d72ebc7b0dfe6fdd57dd2c01b285465cdd
parent819e7946b0964725dab50c92797f49cf4053d955 (diff)
downloadupstream-30dcbc741d84e36ea5408d99593ccb35f900cb5e.tar.gz
upstream-30dcbc741d84e36ea5408d99593ccb35f900cb5e.tar.bz2
upstream-30dcbc741d84e36ea5408d99593ccb35f900cb5e.zip
ath79: add support for EnGenius ECB1750
Specification: - Qualcomm Atheros SoC QCA9558 - 720/600/200 MHz (CPU/DDR/AHB) - 128 MB of RAM (DDR2) - 16 MB of FLASH (SPI NOR) - 1x 10/100/1000 Mbps Ethernet - 3T3R 2.4 GHz (QCA9558 WMAC) - 3T3R 5.8 Ghz (QCA9880-BR4A, Senao PCE4553AH) https://fccid.io/A8J-ECB1750 Tested and working: - lan, wireless, leds, sysupgrade (tftp) Flash instructions: 1.) tftp recovery - use a 1GbE switch or direct attached 1GbE link - setup client ip address 192.168.1.10 and start tftpd - save "openwrt-ath79-generic-engenius_ecb1750-initramfs-kernel.bin" as "ap.bin" in tfpd root directory - plugin powercord and hold reset button 10secs.. "ap.bin" will be downloaded and executed - afterwards login via ssh and do a sysuprade 2.) oem webinterface factory install (not tested) Use normal webinterface upgrade page und select "openwrt-ath79-generic-engenius_ecb1750-squashfs-factory.bin". 3.) oem webinterface command injection OEM Firmware already running OpenWrt (Attitude Adjustment 12.09). Use OEM webinterface and command injection. See wiki for details. https://openwrt.org/toh/engenius/engenius_ecb1750_1 Signed-off-by: sven friedmann <sf.openwrt@okay.ms> Signed-off-by: Christian Lamparter <chunkeey@gmail.com> [use interrupt-driven "gpio-keys" binding]
-rw-r--r--package/boot/uboot-envtools/files/ath791
-rwxr-xr-xtarget/linux/ath79/base-files/etc/board.d/01_leds3
-rwxr-xr-xtarget/linux/ath79/base-files/etc/board.d/02_network4
-rw-r--r--target/linux/ath79/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom4
-rw-r--r--target/linux/ath79/base-files/etc/hotplug.d/firmware/11-ath10k-caldata4
-rw-r--r--target/linux/ath79/dts/qca9558_engenius_ecb1750.dts144
-rw-r--r--target/linux/ath79/image/generic.mk12
7 files changed, 172 insertions, 0 deletions
diff --git a/package/boot/uboot-envtools/files/ath79 b/package/boot/uboot-envtools/files/ath79
index 2144f61070..069d7be06b 100644
--- a/package/boot/uboot-envtools/files/ath79
+++ b/package/boot/uboot-envtools/files/ath79
@@ -17,6 +17,7 @@ buffalo,wzr-hp-ag300h)
ubootenv_add_uci_config "/dev/mtd3" "0x0" "0x10000" "0x10000"
;;
buffalo,bhr-4grv2|\
+engenius,ecb1750|\
glinet,gl-ar300m-nand|\
glinet,gl-ar300m-nor|\
librerouter,librerouter-v1|\
diff --git a/target/linux/ath79/base-files/etc/board.d/01_leds b/target/linux/ath79/base-files/etc/board.d/01_leds
index 9c353baabe..40aacab331 100755
--- a/target/linux/ath79/base-files/etc/board.d/01_leds
+++ b/target/linux/ath79/base-files/etc/board.d/01_leds
@@ -58,6 +58,9 @@ comfast,cf-e5)
dlink,dir-859-a1)
ucidef_set_led_switch "internet" "WAN" "$boardname:green:internet" "switch0" "0x20"
;;
+engenius,ecb1750)
+ ucidef_set_led_netdev "lan" "LAN" "$boardname:blue:lan" "eth0"
+ ;;
engenius,ews511ap)
ucidef_set_led_netdev "lan1" "LAN1" "$boardname:blue:lan1" "eth0"
ucidef_set_led_netdev "lan2" "LAN2" "$boardname:blue:lan2" "eth1"
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 f877669f98..25f6f5bead 100755
--- a/target/linux/ath79/base-files/etc/board.d/02_network
+++ b/target/linux/ath79/base-files/etc/board.d/02_network
@@ -13,6 +13,7 @@ ath79_setup_interfaces()
devolo,dvl1200i|\
devolo,dvl1750c|\
devolo,dvl1750i|\
+ engenius,ecb1750|\
glinet,ar300m-lite|\
netgear,ex6400|\
netgear,ex7300|\
@@ -291,6 +292,9 @@ ath79_setup_macs()
elecom,wrc-300ghbk2-i)
wan_mac=$(macaddr_add "$(mtd_get_mac_binary ART 4098)" -2)
;;
+ engenius,ecb1750)
+ lan_mac=$(mtd_get_mac_ascii u-boot-env ethaddr)
+ ;;
engenius,epg5000|\
iodata,wn-ac1167dgr|\
iodata,wn-ac1600dgr|\
diff --git a/target/linux/ath79/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom b/target/linux/ath79/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom
index 90f8ca96d6..3321f28bcc 100644
--- a/target/linux/ath79/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom
+++ b/target/linux/ath79/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom
@@ -109,6 +109,10 @@ case "$FIRMWARE" in
ath9k_eeprom_extract "art" 4096 1088
ath9k_patch_fw_mac $(mtd_get_mac_ascii devdata "wlan24mac") 2
;;
+ engenius,ecb1750)
+ ath9k_eeprom_extract "art" 4096 1088
+ ath9k_patch_fw_mac $(macaddr_add $(mtd_get_mac_ascii u-boot-env "athaddr") +1) 2
+ ;;
engenius,epg5000|\
iodata,wn-ac1167dgr|\
iodata,wn-ac1600dgr|\
diff --git a/target/linux/ath79/base-files/etc/hotplug.d/firmware/11-ath10k-caldata b/target/linux/ath79/base-files/etc/hotplug.d/firmware/11-ath10k-caldata
index fc3f7142bb..47c72ce372 100644
--- a/target/linux/ath79/base-files/etc/hotplug.d/firmware/11-ath10k-caldata
+++ b/target/linux/ath79/base-files/etc/hotplug.d/firmware/11-ath10k-caldata
@@ -102,6 +102,10 @@ case "$FIRMWARE" in
elecom,wrc-1750ghbk2-i)
ath10kcal_extract "ART" 20480 2116
;;
+ engenius,ecb1750)
+ ath10kcal_extract "art" 20480 2116
+ ath10kcal_patch_mac $(mtd_get_mac_ascii u-boot-env athaddr)
+ ;;
engenius,epg5000|\
iodata,wn-ac1167dgr|\
iodata,wn-ac1600dgr2)
diff --git a/target/linux/ath79/dts/qca9558_engenius_ecb1750.dts b/target/linux/ath79/dts/qca9558_engenius_ecb1750.dts
new file mode 100644
index 0000000000..69bd244b7b
--- /dev/null
+++ b/target/linux/ath79/dts/qca9558_engenius_ecb1750.dts
@@ -0,0 +1,144 @@
+// 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 "qca9557.dtsi"
+
+/ {
+ compatible = "engenius,ecb1750", "qca,qca9557";
+ model = "EnGenius ECB1750";
+
+ chosen {
+ bootargs = "console=ttyS0,115200n8";
+ };
+
+ aliases {
+ led-boot = &power_orange;
+ led-failsafe = &power_orange;
+ led-running = &power_orange;
+ led-upgrade = &power_orange;
+ };
+
+ leds {
+ compatible = "gpio-leds";
+
+ power_orange: power_orange {
+ label = "ecb1750:orange:power";
+ gpios = <&gpio 22 GPIO_ACTIVE_LOW>;
+ default-state = "on";
+ };
+
+ wlan2g {
+ label = "ecb1750:blue:wlan2g";
+ gpios = <&gpio 13 GPIO_ACTIVE_LOW>;
+ linux,default-trigger = "phy1tpt";
+ };
+
+ wlan5g {
+ label = "ecb1750:blue:wlan5g";
+ gpios = <&gpio 23 GPIO_ACTIVE_LOW>;
+ linux,default-trigger = "phy0tpt";
+ };
+
+ lan {
+ label = "ecb1750:blue:lan";
+ gpios = <&gpio 12 GPIO_ACTIVE_LOW>;
+ };
+ };
+
+ keys {
+ compatible = "gpio-keys";
+
+ reset {
+ label = "reset";
+ linux,code = <KEY_RESTART>;
+ gpios = <&gpio 17 GPIO_ACTIVE_LOW>;
+ };
+ };
+};
+
+&pcie0 {
+ status = "okay";
+};
+
+&uart {
+ status = "okay";
+};
+
+&spi {
+ status = "okay";
+ num-cs = <1>;
+
+ flash@0 {
+ compatible = "jedec,spi-nor";
+ reg = <0>;
+ spi-max-frequency = <25000000>;
+
+ partitions {
+ compatible = "fixed-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ uboot: partition@0 {
+ label = "u-boot";
+ reg = <0x000000 0x040000>;
+ read-only;
+ };
+
+ partition@40000 {
+ label = "u-boot-env";
+ reg = <0x040000 0x010000>;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x050000 0xf50000>;
+ };
+
+ partition@fa0000 {
+ label = "userconfig";
+ reg = <0xfa0000 0x050000>;
+ };
+
+ art: partition@ff0000 {
+ label = "art";
+ reg = <0xff0000 0x010000>;
+ read-only;
+ };
+
+ };
+ };
+};
+
+&wmac {
+ status = "okay";
+
+ qca,no-eeprom;
+};
+
+&mdio0 {
+ status = "okay";
+
+ phy5: ethernet-phy@5 {
+ reg = <5>;
+ at803x-disable-smarteee;
+ };
+};
+
+&eth0 {
+ status = "okay";
+
+ pll-data = <0x9a000000 0x80000101 0x80001313>;
+
+ phy-handle = <&phy5>;
+ phy-mode = "rgmii";
+
+ gmac-config {
+ device = <&gmac>;
+ rgmii-gmac0 = <1>;
+ rxd-delay = <3>;
+ rxdv-delay = <3>;
+ };
+};
diff --git a/target/linux/ath79/image/generic.mk b/target/linux/ath79/image/generic.mk
index 8e162e1d0e..a96c9d279a 100644
--- a/target/linux/ath79/image/generic.mk
+++ b/target/linux/ath79/image/generic.mk
@@ -302,6 +302,18 @@ define Device/embeddedwireless_dorin
endef
TARGET_DEVICES += embeddedwireless_dorin
+define Device/engenius_ecb1750
+ ATH_SOC := qca9558
+ DEVICE_TITLE := EnGenius ECB1750
+ DEVICE_PACKAGES := kmod-ath10k-ct ath10k-firmware-qca988x-ct
+ IMAGE_SIZE := 15680k
+ IMAGE/factory.bin := append-kernel | pad-to $$$$(BLOCKSIZE) | \
+ append-rootfs | pad-rootfs | check-size $$$$(IMAGE_SIZE) | \
+ senao-header -r 0x101 -p 0x6d -t 2
+ IMAGE/sysupgrade.bin := append-kernel | append-rootfs | pad-rootfs | append-metadata | check-size $$$$(IMAGE_SIZE)
+endef
+TARGET_DEVICES += engenius_ecb1750
+
define Device/engenius_epg5000
ATH_SOC := qca9558
DEVICE_TITLE := EnGenius EPG5000