From b9389186b012e5bd99ea6523b8220aaee6ca0085 Mon Sep 17 00:00:00 2001 From: Dongming Han Date: Wed, 22 Jul 2020 15:12:17 +0800 Subject: [PATCH] ipq40xx: add support for GL.iNet GL-AP1300 Specifications: SOC: Qualcomm IPQ4018 (DAKOTA) ARM Quad-Core RAM: 256 MiB FLASH1: 4 MiB NOR FLASH2: 128 MiB NAND ETH: Qualcomm QCA8075 WLAN1: Qualcomm Atheros QCA4018 2.4GHz 802.11b/g/n 2x2 WLAN2: Qualcomm Atheros QCA4018 5GHz 802.11n/ac W2 2x2 INPUT: Reset LED: Power, Internet UART1: On board pin header near to LED (3.3V, TX, RX, GND), 3.3V without pin - 115200 8N1 OTHER: On board with BLE module - by cp210x USB serial chip On board hareware watchdog with GPIO0 high to turn on, and GPIO4 for watchdog feed Install via uboot tftp or uboot web failsafe. By uboot tftp: (IPQ40xx) # tftpboot 0x84000000 openwrt-ipq40xx-generic-glinet_gl-ap1300-squashfs-nand-factory.ubi (IPQ40xx) # run lf By uboot web failsafe: Push the reset button for 10 seconds util the power led flash faster, then use broswer to access http://192.168.1.1 Afterwards upgrade can use sysupgrade image. Signed-off-by: Dongming Han --- package/boot/uboot-envtools/files/ipq40xx | 1 + package/firmware/ipq-wifi/Makefile | 2 + .../ipq-wifi/board-glinet_gl-ap1300.qca4019 | Bin 0 -> 48596 bytes .../ipq40xx/base-files/etc/board.d/02_network | 1 + .../etc/hotplug.d/firmware/11-ath10k-caldata | 2 + .../base-files/lib/upgrade/platform.sh | 1 + .../arm/boot/dts/qcom-ipq4018-gl-ap1300.dts | 269 ++++++++++++++++++ target/linux/ipq40xx/image/Makefile | 15 + .../901-arm-boot-add-dts-files.patch | 3 +- 9 files changed, 293 insertions(+), 1 deletion(-) create mode 100644 package/firmware/ipq-wifi/board-glinet_gl-ap1300.qca4019 create mode 100644 target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4018-gl-ap1300.dts diff --git a/package/boot/uboot-envtools/files/ipq40xx b/package/boot/uboot-envtools/files/ipq40xx index 34aea1b99931..8a0de7a548b6 100644 --- a/package/boot/uboot-envtools/files/ipq40xx +++ b/package/boot/uboot-envtools/files/ipq40xx @@ -34,6 +34,7 @@ case "$board" in alfa-network,ap120c-ac |\ devolo,magic-2-wifi-next |\ edgecore,ecw5211 |\ +glinet,gl-ap1300 |\ glinet,gl-b1300 |\ luma,wrtq-329acn |\ openmesh,a42 |\ diff --git a/package/firmware/ipq-wifi/Makefile b/package/firmware/ipq-wifi/Makefile index f42704b8d39c..e5f10a1f9864 100644 --- a/package/firmware/ipq-wifi/Makefile +++ b/package/firmware/ipq-wifi/Makefile @@ -38,6 +38,7 @@ ALLWIFIBOARDS:= \ engenius_emd1 \ engenius_emr3500 \ ezviz_cs-w3-wd1200g-eup \ + glinet_gl-ap1300 \ glinet_gl-s1300 \ linksys_ea8300 \ linksys_mr8300-v0 \ @@ -120,6 +121,7 @@ $(eval $(call generate-ipq-wifi-package,engenius_eap2200,EnGenius EAP2200)) $(eval $(call generate-ipq-wifi-package,engenius_emd1,EnGenius EMD1)) $(eval $(call generate-ipq-wifi-package,engenius_emr3500,EnGenius EMR3500)) $(eval $(call generate-ipq-wifi-package,ezviz_cs-w3-wd1200g-eup,EZVIZ CS-W3-WD1200G EUP)) +$(eval $(call generate-ipq-wifi-package,glinet_gl-ap1300,GL.iNet GL-AP1300)) $(eval $(call generate-ipq-wifi-package,glinet_gl-s1300,GL.iNet GL-S1300)) $(eval $(call generate-ipq-wifi-package,linksys_ea8300,Linksys EA8300)) $(eval $(call generate-ipq-wifi-package,linksys_mr8300-v0,Linksys MR8300)) diff --git a/package/firmware/ipq-wifi/board-glinet_gl-ap1300.qca4019 b/package/firmware/ipq-wifi/board-glinet_gl-ap1300.qca4019 new file mode 100644 index 0000000000000000000000000000000000000000..481dd81b5b15bda95569e4f4acdca078bc0be727 GIT binary patch literal 48596 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 +#include +#include + +/ { + model = "GL.iNet GL-AP1300"; + compatible = "glinet,gl-ap1300"; + + aliases { + led-boot = &led_power; + led-failsafe = &led_power; + led-running = &led_power; + led-upgrade = &led_power; + }; + + memory { + device_type = "memory"; + reg = <0x80000000 0x10000000>; + }; + + chosen { + bootargs-append = " ubi.mtd=ubi root=/dev/ubiblock0_1 clk_ignore_unused"; + }; + + soc { + rng@22000 { + status = "okay"; + }; + + mdio@90000 { + status = "okay"; + }; + + ess-psgmii@98000 { + status = "okay"; + }; + + tcsr@1949000 { + compatible = "qcom,tcsr"; + reg = <0x1949000 0x100>; + qcom,wifi_glb_cfg = ; + }; + + tcsr@194b000 { + /* select hostmode */ + compatible = "qcom,tcsr"; + reg = <0x194b000 0x100>; + qcom,usb-hsphy-mode-select = ; + status = "okay"; + }; + + 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 = ; + }; + + usb2@60f8800 { + status = "okay"; + }; + + usb3@8af8800 { + status = "okay"; + }; + + crypto@8e3a000 { + status = "okay"; + }; + + watchdog@b017000 { + status = "okay"; + }; + + ess-switch@c000000 { + status = "okay"; + switch_lan_bmp = <0x18>; + switch_wan_bmp = <0x20>; + }; + + edma@c080000 { + status = "okay"; + }; + }; + + keys { + compatible = "gpio-keys"; + + reset { + label = "reset"; + gpios = <&tlmm 63 GPIO_ACTIVE_LOW>; + linux,code = ; + }; + }; + + leds { + compatible = "gpio-leds"; + + led_power: power { + label = "green:power"; + gpios = <&tlmm 2 GPIO_ACTIVE_HIGH>; + default-state = "on"; + }; + + wan { + label = "green:wan"; + gpios = <&tlmm 3 GPIO_ACTIVE_HIGH>; + }; + }; +}; + +&blsp_dma { + status = "okay"; +}; + +&cryptobam { + status = "okay"; +}; + +&blsp1_spi1 { + status = "okay"; + + pinctrl-0 = <&spi0_pins>; + pinctrl-names = "default"; + cs-gpios = <&tlmm 54 GPIO_ACTIVE_HIGH>, <&tlmm 5 GPIO_ACTIVE_HIGH>; + + flash@0 { + status = "okay"; + + compatible = "jedec,spi-nor"; + reg = <0>; + spi-max-frequency = <24000000>; + + partitions { + compatible = "fixed-partitions"; + #address-cells = <1>; + #size-cells = <1>; + + partition@0 { + label = "SBL1"; + reg = <0x00000000 0x00040000>; + read-only; + }; + + partition@40000 { + label = "MIBIB"; + reg = <0x00040000 0x00020000>; + read-only; + }; + + partition@60000 { + label = "QSEE"; + reg = <0x00060000 0x00060000>; + read-only; + }; + + partition@c0000 { + label = "CDT"; + reg = <0x000c0000 0x00010000>; + read-only; + }; + + partition@d0000 { + label = "DDRPARAMS"; + reg = <0x000d0000 0x00010000>; + read-only; + }; + + partition@e0000 { + label = "APPSBLENV"; /* uboot env*/ + reg = <0x000e0000 0x00010000>; + }; + + partition@f0000 { + label = "APPSBL"; /* uboot */ + reg = <0x000f0000 0x00080000>; + read-only; + }; + + partition@170000 { + label = "ART"; + reg = <0x00170000 0x00010000>; + read-only; + }; + }; + }; + + spi-nand@1 { + status = "okay"; + + compatible = "spi-nand"; + reg = <1>; + spi-max-frequency = <24000000>; + + partitions { + compatible = "fixed-partitions"; + #address-cells = <1>; + #size-cells = <1>; + + partition@0 { + label = "ubi"; + reg = <0x00000000 0x08000000>; + }; + }; + }; +}; + +&blsp1_uart1 { + pinctrl-0 = <&serial_pins>; + pinctrl-names = "default"; + status = "okay"; +}; + +&tlmm { + serial_pins: serial_pinmux { + mux { + pins = "gpio60", "gpio61"; + function = "blsp_uart0"; + bias-disable; + }; + }; + + spi0_pins: spi0_pinmux { + mux_spi { + function = "blsp_spi0"; + pins = "gpio55", "gpio56", "gpio57"; + drive-strength = <12>; + bias-disable; + }; + + mux_cs { + function = "gpio"; + pins = "gpio54", "gpio5"; + drive-strength = <2>; + bias-disable; + output-high; + }; + }; +}; + +&usb2_hs_phy { + status = "okay"; +}; + +&usb3_hs_phy { + status = "okay"; +}; + +&usb3_ss_phy { + status = "okay"; +}; + +&wifi0 { + status = "okay"; + qcom,ath10k-calibration-variant = "GL-AP1300"; +}; + +&wifi1 { + status = "okay"; + qcom,ath10k-calibration-variant = "GL-AP1300"; +}; diff --git a/target/linux/ipq40xx/image/Makefile b/target/linux/ipq40xx/image/Makefile index 487f3b5638a6..c19dcb40397d 100644 --- a/target/linux/ipq40xx/image/Makefile +++ b/target/linux/ipq40xx/image/Makefile @@ -482,6 +482,21 @@ define Device/ezviz_cs-w3-wd1200g-eup endef TARGET_DEVICES += ezviz_cs-w3-wd1200g-eup +define Device/glinet_gl-ap1300 + $(call Device/FitImage) + $(call Device/UbiFit) + DEVICE_VENDOR := GL.iNet + DEVICE_MODEL := GL-AP1300 + SOC := qcom-ipq4018 + DEVICE_DTS_CONFIG := config@ap.dk01.1-c2 + BLOCKSIZE := 128k + PAGESIZE := 2048 + IMAGE_SIZE := 131072k + KERNEL_INSTALL := 1 + DEVICE_PACKAGES := ipq-wifi-glinet_gl-ap1300 +endef +TARGET_DEVICES += glinet_gl-ap1300 + define Device/glinet_gl-b1300 $(call Device/FitImage) DEVICE_VENDOR := GL.iNet diff --git a/target/linux/ipq40xx/patches-5.4/901-arm-boot-add-dts-files.patch b/target/linux/ipq40xx/patches-5.4/901-arm-boot-add-dts-files.patch index d470bb720462..a3d3341587d8 100644 --- a/target/linux/ipq40xx/patches-5.4/901-arm-boot-add-dts-files.patch +++ b/target/linux/ipq40xx/patches-5.4/901-arm-boot-add-dts-files.patch @@ -10,7 +10,7 @@ Signed-off-by: John Crispin --- a/arch/arm/boot/dts/Makefile +++ b/arch/arm/boot/dts/Makefile -@@ -837,11 +837,57 @@ dtb-$(CONFIG_ARCH_QCOM) += \ +@@ -837,11 +837,58 @@ dtb-$(CONFIG_ARCH_QCOM) += \ qcom-apq8074-dragonboard.dtb \ qcom-apq8084-ifc6540.dtb \ qcom-apq8084-mtp.dtb \ @@ -28,6 +28,7 @@ Signed-off-by: John Crispin + qcom-ipq4018-ex6100v2.dtb \ + qcom-ipq4018-ex6150v2.dtb \ + qcom-ipq4018-fritzbox-4040.dtb \ ++ qcom-ipq4018-gl-ap1300.dtb \ + qcom-ipq4018-jalapeno.dtb \ + qcom-ipq4018-meshpoint-one.dtb \ + qcom-ipq4018-nbg6617.dtb \ -- 2.30.2