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 51da4bc465f..4b39f970dd6 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 Hc-jL100001 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 ab2f77ee10a..5e382c03a7d 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 5c90ef136fd..d73914c7c15 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 1d4fd9cd8f9..605a03be1dd 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 00000000000..7ef0529832c --- /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 8a42d3e780c..eaf9f683959 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 8066f986a4e..46c34038d63 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.47.2