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 34aea1b9993..8a0de7a548b 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 f42704b8d39..e5f10a1f986 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 487f3b5638a..c19dcb40397 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 d470bb72046..a3d3341587d 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.47.3