Message ID | 20211122183602.626886-1-mrkiko.rs@gmail.com |
---|---|
State | Superseded |
Headers | show |
Series | [V2] ipq40xx: add support for GL.iNet GL-B2200 | expand |
Note: The patch breakage that caused me to send V2 in the first place is my own fault, original PR doesn't have this issue. Sorry, forgot to mention it. On Mon, 22 Nov 2021, Enrico Mioso wrote: > Date: Mon, 22 Nov 2021 19:36:02 > From: Enrico Mioso <mrkiko.rs@gmail.com> > To: openwrt-devel@lists.openwrt.org > Cc: TruongSinh Tran-Nguyen <i@truongsinh.pro>, > Enrico Mioso <mrkiko.rs@gmail.com>, Li Zhang <li.zhang@gl-inet.com> > Subject: [PATCH V2] ipq40xx: add support for GL.iNet GL-B2200 > > From: TruongSinh Tran-Nguyen <i@truongsinh.pro> > > This patch adds supports for the GL-B2200 router. > > Specifications: > - SOC: Qualcomm IPQ4019 ARM Quad-Core > - RAM: 512 MiB > - Flash: 16 MiB NOR - SPI0 > - EMMC: 8GB EMMC > - ETH: Qualcomm QCA8075 > - WLAN1: Qualcomm Atheros QCA4019 2.4GHz 802.11b/g/n 2x2 > - WLAN2: Qualcomm Atheros QCA4019 5GHz 802.11n/ac W2 2x2 > - WLAN3: Qualcomm Atheros QCA9886 5GHz 802.11n/ac W2 2x2 > - INPUT: Reset, WPS > - LED: Power, Internet > - UART1: On board pin header near to LED (3.3V, TX, RX, GND), 3.3V without pin - 115200 8N1 > - UART2: On board with BLE module > - SPI1: On board socket for Zigbee module > > Update firmware instructions: > Please update the firmware via U-Boot web UI (by default at 192.168.1.1, following instructions found at > https://docs.gl-inet.com/en/3/troubleshooting/debrick/). > Normal sysupgrade, either via CLI or LuCI, is not possible from stock firmware. > > What's working: > - WiFi 2G, 5G > - WPA2/WPA3 > > Not tested: > - Bluetooth LE/Zigbee > > Credits goes to the original authors of this patch. > > V1->V2: > - updates *arm-boot-add-dts-files.patch correctly > - add uboot-envtools support > > Signed-off-by: TruongSinh Tran-Nguyen <i@truongsinh.pro> > [fix tab and trailing space, document what's working and what's not] > Signed-off-by: Enrico Mioso <mrkiko.rs@gmail.com> > [rebase on top of master, address remaining comments] > Signed-off-by: Li Zhang <li.zhang@gl-inet.com> > --- > package/boot/uboot-envtools/files/ipq40xx | 1 + > package/firmware/ipq-wifi/Makefile | 2 + > .../ipq-wifi/board-glinet_gl-b2200.qca4019 | Bin 0 -> 24308 bytes > .../ipq-wifi/board-glinet_gl-b2200.qca9888 | Bin 0 -> 12200 bytes > target/linux/ipq40xx/Makefile | 2 +- > .../ipq40xx/base-files/etc/board.d/02_network | 5 + > .../etc/hotplug.d/firmware/11-ath10k-caldata | 3 + > .../arm/boot/dts/qcom-ipq4019-gl-b2200.dts | 364 ++++++++++++++++++ > target/linux/ipq40xx/image/generic.mk | 28 ++ > .../901-arm-boot-add-dts-files.patch | 3 +- > .../901-arm-boot-add-dts-files.patch | 3 +- > 11 files changed, 408 insertions(+), 3 deletions(-) > create mode 100644 package/firmware/ipq-wifi/board-glinet_gl-b2200.qca4019 > create mode 100644 package/firmware/ipq-wifi/board-glinet_gl-b2200.qca9888 > create mode 100644 target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4019-gl-b2200.dts > > diff --git a/package/boot/uboot-envtools/files/ipq40xx b/package/boot/uboot-envtools/files/ipq40xx > index 1462aa991d..9a71a622f7 100644 > --- a/package/boot/uboot-envtools/files/ipq40xx > +++ b/package/boot/uboot-envtools/files/ipq40xx > @@ -35,6 +35,7 @@ devolo,magic-2-wifi-next|\ > edgecore,ecw5211|\ > glinet,gl-ap1300|\ > glinet,gl-b1300|\ > +glinet,gl-b2200|\ > luma,wrtq-329acn|\ > netgear,wac510|\ > openmesh,a42|\ > diff --git a/package/firmware/ipq-wifi/Makefile b/package/firmware/ipq-wifi/Makefile > index da0949b887..1467b032da 100644 > --- a/package/firmware/ipq-wifi/Makefile > +++ b/package/firmware/ipq-wifi/Makefile > @@ -39,6 +39,7 @@ ALLWIFIBOARDS:= \ > engenius_emr3500 \ > ezviz_cs-w3-wd1200g-eup \ > glinet_gl-ap1300 \ > + glinet_gl-b2200 \ > glinet_gl-s1300 \ > linksys_ea8300 \ > linksys_mr8300-v0 \ > @@ -125,6 +126,7 @@ $(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-b2200,GL.iNet GL-B2200)) > $(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-b2200.qca4019 b/package/firmware/ipq-wifi/board-glinet_gl-b2200.qca4019 > new file mode 100644 > index 0000000000000000000000000000000000000000..ac1850160aead29cee0fb96664272b8a620a4e6a > GIT binary patch > literal 24308 > zcmeHPdr(tX8b1jj>SE!BfCzXAAv{7MK%g2V@)iT6U{R3(i$E30tx+C^hoKAYC{l=s > zKrI*|Xc?48Q$)ta7qM7dJEP40v48CBA8ltJ-I;aQcC<U~%<kfzdy@+xB$^0pdE76Y > zbG~!#_nq^d-#tn0&G~WPN{9=N+an4KO%0AukIP5|GMNlODGtGN0JgwXC@<e$P+S;P > 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 > > literal 0 > HcmV?d00001 > > diff --git a/package/firmware/ipq-wifi/board-glinet_gl-b2200.qca9888 b/package/firmware/ipq-wifi/board-glinet_gl-b2200.qca9888 > new file mode 100644 > index 0000000000000000000000000000000000000000..4f0a521f35935d4be1fb01b66dd9954a48eade52 > GIT binary patch > literal 12200 > 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 > > literal 0 > HcmV?d00001 > > diff --git a/target/linux/ipq40xx/Makefile b/target/linux/ipq40xx/Makefile > index fb003243cc..a3270379d4 100644 > --- a/target/linux/ipq40xx/Makefile > +++ b/target/linux/ipq40xx/Makefile > @@ -3,7 +3,7 @@ include $(TOPDIR)/rules.mk > ARCH:=arm > BOARD:=ipq40xx > BOARDNAME:=Qualcomm Atheros IPQ40XX > -FEATURES:=squashfs fpu ramdisk nand > +FEATURES:=squashfs fpu ramdisk nand boot-part rootfs-part > CPU_TYPE:=cortex-a7 > CPU_SUBTYPE:=neon-vfpv4 > SUBTARGETS:=generic mikrotik > 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 5d123109a2..c674186b44 100644 > --- a/target/linux/ipq40xx/base-files/etc/board.d/02_network > +++ b/target/linux/ipq40xx/base-files/etc/board.d/02_network > @@ -103,6 +103,11 @@ ipq40xx_setup_interfaces() > ucidef_add_switch "switch0" \ > "0u@eth0" "3:lan" "4:lan" > ;; > + glinet,gl-b2200) > + ucidef_set_interfaces_lan_wan "eth0" "eth1" > + ucidef_add_switch "switch0" \ > + "0u@eth0" "1:lan" "2:lan" "3:lan" "5:lan" "0u@eth1" "4:wan" > + ;; > mobipromo,cm520-79f) > ucidef_add_switch "switch0" \ > "0u@eth0" "3:lan:2" "4:lan:1" > 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 35862ce3bc..6899723a74 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 > @@ -35,6 +35,7 @@ case "$FIRMWARE" in > caldata_extract "ART" 0x9000 0x2f20 > ath10k_patch_mac $(mtd_get_mac_binary ORGDATA 0x32) > ;; > + glinet,gl-b2200 |\ > engenius,eap2200 |\ > openmesh,a62 |\ > plasmacloud,pa2200) > @@ -64,6 +65,7 @@ case "$FIRMWARE" in > ezviz,cs-w3-wd1200g-eup |\ > glinet,gl-ap1300 |\ > glinet,gl-b1300 |\ > + glinet,gl-b2200 |\ > glinet,gl-s1300 |\ > linksys,ea6350v3 |\ > mobipromo,cm520-79f |\ > @@ -186,6 +188,7 @@ case "$FIRMWARE" in > ezviz,cs-w3-wd1200g-eup |\ > glinet,gl-ap1300 |\ > glinet,gl-b1300 |\ > + glinet,gl-b2200 |\ > glinet,gl-s1300 |\ > linksys,ea6350v3 |\ > mobipromo,cm520-79f |\ > diff --git a/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4019-gl-b2200.dts b/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4019-gl-b2200.dts > new file mode 100644 > index 0000000000..6b84f78dc4 > --- /dev/null > +++ b/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4019-gl-b2200.dts > @@ -0,0 +1,364 @@ > +// SPDX-License-Identifier: GPL-2.0-only OR MIT > + > +#include "qcom-ipq4019.dtsi" > +#include <dt-bindings/gpio/gpio.h> > +#include <dt-bindings/input/input.h> > +#include <dt-bindings/soc/qcom,tcsr.h> > + > +/ { > + model = "GL.iNet GL-B2200"; > + compatible = "glinet,gl-b2200", "qcom,ipq4019"; > + > + memory { > + device_type = "memory"; > + reg = <0x80000000 0x10000000>; > + }; > + > + chosen { > + bootargs-append = " root=/dev/mmcblk0p2 rw rootwait 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_WIFI_GLB_CFG>; > + }; > + > + tcsr@194b000 { > + /* select hostmode */ > + compatible = "qcom,tcsr"; > + reg = <0x194b000 0x100>; > + qcom,usb-hsphy-mode-select = <TCSR_USB_HSPHY_HOST_MODE>; > + status = "okay"; > + }; > + > + ess_tcsr@1953000 { > + compatible = "qcom,tcsr"; > + reg = <0x1953000 0x1000>; > + qcom,ess-interface-select = <TCSR_ESS_PSGMII>; > + }; > + > + tcsr@1957000 { > + compatible = "qcom,tcsr"; > + reg = <0x1957000 0x100>; > + qcom,wifi_noc_memtype_m0_m2 = <TCSR_WIFI_NOC_MEMTYPE_M0_M2>; > + }; > + > + crypto@8e3a000 { > + status = "okay"; > + }; > + > + ess-switch@c000000 { > + status = "okay"; > + switch_lan_bmp = <0x2e>; > + switch_wan_bmp = <0x10>; > + }; > + > + edma@c080000 { > + status = "okay"; > + }; > + }; > + > + keys { > + compatible = "gpio-keys"; > + > + wps { > + label = "wps"; > + gpios = <&tlmm 18 GPIO_ACTIVE_LOW>; > + linux,code = <KEY_WPS_BUTTON>; > + linux,input-type = <1>; > + }; > + > + reset { > + label = "reset"; > + gpios = <&tlmm 43 GPIO_ACTIVE_LOW>; > + linux,code = <KEY_RESTART>; > + linux,input-type = <1>; > + }; > + }; > + > + leds { > + compatible = "gpio-leds"; > + > + power_blue { > + label = "blue:power"; > + gpios = <&tlmm 57 GPIO_ACTIVE_HIGH>; > + default-state = "on"; > + }; > + internet_blue { > + label = "blue:internet"; > + gpios = <&tlmm 60 GPIO_ACTIVE_HIGH>; > + }; > + power_white { > + label = "white:power"; > + gpios = <&tlmm 61 GPIO_ACTIVE_LOW>; > + }; > + internet_white { > + label = "white:internet"; > + gpios = <&tlmm 66 GPIO_ACTIVE_LOW>; > + }; > + }; > +}; > + > +&gmac1 { > + qcom,phy_mdio_addr = <3>; > + qcom,poll_required = <1>; > + qcom,forced_speed = <1000>; > + qcom,forced_duplex = <1>; > + vlan_tag = <2 0x10>; > +}; > + > +&gmac0 { > + vlan_tag = <1 0x2e>; > +}; > + > +&vqmmc { > + status = "okay"; > +}; > + > +&sdhci { > + status = "okay"; > + pinctrl-0 = <&sd_pins>; > + pinctrl-names = "default"; > + cd-gpios = <&tlmm 3 GPIO_ACTIVE_LOW>; > + vqmmc-supply = <&vqmmc>; > +}; > + > +&blsp_dma { > + status = "okay"; > +}; > + > +&cryptobam { > + status = "okay"; > +}; > + > +&blsp1_spi1 { > + pinctrl-0 = <&spi_0_pins>; > + pinctrl-names = "default"; > + status = "okay"; > + cs-gpios = <&tlmm 12 GPIO_ACTIVE_HIGH>; > + > + flash@0 { > + 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 = <0x0 0x40000>; > + read-only; > + }; > + > + partition@40000 { > + label = "MIBIB"; > + reg = <0x40000 0x20000>; > + read-only; > + }; > + > + partition@60000 { > + label = "QSEE"; > + reg = <0x60000 0x60000>; > + read-only; > + }; > + > + partition@c0000 { > + label = "CDT"; > + reg = <0xc0000 0x10000>; > + read-only; > + }; > + > + partition@d0000 { > + label = "DDRPARAMS"; > + reg = <0xd0000 0x10000>; > + read-only; > + }; > + > + partition@e0000 { > + label = "APPSBLENV"; > + reg = <0xe0000 0x10000>; > + read-only; > + }; > + > + partition@f0000 { > + label = "APPSBL"; > + reg = <0xf0000 0x80000>; > + read-only; > + }; > + > + partition@170000 { > + label = "ART"; > + reg = <0x170000 0x10000>; > + read-only; > + }; > + }; > + }; > +}; > + > +&blsp1_spi2 { > + pinctrl-0 = <&spi_1_pins>; > + pinctrl-names = "default"; > + status = "okay"; > + > + spidev1: spi@0 { > + compatible = "siliconlabs,si3210"; > + reg = <0>; > + spi-max-frequency = <24000000>; > + }; > +}; > + > +&blsp1_uart1 { > + pinctrl-0 = <&serial_pins>; > + pinctrl-names = "default"; > + status = "okay"; > +}; > + > +&blsp1_uart2 { > + pinctrl-0 = <&serial_1_pins>; > + pinctrl-names = "default"; > + status = "okay"; > +}; > + > +&tlmm { > + serial_pins: serial_pinmux { > + mux { > + pins = "gpio16", "gpio17"; > + function = "blsp_uart0"; > + bias-disable; > + }; > + }; > + > + serial_1_pins: serial1_pinmux { > + mux { > + pins = "gpio8", "gpio9", > + "gpio10", "gpio11"; > + function = "blsp_uart1"; > + bias-disable; > + }; > + }; > + > + spi_0_pins: spi_0_pinmux { > + pinmux { > + function = "blsp_spi0"; > + pins = "gpio13", "gpio14", "gpio15"; > + }; > + pinmux_cs { > + function = "gpio"; > + pins = "gpio12"; > + }; > + pinconf { > + pins = "gpio13", "gpio14", "gpio15"; > + drive-strength = <12>; > + bias-disable; > + }; > + pinconf_cs { > + pins = "gpio12"; > + drive-strength = <2>; > + bias-disable; > + output-high; > + }; > + }; > + > + spi_1_pins: spi_1_pinmux { > + mux { > + pins = "gpio44", "gpio46", "gpio47"; > + function = "blsp_spi1"; > + bias-disable; > + }; > + cs { > + pins = "gpio45"; > + function = "gpio"; > + bias-pull-up; > + }; > + reset { > + pins = "gpio43"; > + function = "gpio"; > + output-high; > + }; > + mux_2 { > + pins = "gpio35"; > + function = "gpio"; > + output-high; > + }; > + host_int { > + pins = "gpio2"; > + function = "gpio"; > + input; > + }; > + wake { > + pins = "gpio48"; > + function = "gpio"; > + output-high; > + }; > + }; > + > + sd_pins: sd_pins { > + pinmux { > + function = "sdio"; > + pins = "gpio23", "gpio24", "gpio25", "gpio26", > + "gpio29", "gpio30", "gpio31", "gpio32"; > + drive-strength = <10>; > + }; > + > + pinmux_sd_clk { > + function = "sdio"; > + pins = "gpio27"; > + drive-strength = <16>; > + }; > + > + pinmux_sd7 { > + function = "sdio"; > + pins = "gpio28"; > + drive-strength = <10>; > + bias-disable; > + }; > + }; > + > +}; > + > +&pcie0 { > + status = "okay"; > + perst-gpio = <&tlmm 38 GPIO_ACTIVE_LOW>; > + wake-gpio = <&tlmm 50 GPIO_ACTIVE_LOW>; > + > + bridge@0,0 { > + reg = <0x00000000 0 0 0 0>; > + #address-cells = <3>; > + #size-cells = <2>; > + ranges; > + > + wifi2: wifi@1,0 { > + status = "okay"; > + compatible = "qcom,ath10k"; > + reg = <0x00010000 0 0 0 0>; > + qcom,ath10k-calibration-variant = "GL-B2200"; > + }; > + }; > +}; > + > +&wifi0 { > + status = "okay"; > + qcom,ath10k-calibration-variant = "GL-B2200"; > +}; > + > +&wifi1 { > + status = "okay"; > + qcom,ath10k-calibration-variant = "GL-B2200"; > +}; > diff --git a/target/linux/ipq40xx/image/generic.mk b/target/linux/ipq40xx/image/generic.mk > index c24eb28523..1184b7d533 100644 > --- a/target/linux/ipq40xx/image/generic.mk > +++ b/target/linux/ipq40xx/image/generic.mk > @@ -81,6 +81,17 @@ define Build/qsdk-ipq-factory-nand-askey > @mv $@.new $@ > endef > > +define Build/qsdk-ipq-app-gpt > + cp $@ $@.tmp 2>/dev/null || true > + ptgen -g -o $@.tmp -a 1 -l 1024 \ > + -t 0x2e -N 0:HLOS -r -p 32M \ > + -t 0x83 -N rootfs -r -p 128M \ > + -N rootfs_data -p 512M \ > + -N user_data -p 6766M > + cat $@.tmp >> $@ > + rm $@.tmp > +endef > + > define Build/SenaoFW > -$(STAGING_DIR_HOST)/bin/mksenaofw \ > -n $(BOARD_NAME) -r $(VENDOR_ID) -p $(1) \ > @@ -509,6 +520,23 @@ define Device/glinet_gl-b1300 > endef > TARGET_DEVICES += glinet_gl-b1300 > > +define Device/glinet_gl-b2200 > + $(call Device/FitzImage) > + DEVICE_VENDOR := GL.iNet > + DEVICE_MODEL := GL-B2200 > + SOC := qcom-ipq4019 > + DEVICE_DTS_CONFIG := config@ap.dk04.1-c3 > + KERNEL_INITRAMFS_SUFFIX := -recovery.itb > + IMAGES := sdcard.img.gz > + IMAGE/sdcard.img.gz := qsdk-ipq-app-gpt |\ > + pad-to 1024k | append-kernel |\ > + pad-to 33792k | append-rootfs |\ > + append-metadata | gzip > + DEVICE_PACKAGES := ath10k-firmware-qca9888-ct ipq-wifi-glinet_gl-b2200 \ > + kmod-fs-ext4 kmod-mmc kmod-spi-dev mkf2fs e2fsprogs kmod-fs-f2fs > +endef > +TARGET_DEVICES += glinet_gl-b2200 > + > define Device/glinet_gl-s1300 > $(call Device/FitzImage) > DEVICE_VENDOR := GL.iNet > diff --git a/target/linux/ipq40xx/patches-5.10/901-arm-boot-add-dts-files.patch b/target/linux/ipq40xx/patches-5.10/901-arm-boot-add-dts-files.patch > index 436f5a74f5..030e0d6b45 100644 > --- a/target/linux/ipq40xx/patches-5.10/901-arm-boot-add-dts-files.patch > +++ b/target/linux/ipq40xx/patches-5.10/901-arm-boot-add-dts-files.patch > @@ -10,7 +10,7 @@ Signed-off-by: John Crispin <john@phrozen.org> > > --- a/arch/arm/boot/dts/Makefile > +++ b/arch/arm/boot/dts/Makefile > -@@ -902,11 +902,67 @@ dtb-$(CONFIG_ARCH_QCOM) += \ > +@@ -902,11 +902,68 @@ dtb-$(CONFIG_ARCH_QCOM) += \ > qcom-apq8074-dragonboard.dtb \ > qcom-apq8084-ifc6540.dtb \ > qcom-apq8084-mtp.dtb \ > @@ -73,6 +73,7 @@ Signed-off-by: John Crispin <john@phrozen.org> > + qcom-ipq4029-ap-303h.dtb \ > + qcom-ipq4029-ap-365.dtb \ > + qcom-ipq4029-gl-b1300.dtb \ > ++ qcom-ipq4019-gl-b2200.dtb \ > + qcom-ipq4029-gl-s1300.dtb \ > + qcom-ipq4029-mr33.dtb \ > qcom-ipq8064-ap148.dtb \ > 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 bb63c1c4fb..ac53337855 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 <john@phrozen.org> > > --- a/arch/arm/boot/dts/Makefile > +++ b/arch/arm/boot/dts/Makefile > -@@ -837,11 +837,65 @@ dtb-$(CONFIG_ARCH_QCOM) += \ > +@@ -837,11 +837,66 @@ dtb-$(CONFIG_ARCH_QCOM) += \ > qcom-apq8074-dragonboard.dtb \ > qcom-apq8084-ifc6540.dtb \ > qcom-apq8084-mtp.dtb \ > @@ -71,6 +71,7 @@ Signed-off-by: John Crispin <john@phrozen.org> > + qcom-ipq4029-ap-303h.dtb \ > + qcom-ipq4029-ap-365.dtb \ > + qcom-ipq4029-gl-b1300.dtb \ > ++ qcom-ipq4019-gl-b2200.dtb \ > + qcom-ipq4029-gl-s1300.dtb \ > + qcom-ipq4029-mr33.dtb \ > qcom-ipq8064-ap148.dtb \ > -- > 2.34.0 > >
diff --git a/package/boot/uboot-envtools/files/ipq40xx b/package/boot/uboot-envtools/files/ipq40xx index 1462aa991d..9a71a622f7 100644 --- a/package/boot/uboot-envtools/files/ipq40xx +++ b/package/boot/uboot-envtools/files/ipq40xx @@ -35,6 +35,7 @@ devolo,magic-2-wifi-next|\ edgecore,ecw5211|\ glinet,gl-ap1300|\ glinet,gl-b1300|\ +glinet,gl-b2200|\ luma,wrtq-329acn|\ netgear,wac510|\ openmesh,a42|\ diff --git a/package/firmware/ipq-wifi/Makefile b/package/firmware/ipq-wifi/Makefile index da0949b887..1467b032da 100644 --- a/package/firmware/ipq-wifi/Makefile +++ b/package/firmware/ipq-wifi/Makefile @@ -39,6 +39,7 @@ ALLWIFIBOARDS:= \ engenius_emr3500 \ ezviz_cs-w3-wd1200g-eup \ glinet_gl-ap1300 \ + glinet_gl-b2200 \ glinet_gl-s1300 \ linksys_ea8300 \ linksys_mr8300-v0 \ @@ -125,6 +126,7 @@ $(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-b2200,GL.iNet GL-B2200)) $(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-b2200.qca4019 b/package/firmware/ipq-wifi/board-glinet_gl-b2200.qca4019 new file mode 100644 index 0000000000000000000000000000000000000000..ac1850160aead29cee0fb96664272b8a620a4e6a GIT binary patch literal 24308 zcmeHPdr(tX8b1jj>SE!BfCzXAAv{7MK%g2V@)iT6U{R3(i$E30tx+C^hoKAYC{l=s zKrI*|Xc?48Q$)ta7qM7dJEP40v48CBA8ltJ-I;aQcC<U~%<kfzdy@+xB$^0pdE76Y zbG~!#_nq^d-#tn0&G~WPN{9=N+an4KO%0AukIP5|GMNlODGtGN0JgwXC@<e$P+S;P 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 literal 0 HcmV?d00001 diff --git a/package/firmware/ipq-wifi/board-glinet_gl-b2200.qca9888 b/package/firmware/ipq-wifi/board-glinet_gl-b2200.qca9888 new file mode 100644 index 0000000000000000000000000000000000000000..4f0a521f35935d4be1fb01b66dd9954a48eade52 GIT binary patch literal 12200 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 literal 0 HcmV?d00001 diff --git a/target/linux/ipq40xx/Makefile b/target/linux/ipq40xx/Makefile index fb003243cc..a3270379d4 100644 --- a/target/linux/ipq40xx/Makefile +++ b/target/linux/ipq40xx/Makefile @@ -3,7 +3,7 @@ include $(TOPDIR)/rules.mk ARCH:=arm BOARD:=ipq40xx BOARDNAME:=Qualcomm Atheros IPQ40XX -FEATURES:=squashfs fpu ramdisk nand +FEATURES:=squashfs fpu ramdisk nand boot-part rootfs-part CPU_TYPE:=cortex-a7 CPU_SUBTYPE:=neon-vfpv4 SUBTARGETS:=generic mikrotik 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 5d123109a2..c674186b44 100644 --- a/target/linux/ipq40xx/base-files/etc/board.d/02_network +++ b/target/linux/ipq40xx/base-files/etc/board.d/02_network @@ -103,6 +103,11 @@ ipq40xx_setup_interfaces() ucidef_add_switch "switch0" \ "0u@eth0" "3:lan" "4:lan" ;; + glinet,gl-b2200) + ucidef_set_interfaces_lan_wan "eth0" "eth1" + ucidef_add_switch "switch0" \ + "0u@eth0" "1:lan" "2:lan" "3:lan" "5:lan" "0u@eth1" "4:wan" + ;; mobipromo,cm520-79f) ucidef_add_switch "switch0" \ "0u@eth0" "3:lan:2" "4:lan:1" 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 35862ce3bc..6899723a74 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 @@ -35,6 +35,7 @@ case "$FIRMWARE" in caldata_extract "ART" 0x9000 0x2f20 ath10k_patch_mac $(mtd_get_mac_binary ORGDATA 0x32) ;; + glinet,gl-b2200 |\ engenius,eap2200 |\ openmesh,a62 |\ plasmacloud,pa2200) @@ -64,6 +65,7 @@ case "$FIRMWARE" in ezviz,cs-w3-wd1200g-eup |\ glinet,gl-ap1300 |\ glinet,gl-b1300 |\ + glinet,gl-b2200 |\ glinet,gl-s1300 |\ linksys,ea6350v3 |\ mobipromo,cm520-79f |\ @@ -186,6 +188,7 @@ case "$FIRMWARE" in ezviz,cs-w3-wd1200g-eup |\ glinet,gl-ap1300 |\ glinet,gl-b1300 |\ + glinet,gl-b2200 |\ glinet,gl-s1300 |\ linksys,ea6350v3 |\ mobipromo,cm520-79f |\ diff --git a/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4019-gl-b2200.dts b/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4019-gl-b2200.dts new file mode 100644 index 0000000000..6b84f78dc4 --- /dev/null +++ b/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4019-gl-b2200.dts @@ -0,0 +1,364 @@ +// SPDX-License-Identifier: GPL-2.0-only OR MIT + +#include "qcom-ipq4019.dtsi" +#include <dt-bindings/gpio/gpio.h> +#include <dt-bindings/input/input.h> +#include <dt-bindings/soc/qcom,tcsr.h> + +/ { + model = "GL.iNet GL-B2200"; + compatible = "glinet,gl-b2200", "qcom,ipq4019"; + + memory { + device_type = "memory"; + reg = <0x80000000 0x10000000>; + }; + + chosen { + bootargs-append = " root=/dev/mmcblk0p2 rw rootwait 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_WIFI_GLB_CFG>; + }; + + tcsr@194b000 { + /* select hostmode */ + compatible = "qcom,tcsr"; + reg = <0x194b000 0x100>; + qcom,usb-hsphy-mode-select = <TCSR_USB_HSPHY_HOST_MODE>; + status = "okay"; + }; + + ess_tcsr@1953000 { + compatible = "qcom,tcsr"; + reg = <0x1953000 0x1000>; + qcom,ess-interface-select = <TCSR_ESS_PSGMII>; + }; + + tcsr@1957000 { + compatible = "qcom,tcsr"; + reg = <0x1957000 0x100>; + qcom,wifi_noc_memtype_m0_m2 = <TCSR_WIFI_NOC_MEMTYPE_M0_M2>; + }; + + crypto@8e3a000 { + status = "okay"; + }; + + ess-switch@c000000 { + status = "okay"; + switch_lan_bmp = <0x2e>; + switch_wan_bmp = <0x10>; + }; + + edma@c080000 { + status = "okay"; + }; + }; + + keys { + compatible = "gpio-keys"; + + wps { + label = "wps"; + gpios = <&tlmm 18 GPIO_ACTIVE_LOW>; + linux,code = <KEY_WPS_BUTTON>; + linux,input-type = <1>; + }; + + reset { + label = "reset"; + gpios = <&tlmm 43 GPIO_ACTIVE_LOW>; + linux,code = <KEY_RESTART>; + linux,input-type = <1>; + }; + }; + + leds { + compatible = "gpio-leds"; + + power_blue { + label = "blue:power"; + gpios = <&tlmm 57 GPIO_ACTIVE_HIGH>; + default-state = "on"; + }; + internet_blue { + label = "blue:internet"; + gpios = <&tlmm 60 GPIO_ACTIVE_HIGH>; + }; + power_white { + label = "white:power"; + gpios = <&tlmm 61 GPIO_ACTIVE_LOW>; + }; + internet_white { + label = "white:internet"; + gpios = <&tlmm 66 GPIO_ACTIVE_LOW>; + }; + }; +}; + +&gmac1 { + qcom,phy_mdio_addr = <3>; + qcom,poll_required = <1>; + qcom,forced_speed = <1000>; + qcom,forced_duplex = <1>; + vlan_tag = <2 0x10>; +}; + +&gmac0 { + vlan_tag = <1 0x2e>; +}; + +&vqmmc { + status = "okay"; +}; + +&sdhci { + status = "okay"; + pinctrl-0 = <&sd_pins>; + pinctrl-names = "default"; + cd-gpios = <&tlmm 3 GPIO_ACTIVE_LOW>; + vqmmc-supply = <&vqmmc>; +}; + +&blsp_dma { + status = "okay"; +}; + +&cryptobam { + status = "okay"; +}; + +&blsp1_spi1 { + pinctrl-0 = <&spi_0_pins>; + pinctrl-names = "default"; + status = "okay"; + cs-gpios = <&tlmm 12 GPIO_ACTIVE_HIGH>; + + flash@0 { + 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 = <0x0 0x40000>; + read-only; + }; + + partition@40000 { + label = "MIBIB"; + reg = <0x40000 0x20000>; + read-only; + }; + + partition@60000 { + label = "QSEE"; + reg = <0x60000 0x60000>; + read-only; + }; + + partition@c0000 { + label = "CDT"; + reg = <0xc0000 0x10000>; + read-only; + }; + + partition@d0000 { + label = "DDRPARAMS"; + reg = <0xd0000 0x10000>; + read-only; + }; + + partition@e0000 { + label = "APPSBLENV"; + reg = <0xe0000 0x10000>; + read-only; + }; + + partition@f0000 { + label = "APPSBL"; + reg = <0xf0000 0x80000>; + read-only; + }; + + partition@170000 { + label = "ART"; + reg = <0x170000 0x10000>; + read-only; + }; + }; + }; +}; + +&blsp1_spi2 { + pinctrl-0 = <&spi_1_pins>; + pinctrl-names = "default"; + status = "okay"; + + spidev1: spi@0 { + compatible = "siliconlabs,si3210"; + reg = <0>; + spi-max-frequency = <24000000>; + }; +}; + +&blsp1_uart1 { + pinctrl-0 = <&serial_pins>; + pinctrl-names = "default"; + status = "okay"; +}; + +&blsp1_uart2 { + pinctrl-0 = <&serial_1_pins>; + pinctrl-names = "default"; + status = "okay"; +}; + +&tlmm { + serial_pins: serial_pinmux { + mux { + pins = "gpio16", "gpio17"; + function = "blsp_uart0"; + bias-disable; + }; + }; + + serial_1_pins: serial1_pinmux { + mux { + pins = "gpio8", "gpio9", + "gpio10", "gpio11"; + function = "blsp_uart1"; + bias-disable; + }; + }; + + spi_0_pins: spi_0_pinmux { + pinmux { + function = "blsp_spi0"; + pins = "gpio13", "gpio14", "gpio15"; + }; + pinmux_cs { + function = "gpio"; + pins = "gpio12"; + }; + pinconf { + pins = "gpio13", "gpio14", "gpio15"; + drive-strength = <12>; + bias-disable; + }; + pinconf_cs { + pins = "gpio12"; + drive-strength = <2>; + bias-disable; + output-high; + }; + }; + + spi_1_pins: spi_1_pinmux { + mux { + pins = "gpio44", "gpio46", "gpio47"; + function = "blsp_spi1"; + bias-disable; + }; + cs { + pins = "gpio45"; + function = "gpio"; + bias-pull-up; + }; + reset { + pins = "gpio43"; + function = "gpio"; + output-high; + }; + mux_2 { + pins = "gpio35"; + function = "gpio"; + output-high; + }; + host_int { + pins = "gpio2"; + function = "gpio"; + input; + }; + wake { + pins = "gpio48"; + function = "gpio"; + output-high; + }; + }; + + sd_pins: sd_pins { + pinmux { + function = "sdio"; + pins = "gpio23", "gpio24", "gpio25", "gpio26", + "gpio29", "gpio30", "gpio31", "gpio32"; + drive-strength = <10>; + }; + + pinmux_sd_clk { + function = "sdio"; + pins = "gpio27"; + drive-strength = <16>; + }; + + pinmux_sd7 { + function = "sdio"; + pins = "gpio28"; + drive-strength = <10>; + bias-disable; + }; + }; + +}; + +&pcie0 { + status = "okay"; + perst-gpio = <&tlmm 38 GPIO_ACTIVE_LOW>; + wake-gpio = <&tlmm 50 GPIO_ACTIVE_LOW>; + + bridge@0,0 { + reg = <0x00000000 0 0 0 0>; + #address-cells = <3>; + #size-cells = <2>; + ranges; + + wifi2: wifi@1,0 { + status = "okay"; + compatible = "qcom,ath10k"; + reg = <0x00010000 0 0 0 0>; + qcom,ath10k-calibration-variant = "GL-B2200"; + }; + }; +}; + +&wifi0 { + status = "okay"; + qcom,ath10k-calibration-variant = "GL-B2200"; +}; + +&wifi1 { + status = "okay"; + qcom,ath10k-calibration-variant = "GL-B2200"; +}; diff --git a/target/linux/ipq40xx/image/generic.mk b/target/linux/ipq40xx/image/generic.mk index c24eb28523..1184b7d533 100644 --- a/target/linux/ipq40xx/image/generic.mk +++ b/target/linux/ipq40xx/image/generic.mk @@ -81,6 +81,17 @@ define Build/qsdk-ipq-factory-nand-askey @mv $@.new $@ endef +define Build/qsdk-ipq-app-gpt + cp $@ $@.tmp 2>/dev/null || true + ptgen -g -o $@.tmp -a 1 -l 1024 \ + -t 0x2e -N 0:HLOS -r -p 32M \ + -t 0x83 -N rootfs -r -p 128M \ + -N rootfs_data -p 512M \ + -N user_data -p 6766M + cat $@.tmp >> $@ + rm $@.tmp +endef + define Build/SenaoFW -$(STAGING_DIR_HOST)/bin/mksenaofw \ -n $(BOARD_NAME) -r $(VENDOR_ID) -p $(1) \ @@ -509,6 +520,23 @@ define Device/glinet_gl-b1300 endef TARGET_DEVICES += glinet_gl-b1300 +define Device/glinet_gl-b2200 + $(call Device/FitzImage) + DEVICE_VENDOR := GL.iNet + DEVICE_MODEL := GL-B2200 + SOC := qcom-ipq4019 + DEVICE_DTS_CONFIG := config@ap.dk04.1-c3 + KERNEL_INITRAMFS_SUFFIX := -recovery.itb + IMAGES := sdcard.img.gz + IMAGE/sdcard.img.gz := qsdk-ipq-app-gpt |\ + pad-to 1024k | append-kernel |\ + pad-to 33792k | append-rootfs |\ + append-metadata | gzip + DEVICE_PACKAGES := ath10k-firmware-qca9888-ct ipq-wifi-glinet_gl-b2200 \ + kmod-fs-ext4 kmod-mmc kmod-spi-dev mkf2fs e2fsprogs kmod-fs-f2fs +endef +TARGET_DEVICES += glinet_gl-b2200 + define Device/glinet_gl-s1300 $(call Device/FitzImage) DEVICE_VENDOR := GL.iNet diff --git a/target/linux/ipq40xx/patches-5.10/901-arm-boot-add-dts-files.patch b/target/linux/ipq40xx/patches-5.10/901-arm-boot-add-dts-files.patch index 436f5a74f5..030e0d6b45 100644 --- a/target/linux/ipq40xx/patches-5.10/901-arm-boot-add-dts-files.patch +++ b/target/linux/ipq40xx/patches-5.10/901-arm-boot-add-dts-files.patch @@ -10,7 +10,7 @@ Signed-off-by: John Crispin <john@phrozen.org> --- a/arch/arm/boot/dts/Makefile +++ b/arch/arm/boot/dts/Makefile -@@ -902,11 +902,67 @@ dtb-$(CONFIG_ARCH_QCOM) += \ +@@ -902,11 +902,68 @@ dtb-$(CONFIG_ARCH_QCOM) += \ qcom-apq8074-dragonboard.dtb \ qcom-apq8084-ifc6540.dtb \ qcom-apq8084-mtp.dtb \ @@ -73,6 +73,7 @@ Signed-off-by: John Crispin <john@phrozen.org> + qcom-ipq4029-ap-303h.dtb \ + qcom-ipq4029-ap-365.dtb \ + qcom-ipq4029-gl-b1300.dtb \ ++ qcom-ipq4019-gl-b2200.dtb \ + qcom-ipq4029-gl-s1300.dtb \ + qcom-ipq4029-mr33.dtb \ qcom-ipq8064-ap148.dtb \ 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 bb63c1c4fb..ac53337855 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 <john@phrozen.org> --- a/arch/arm/boot/dts/Makefile +++ b/arch/arm/boot/dts/Makefile -@@ -837,11 +837,65 @@ dtb-$(CONFIG_ARCH_QCOM) += \ +@@ -837,11 +837,66 @@ dtb-$(CONFIG_ARCH_QCOM) += \ qcom-apq8074-dragonboard.dtb \ qcom-apq8084-ifc6540.dtb \ qcom-apq8084-mtp.dtb \ @@ -71,6 +71,7 @@ Signed-off-by: John Crispin <john@phrozen.org> + qcom-ipq4029-ap-303h.dtb \ + qcom-ipq4029-ap-365.dtb \ + qcom-ipq4029-gl-b1300.dtb \ ++ qcom-ipq4019-gl-b2200.dtb \ + qcom-ipq4029-gl-s1300.dtb \ + qcom-ipq4029-mr33.dtb \ qcom-ipq8064-ap148.dtb \