From: Dongming Han Date: Thu, 7 Dec 2017 12:48:19 +0000 (+0800) Subject: ipq806x: add support for GL.iNet GL-B1300 X-Git-Tag: v18.06.0-rc1~946 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=04d3308b6248ef21a6f0bc3378b342906c2d2865;p=oweals%2Fopenwrt.git 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 --- 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 0000000000..f2020f6fc9 Binary files /dev/null and b/package/firmware/ipq-wifi/board-glinet_gl-b1300.bin differ 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 \