From 04d3308b6248ef21a6f0bc3378b342906c2d2865 Mon Sep 17 00:00:00 2001 From: Dongming Han Date: Thu, 7 Dec 2017 20:48:19 +0800 Subject: [PATCH] ipq806x: add support for GL.iNet GL-B1300 This patch adds support for GL.iNet GL-B1300 Specification: - SOC: IPQ4028 / QCA Dakota - RAM: 256 MiB - FLASH: 32 MiB - ETH: Qualcomm Atheros QCA8075 Gigabit Switch (2 x LAN, 1 x WAN) - USB: 1 x 3.0 (via Synopsys DesignWare DWC3 controller in the SoC) - WLAN1: Qualcomm Atheros QCA4028 2.4GHz 802.11bgn 2:2x2 - WLAN2: Qualcomm Atheros QCA4028 5GHz 802.11a/n/ac 2:2x2 - INPUT: one reset and one WPS button - LEDS: 3 leds: Power, WIFI(only for 2.4G currently), and one reserved - UART: 1 x UART on PCB (3.3V, TX, RX, GND) - 115200 8N1 Installation: Method 1: - use serial port to stop uboot - uboot command: run lf Method 2: - push down reset button and power on - wait until three leds constantly on then release - upgrade by uboot web at http://192.168.1.1 Note: - the sysupgrade image need to be renamed to lede-gl-b1300.bin in both method. - the sysupgrade image can be automatically downloaded if tftp server at 192.168.1.2 have that file. - the wifi led will be flashing when writing image. Signed-off-by: Dongming Han --- package/firmware/ipq-wifi/Makefile | 3 +- .../ipq-wifi/board-glinet_gl-b1300.bin | Bin 0 -> 24276 bytes .../ipq806x/base-files/etc/board.d/01_leds | 3 + .../ipq806x/base-files/etc/board.d/02_network | 1 + .../etc/hotplug.d/firmware/11-ath10k-caldata | 2 + .../arm/boot/dts/qcom-ipq4019-gl-b1300.dts | 316 ++++++++++++++++++ target/linux/ipq806x/image/Makefile | 15 + .../0069-arm-boot-add-dts-files.patch | 3 +- 8 files changed, 341 insertions(+), 2 deletions(-) create mode 100644 package/firmware/ipq-wifi/board-glinet_gl-b1300.bin create mode 100644 target/linux/ipq806x/files-4.9/arch/arm/boot/dts/qcom-ipq4019-gl-b1300.dts diff --git a/package/firmware/ipq-wifi/Makefile b/package/firmware/ipq-wifi/Makefile index 9bb7428984..cc29d32136 100644 --- a/package/firmware/ipq-wifi/Makefile +++ b/package/firmware/ipq-wifi/Makefile @@ -13,7 +13,7 @@ endef define Build/Compile endef -ALLWIFIBOARDS:=avm_fritzbox-4040 +ALLWIFIBOARDS:=avm_fritzbox-4040 glinet_gl-b1300 ALLWIFIPACKAGES:=$(foreach BOARD,$(ALLWIFIBOARDS),ipq-wifi-$(BOARD)) define Package/ipq-wifi-default @@ -48,5 +48,6 @@ Don't install it for any other device! endef $(eval $(call generate-ipq-wifi-package,avm_fritzbox-4040,board-avm_fritzbox-4040.bin,AVM FRITZ!Box 4040)) +$(eval $(call generate-ipq-wifi-package,glinet_gl-b1300,board-glinet_gl-b1300.bin,GL.iNet GL-B1300)) $(foreach PACKAGE,$(ALLWIFIPACKAGES),$(eval $(call BuildPackage,$(PACKAGE)))) diff --git a/package/firmware/ipq-wifi/board-glinet_gl-b1300.bin b/package/firmware/ipq-wifi/board-glinet_gl-b1300.bin new file mode 100644 index 0000000000000000000000000000000000000000..f2020f6fc9f9b4290dc63753274ce2a5a8216b90 GIT binary patch literal 24276 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 literal 0 HcmV?d00001 diff --git a/target/linux/ipq806x/base-files/etc/board.d/01_leds b/target/linux/ipq806x/base-files/etc/board.d/01_leds index b04832ff79..ea8b7817cb 100755 --- a/target/linux/ipq806x/base-files/etc/board.d/01_leds +++ b/target/linux/ipq806x/base-files/etc/board.d/01_leds @@ -16,6 +16,9 @@ avm,fritzbox-4040) ucidef_set_led_netdev "wan" "WAN" "fritz4040:green:wan" "eth1" ucidef_set_led_switch "lan" "LAN" "fritz4040:green:lan" "switch0" "0x1e" ;; +glinet,gl-b1300) + ucidef_set_led_wlan "wlan" "WLAN" "${boardname}:green:wlan" "phy0tpt" + ;; netgear,d7800 |\ netgear,r7500 |\ netgear,r7500v2 |\ diff --git a/target/linux/ipq806x/base-files/etc/board.d/02_network b/target/linux/ipq806x/base-files/etc/board.d/02_network index 580c1d8fdd..74223e5b47 100755 --- a/target/linux/ipq806x/base-files/etc/board.d/02_network +++ b/target/linux/ipq806x/base-files/etc/board.d/02_network @@ -33,6 +33,7 @@ tplink,vr2600v) ucidef_add_switch "switch0" \ "1:lan" "2:lan" "3:lan" "4:lan" "6@eth1" "5:wan" "0@eth0" ;; +glinet,gl-b1300 |\ openmesh,a42) ucidef_set_interfaces_lan_wan "eth1" "eth0" ;; diff --git a/target/linux/ipq806x/base-files/etc/hotplug.d/firmware/11-ath10k-caldata b/target/linux/ipq806x/base-files/etc/hotplug.d/firmware/11-ath10k-caldata index 61b7403160..fa8eb11857 100644 --- a/target/linux/ipq806x/base-files/etc/hotplug.d/firmware/11-ath10k-caldata +++ b/target/linux/ipq806x/base-files/etc/hotplug.d/firmware/11-ath10k-caldata @@ -53,6 +53,7 @@ case "$FIRMWARE" in openmesh,a42) ath10kcal_extract "0:ART" 4096 12064 ;; + glinet,gl-b1300 |\ qcom,ap-dk01.1-c1) ath10kcal_extract "ART" 4096 12064 ;; @@ -66,6 +67,7 @@ case "$FIRMWARE" in openmesh,a42) ath10kcal_extract "0:ART" 20480 12064 ;; + glinet,gl-b1300 |\ qcom,ap-dk01.1-c1) ath10kcal_extract "ART" 20480 12064 ;; diff --git a/target/linux/ipq806x/files-4.9/arch/arm/boot/dts/qcom-ipq4019-gl-b1300.dts b/target/linux/ipq806x/files-4.9/arch/arm/boot/dts/qcom-ipq4019-gl-b1300.dts new file mode 100644 index 0000000000..53824e3c8d --- /dev/null +++ b/target/linux/ipq806x/files-4.9/arch/arm/boot/dts/qcom-ipq4019-gl-b1300.dts @@ -0,0 +1,316 @@ +/* Copyright (c) 2015, The Linux Foundation. All rights reserved. + * + * Permission to use, copy, modify, and/or distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + * + */ + +#include "qcom-ipq4019.dtsi" +#include +#include +#include + +/ { + model = "GL.iNet GL-B1300"; + compatible = "glinet,gl-b1300", "qcom,ipq4019"; + + memory { + device_type = "memory"; + reg = <0x80000000 0x10000000>; + }; + + reserved-memory { + #address-cells = <0x1>; + #size-cells = <0x1>; + ranges; + + apps_bl@87000000 { + reg = <0x87000000 0x400000>; + no-map; + }; + + sbl@87400000 { + reg = <0x87400000 0x100000>; + no-map; + }; + + cnss_debug@87500000 { + reg = <0x87500000 0x600000>; + no-map; + }; + + cpu_context_dump@87b00000 { + reg = <0x87b00000 0x080000>; + no-map; + }; + + tz_apps@87b80000 { + reg = <0x87b80000 0x280000>; + no-map; + }; + + smem@87e00000 { + reg = <0x87e00000 0x080000>; + no-map; + }; + + tz@87e80000 { + reg = <0x87e80000 0x180000>; + no-map; + }; + }; + + soc { + tcsr@194b000 { + /* select hostmode */ + compatible = "qcom,tcsr"; + reg = <0x194b000 0x100>; + qcom,usb-hsphy-mode-select = ; + status = "ok"; + }; + + ess_tcsr@1953000 { + compatible = "qcom,tcsr"; + reg = <0x1953000 0x1000>; + qcom,ess-interface-select = ; + }; + + tcsr@1949000 { + compatible = "qcom,tcsr"; + reg = <0x1949000 0x100>; + qcom,wifi_glb_cfg = ; + }; + + tcsr@1957000 { + compatible = "qcom,tcsr"; + reg = <0x1957000 0x100>; + qcom,wifi_noc_memtype_m0_m2 = ; + }; + + pinctrl@1000000 { + serial_pins: serial_pinmux { + mux { + pins = "gpio60", "gpio61"; + function = "blsp_uart0"; + bias-disable; + }; + }; + + spi_0_pins: spi_0_pinmux { + pinmux { + function = "blsp_spi0"; + pins = "gpio55", "gpio56", "gpio57"; + }; + pinmux_cs { + function = "gpio"; + pins = "gpio54"; + }; + pinconf { + pins = "gpio55", "gpio56", "gpio57"; + drive-strength = <12>; + bias-disable; + }; + pinconf_cs { + pins = "gpio54"; + drive-strength = <2>; + bias-disable; + output-high; + }; + }; + }; + + blsp_dma: dma@7884000 { + status = "ok"; + }; + + spi_0: spi@78b5000 { + pinctrl-0 = <&spi_0_pins>; + pinctrl-names = "default"; + status = "ok"; + cs-gpios = <&tlmm 54 0>; + }; + + serial@78af000 { + pinctrl-0 = <&serial_pins>; + pinctrl-names = "default"; + status = "ok"; + }; + + cryptobam: dma@8e04000 { + status = "ok"; + }; + + crypto@8e3a000 { + status = "ok"; + }; + + watchdog@b017000 { + status = "ok"; + }; + + usb3_ss_phy: ssphy@9a000 { + status = "ok"; + }; + + usb3_hs_phy: hsphy@a6000 { + status = "ok"; + }; + + usb3: usb3@8af8800 { + status = "ok"; + }; + + usb2_hs_phy: hsphy@a8000 { + status = "ok"; + }; + + usb2: usb2@60f8800 { + status = "ok"; + }; + + mdio@90000 { + status = "okay"; + }; + + ess-switch@c000000 { + status = "okay"; + }; + + ess-psgmii@98000 { + status = "okay"; + }; + + edma@c080000 { + status = "okay"; + }; + + wifi@a000000 { + status = "okay"; + }; + + wifi@a800000 { + status = "okay"; + }; + }; + + gpio-keys { + compatible = "gpio-keys"; + + wps { + label = "wps"; + gpios = <&tlmm 5 GPIO_ACTIVE_LOW>; + linux,code = ; + }; + reset { + label = "reset"; + gpios = <&tlmm 63 GPIO_ACTIVE_LOW>; + linux,code = ; + }; + }; + + gpio-leds { + compatible = "gpio-leds"; + + power { + label = "gl-b1300:green:power"; + gpios = <&tlmm 4 GPIO_ACTIVE_HIGH>; + default-state = "on"; + }; + mesh { + label = "gl-b1300:green:mesh"; + gpios = <&tlmm 3 GPIO_ACTIVE_HIGH>; + }; + wlan { + label = "gl-b1300:green:wlan"; + gpios = <&tlmm 2 GPIO_ACTIVE_HIGH>; + }; + }; +}; + +&spi_0 { + mx25l25635f@0 { + compatible = "mx25l25635f", "jedec,spi-nor"; + #address-cells = <1>; + #size-cells = <1>; + reg = <0>; + spi-max-frequency = <24000000>; + + SBL1@0 { + label = "SBL1"; + reg = <0x0 0x40000>; + read-only; + }; + MIBIB@40000 { + label = "MIBIB"; + reg = <0x40000 0x20000>; + read-only; + }; + QSEE@60000 { + label = "QSEE"; + reg = <0x60000 0x60000>; + read-only; + }; + CDT@c0000 { + label = "CDT"; + reg = <0xc0000 0x10000>; + read-only; + }; + DDRPARAMS@d0000 { + label = "DDRPARAMS"; + reg = <0xd0000 0x10000>; + read-only; + }; + APPSBLENV@e0000 { + label = "APPSBLENV"; + reg = <0xe0000 0x10000>; + read-only; + }; + APPSBL@f0000 { + label = "APPSBL"; + reg = <0xf0000 0x80000>; + read-only; + }; + ART@170000 { + label = "ART"; + reg = <0x170000 0x10000>; + read-only; + }; + kernel@180000 { + label = "kernel"; + reg = <0x180000 0x400000>; + }; + rootfs@580000 { + label = "rootfs"; + reg = <0x580000 0x1a80000>; + }; + firmware@180000 { + label = "firmware"; + reg = <0x180000 0x1e80000>; + }; + }; +}; + +&gmac0 { + qcom,phy_mdio_addr = <4>; + qcom,poll_required = <1>; + qcom,forced_speed = <1000>; + qcom,forced_duplex = <1>; + vlan_tag = <2 0x20>; +}; + +&gmac1 { + qcom,phy_mdio_addr = <3>; + qcom,poll_required = <1>; + qcom,forced_speed = <1000>; + qcom,forced_duplex = <1>; + vlan_tag = <1 0x10>; +}; \ No newline at end of file diff --git a/target/linux/ipq806x/image/Makefile b/target/linux/ipq806x/image/Makefile index 1cae7a5e6f..c2d7255655 100644 --- a/target/linux/ipq806x/image/Makefile +++ b/target/linux/ipq806x/image/Makefile @@ -165,6 +165,21 @@ define Device/netgear_r7800 endef TARGET_DEVICES += netgear_r7800 +define Device/glinet_gl-b1300 + DEVICE_TITLE := GL.iNet GL-B1300 + BOARD_NAME := gl-b1300 + DEVICE_DTS := qcom-ipq4019-gl-b1300 + KERNEL_LOADADDR := 0x80208000 + KERNEL_INSTALL := 1 + KERNEL_SIZE := 4096k + IMAGE_SIZE := 26624k + $(call Device/FitImage) + IMAGES := sysupgrade.bin + IMAGE/sysupgrade.bin := append-kernel | pad-to $$$${KERNEL_SIZE} | append-rootfs | pad-rootfs | append-metadata + DEVICE_PACKAGES := ipq-wifi-glinet_gl-b1300 +endef +TARGET_DEVICES += glinet_gl-b1300 + define Device/openmesh_a42 $(call Device/FitImageLzma) DEVICE_DTS := qcom-ipq4019-a42 diff --git a/target/linux/ipq806x/patches-4.9/0069-arm-boot-add-dts-files.patch b/target/linux/ipq806x/patches-4.9/0069-arm-boot-add-dts-files.patch index faabc24002..0f3b20ebe7 100644 --- a/target/linux/ipq806x/patches-4.9/0069-arm-boot-add-dts-files.patch +++ b/target/linux/ipq806x/patches-4.9/0069-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 -@@ -616,9 +616,19 @@ dtb-$(CONFIG_ARCH_QCOM) += \ +@@ -616,9 +616,20 @@ dtb-$(CONFIG_ARCH_QCOM) += \ qcom-apq8074-dragonboard.dtb \ qcom-apq8084-ifc6540.dtb \ qcom-apq8084-mtp.dtb \ + qcom-ipq4019-a42.dtb \ ++ qcom-ipq4019-gl-b1300.dtb \ qcom-ipq4019-ap.dk01.1-c1.dtb \ qcom-ipq4019-ap.dk04.1-c1.dtb \ + qcom-ipq4019-fritz4040.dtb \