From 2b4ac79a791d9451f601d494dde2e71864174358 Mon Sep 17 00:00:00 2001 From: Steven Lin Date: Fri, 19 Oct 2018 16:55:08 +0800 Subject: [PATCH] ipq40xx: add support for EnGenius EAP1300 MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit SOC: IPQ4018 / QCA Dakota CPU: Quad-Core ARMv7 Processor rev 5 (v7l) Cortex-A7 DRAM: 256 MiB NOR: 32 MiB ETH: Qualcomm Atheros QCA8072 WLAN1: Qualcomm Atheros QCA4018 2.4GHz 802.11bgn 2:2x2 WLAN2: Qualcomm Atheros QCA4018 5GHz 802.11a/n/ac 2:2x2 INPUT: RESET Button LEDS: Power, LAN, MESH, WLAN 2.4GHz, WLAN 5GHz 1. Load Ramdisk via U-Boot To set up the flash memory environment, do the following: a. As a preliminary step, ensure that the board console port is connected to the PC using these RS232 parameters: * 115200bps * 8N1 b. Confirm that the PC is connected to the board using one of the Ethernet ports. Set a static ip 192.168.99.8 for Ethernet that connects to board. The PC must have a TFTP server launched and listening on the interface to which the board is connected. At this stage power up the board and, after a few seconds, press 4 and then any key during the countdown. U-BOOT> set serverip 192.168.99.8 && set ipaddr 192.168.99.9 && tftpboot 0x84000000 openwrt.itb && bootm 2. Load image via GUI a. Upgrade EAP1300 to FW v3.5.3.2 In the GUI, System Manager > Firmware > Firmware Upgrade, to do upgrade. b. Transfer to OpenWrt from EnGenius. In Firmware Upgrade page, to upgrade yours openwrt-ipq40xx-engenius_eap1300-squashfs-sysupgrade.bin. 3. Revert to EnGenius EAP1300 To flash openwrt-ipq40xx-engenius_eap1300-squashfs-factory.bin by using sysupgrade command and "DO NOT" keep configuration. $ sysupgrade –n openwrt-ipq40xx-engenius_eap1300-squashfs-factory.bin Signed-off-by: Steven Lin --- package/firmware/ipq-wifi/Makefile | 3 +- .../ipq-wifi/board-engenius_eap1300.bin | Bin 0 -> 24324 bytes .../ipq40xx/base-files/etc/board.d/01_leds | 6 + .../ipq40xx/base-files/etc/board.d/02_network | 13 +- .../etc/hotplug.d/firmware/11-ath10k-caldata | 2 + .../arm/boot/dts/qcom-ipq4018-eap1300.dts | 230 ++++++++++++++++++ target/linux/ipq40xx/image/Makefile | 14 ++ .../901-arm-boot-add-dts-files.patch | 3 +- 8 files changed, 263 insertions(+), 8 deletions(-) create mode 100644 package/firmware/ipq-wifi/board-engenius_eap1300.bin create mode 100644 target/linux/ipq40xx/files-4.14/arch/arm/boot/dts/qcom-ipq4018-eap1300.dts diff --git a/package/firmware/ipq-wifi/Makefile b/package/firmware/ipq-wifi/Makefile index 51da4bc465f3..4b39f970dd6a 100644 --- a/package/firmware/ipq-wifi/Makefile +++ b/package/firmware/ipq-wifi/Makefile @@ -17,7 +17,7 @@ endef # Please send a mail with your device-specific board files upstream. # You can find instructions and examples on the linux-wireless wiki: # -ALLWIFIBOARDS:= +ALLWIFIBOARDS:=engenius_eap1300 ALLWIFIPACKAGES:=$(foreach BOARD,$(ALLWIFIBOARDS),ipq-wifi-$(BOARD)) define Package/ipq-wifi-default @@ -52,5 +52,6 @@ Don't install it for any other device! endef #$(eval $(call generate-ipq-wifi-package,,,)) +$(eval $(call generate-ipq-wifi-package,engenius_eap1300,board-engenius_eap1300.bin,EnGenius EAP1300)) $(foreach PACKAGE,$(ALLWIFIPACKAGES),$(eval $(call BuildPackage,$(PACKAGE)))) diff --git a/package/firmware/ipq-wifi/board-engenius_eap1300.bin b/package/firmware/ipq-wifi/board-engenius_eap1300.bin new file mode 100644 index 0000000000000000000000000000000000000000..eb4328cd95a6fbd13138187b20d16282c723f346 GIT binary patch literal 24324 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 literal 0 HcmV?d00001 diff --git a/target/linux/ipq40xx/base-files/etc/board.d/01_leds b/target/linux/ipq40xx/base-files/etc/board.d/01_leds index ab2f77ee10a8..5e382c03a7d4 100755 --- a/target/linux/ipq40xx/base-files/etc/board.d/01_leds +++ b/target/linux/ipq40xx/base-files/etc/board.d/01_leds @@ -23,6 +23,12 @@ avm,fritzbox-4040) ucidef_set_led_netdev "wan" "WAN" "fritz4040:green:wan" "eth1" ucidef_set_led_switch "lan" "LAN" "fritz4040:green:lan" "switch0" "0x1e" ;; +engenius,eap1300) + ucidef_set_led_netdev "lan" "LAN" "${boardname}:blue:lan" "eth0" + ucidef_set_led_wlan "wlan2g" "WLAN2G" "${boardname}:blue:wlan2g" "phy0tpt" + ucidef_set_led_wlan "wlan5g" "WLAN5G" "${boardname}:yellow:wlan5g" "phy1tpt" + ucidef_set_led_default "mesh" "MESH" "${boardname}:blue:mesh" "0" + ;; glinet,gl-b1300) ucidef_set_led_wlan "wlan" "WLAN" "${boardname}:green:wlan" "phy0tpt" ;; diff --git a/target/linux/ipq40xx/base-files/etc/board.d/02_network b/target/linux/ipq40xx/base-files/etc/board.d/02_network index 5c90ef136fd7..d73914c7c152 100755 --- a/target/linux/ipq40xx/base-files/etc/board.d/02_network +++ b/target/linux/ipq40xx/base-files/etc/board.d/02_network @@ -33,6 +33,13 @@ avm,fritzbox-4040) compex,wpj428) ucidef_set_interface_lan "eth0 eth1" ;; +engenius,eap1300 |\ +meraki,mr33 |\ +netgear,ex6100v2 |\ +netgear,ex6150v2 |\ +zyxel,wre6606) + ucidef_set_interface_lan "eth0" + ;; glinet,gl-b1300) ucidef_set_interfaces_lan_wan "eth0" "eth1" ucidef_add_switch "switch0" \ @@ -42,12 +49,6 @@ openmesh,a42 |\ openmesh,a62) ucidef_set_interfaces_lan_wan "eth1" "eth0" ;; -meraki,mr33 |\ -netgear,ex6100v2 |\ -netgear,ex6150v2 |\ -zyxel,wre6606) - ucidef_set_interface_lan "eth0" - ;; zyxel,nbg6617) ucidef_set_interfaces_lan_wan "eth0" "eth1" ucidef_add_switch "switch0" \ diff --git a/target/linux/ipq40xx/base-files/etc/hotplug.d/firmware/11-ath10k-caldata b/target/linux/ipq40xx/base-files/etc/hotplug.d/firmware/11-ath10k-caldata index 1d4fd9cd8f9a..605a03be1dde 100644 --- a/target/linux/ipq40xx/base-files/etc/hotplug.d/firmware/11-ath10k-caldata +++ b/target/linux/ipq40xx/base-files/etc/hotplug.d/firmware/11-ath10k-caldata @@ -142,6 +142,7 @@ case "$FIRMWARE" in ath10kcal_patch_mac_crc $(mtd_get_mac_binary dnidata 0) ;; compex,wpj428 |\ + engenius,eap1300 |\ openmesh,a42 |\ openmesh,a62) ath10kcal_extract "0:ART" 4096 12064 @@ -178,6 +179,7 @@ case "$FIRMWARE" in ath10kcal_patch_mac_crc $(mtd_get_mac_binary dnidata 12) ;; compex,wpj428 |\ + engenius,eap1300 |\ openmesh,a42 |\ openmesh,a62) ath10kcal_extract "0:ART" 20480 12064 diff --git a/target/linux/ipq40xx/files-4.14/arch/arm/boot/dts/qcom-ipq4018-eap1300.dts b/target/linux/ipq40xx/files-4.14/arch/arm/boot/dts/qcom-ipq4018-eap1300.dts new file mode 100644 index 000000000000..7ef0529832c4 --- /dev/null +++ b/target/linux/ipq40xx/files-4.14/arch/arm/boot/dts/qcom-ipq4018-eap1300.dts @@ -0,0 +1,230 @@ +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "qcom-ipq4019.dtsi" +#include +#include +#include + +/ { + model = "EnGenius EAP1300"; + compatible = "engenius,eap1300", "qcom,ipq4019"; + + soc { + mdio@90000 { + status = "okay"; + }; + + ess-psgmii@98000 { + status = "okay"; + }; + + tcsr@1949000 { + compatible = "qcom,tcsr"; + reg = <0x1949000 0x100>; + qcom,wifi_glb_cfg = ; + }; + + ess_tcsr@1953000 { + compatible = "qcom,tcsr"; + reg = <0x1953000 0x1000>; + qcom,ess-interface-select = ; + }; + + tcsr@1957000 { + compatible = "qcom,tcsr"; + reg = <0x1957000 0x100>; + qcom,wifi_noc_memtype_m0_m2 = ; + }; + + serial@78af000 { + pinctrl-0 = <&serial_pins>; + pinctrl-names = "default"; + status = "okay"; + }; + + crypto@8e3a000 { + status = "okay"; + }; + + watchdog@b017000 { + status = "okay"; + }; + + ess-switch@c000000 { + status = "okay"; + }; + + edma@c080000 { + status = "okay"; + }; + }; + + gpio-keys { + compatible = "gpio-keys"; + + reset { + label = "reset"; + gpios = <&tlmm 18 GPIO_ACTIVE_HIGH>; + linux,code = ; + }; + }; + + aliases { + led-boot = &power; + led-failsafe = &power; + led-running = &power; + led-upgrade = &power; + }; + + gpio-leds { + compatible = "gpio-leds"; + + power: orange { + label = "eap1300:orange:power"; + gpios = <&tlmm 58 GPIO_ACTIVE_LOW>; + }; + + lan { + label = "eap1300:blue:lan"; + gpios = <&tlmm 2 GPIO_ACTIVE_HIGH>; + }; + + mesh { + label = "eap1300:blue:mesh"; + gpios = <&tlmm 1 GPIO_ACTIVE_HIGH>; + }; + + wlan2g { + label = "eap1300:blue:wlan2g"; + gpios = <&tlmm 3 GPIO_ACTIVE_HIGH>; + }; + + wlan5g { + label = "eap1300:yellow:wlan5g"; + gpios = <&tlmm 0 GPIO_ACTIVE_HIGH>; + }; + }; +}; + +&tlmm { + serial_pins: serial_pinmux { + mux { + pins = "gpio60", "gpio61"; + function = "blsp_uart0"; + bias-disable; + }; + }; + + spi_0_pins: spi_0_pinmux { + pin { + function = "blsp_spi0"; + pins = "gpio54", "gpio55", "gpio56", "gpio57"; + drive-strength = <12>; + bias-disable; + }; + pin_cs { + function = "gpio"; + pins = "gpio54"; + drive-strength = <2>; + bias-disable; + output-high; + }; + }; +}; + +&blsp_dma { + status = "okay"; +}; + +&blsp1_spi1 { + pinctrl-0 = <&spi_0_pins>; + pinctrl-names = "default"; + status = "okay"; + cs-gpios = <&tlmm 54 GPIO_ACTIVE_HIGH>; + + m25p80@0 { + compatible = "jedec,spi-nor"; + reg = <0>; + spi-max-frequency = <24000000>; + partitions { + compatible = "fixed-partitions"; + #address-cells = <1>; + #size-cells = <1>; + + partition@0 { + label = "0:SBL1"; + reg = <0x00000000 0x00040000>; + read-only; + }; + partition1@40000 { + label = "0:MIBIB"; + reg = <0x00040000 0x00020000>; + read-only; + }; + partition2@60000 { + label = "0:QSEE"; + reg = <0x00060000 0x00060000>; + read-only; + }; + partition3@c0000 { + label = "0:CDT"; + reg = <0x000c0000 0x00010000>; + read-only; + }; + partition4@d0000 { + label = "0:DDRPARAMS"; + reg = <0x000d0000 0x00010000>; + read-only; + }; + partition5@e0000 { + label = "0:APPSBLENV"; + reg = <0x000e0000 0x00010000>; + read-only; + }; + partition6@f0000 { + label = "0:APPSBL"; + reg = <0x000f0000 0x00090000>; + read-only; + }; + partition7@180000 { + label = "0:ART"; + reg = <0x00180000 0x00010000>; + read-only; + }; + partition8@190000 { + label = "firmware"; + reg = <0x190000 0x1dc0000>; + }; + partition9@1f50000 { + label = "u-boot-env"; + reg = <0x01f50000 0x00010000>; + }; + partition10@1f60000 { + label = "userconfig"; + reg = <0x01f60000 0x000a0000>; + }; + }; + }; +}; + +&cryptobam { + status = "okay"; +}; + +&gmac0 { + vlan_tag = <2 0x20>; +}; + +&gmac1 { + vlan_tag = <1 0x10>; +}; + +&wifi0 { + status = "okay"; + qcom,ath10k-calibration-variant = "EnGenius-EAP1300"; +}; + +&wifi1 { + status = "okay"; + qcom,ath10k-calibration-variant = "EnGenius-EAP1300"; +}; diff --git a/target/linux/ipq40xx/image/Makefile b/target/linux/ipq40xx/image/Makefile index 8a42d3e780cc..eaf9f6839594 100644 --- a/target/linux/ipq40xx/image/Makefile +++ b/target/linux/ipq40xx/image/Makefile @@ -105,6 +105,20 @@ define Device/compex_wpj428 endef TARGET_DEVICES += compex_wpj428 +define Device/engenius_eap1300 + $(call Device/FitImage) + DEVICE_TITLE := EnGenius EAP1300 + DEVICE_DTS_CONFIG := config@4 + BOARD_NAME := eap1300 + DEVICE_DTS := qcom-ipq4018-eap1300 + KERNEL_SIZE := 5120k + IMAGE_SIZE := 25344k + IMAGES := sysupgrade.bin + IMAGE/sysupgrade.bin := append-kernel | append-rootfs | pad-rootfs | append-metadata + DEVICE_PACKAGES := ipq-wifi-engenius_eap1300 +endef +TARGET_DEVICES += engenius_eap1300 + define Device/glinet_gl-b1300 $(call Device/FitImage) DEVICE_TITLE := GL.iNet GL-B1300 diff --git a/target/linux/ipq40xx/patches-4.14/901-arm-boot-add-dts-files.patch b/target/linux/ipq40xx/patches-4.14/901-arm-boot-add-dts-files.patch index 8066f986a4e0..46c34038d638 100644 --- a/target/linux/ipq40xx/patches-4.14/901-arm-boot-add-dts-files.patch +++ b/target/linux/ipq40xx/patches-4.14/901-arm-boot-add-dts-files.patch @@ -10,11 +10,12 @@ Signed-off-by: John Crispin --- a/arch/arm/boot/dts/Makefile +++ b/arch/arm/boot/dts/Makefile -@@ -697,7 +697,20 @@ dtb-$(CONFIG_ARCH_QCOM) += \ +@@ -697,7 +697,21 @@ dtb-$(CONFIG_ARCH_QCOM) += \ qcom-apq8074-dragonboard.dtb \ qcom-apq8084-ifc6540.dtb \ qcom-apq8084-mtp.dtb \ + qcom-ipq4018-a42.dtb \ ++ qcom-ipq4018-eap1300.dtb \ + qcom-ipq4018-ex6100v2.dtb \ + qcom-ipq4018-ex6150v2.dtb \ + qcom-ipq4018-fritz4040.dtb \ -- 2.30.2