From ff699efc5719d680978c417df9eb084b69bb89d5 Mon Sep 17 00:00:00 2001 From: JiaY-shi Date: Mon, 17 Jun 2024 22:17:45 +0800 Subject: [PATCH] qualcommax: ipq50xx: add glinet gl-b3000 support Signed-off-by: Shi JiaYang --- package/firmware/ipq-wifi/Makefile | 2 + .../ipq-wifi/src/board-gl-b3000.bin.IPQ5018 | Bin 0 -> 131180 bytes .../ipq-wifi/src/board-gl-b3000.bin.qcn6122 | Bin 0 -> 131180 bytes .../arm64/boot/dts/qcom/ipq5000-gl-b3000.dts | 478 ++++++++++++++++++ target/linux/qualcommax/image/ipq50xx.mk | 14 + .../ipq50xx/base-files/etc/board.d/02_network | 3 + .../etc/hotplug.d/firmware/11-ath11k-caldata | 8 + .../base-files/lib/upgrade/platform.sh | 3 + 8 files changed, 508 insertions(+) create mode 100644 package/firmware/ipq-wifi/src/board-gl-b3000.bin.IPQ5018 create mode 100644 package/firmware/ipq-wifi/src/board-gl-b3000.bin.qcn6122 create mode 100644 target/linux/qualcommax/files/arch/arm64/boot/dts/qcom/ipq5000-gl-b3000.dts diff --git a/package/firmware/ipq-wifi/Makefile b/package/firmware/ipq-wifi/Makefile index 3e2953be6e..eb473b2631 100644 --- a/package/firmware/ipq-wifi/Makefile +++ b/package/firmware/ipq-wifi/Makefile @@ -37,6 +37,7 @@ ALLWIFIBOARDS:= \ dynalink_dl-wrx36 \ edgecore_eap102 \ edimax_cax1800 \ + gl-b3000 \ linksys_mx2000 \ linksys_mx4200 \ linksys_mx5300 \ @@ -170,6 +171,7 @@ $(eval $(call generate-ipq-wifi-package,compex_wpq873,Compex WPQ-873)) $(eval $(call generate-ipq-wifi-package,dynalink_dl-wrx36,Dynalink DL-WRX36)) $(eval $(call generate-ipq-wifi-package,edgecore_eap102,Edgecore EAP102)) $(eval $(call generate-ipq-wifi-package,edimax_cax1800,Edimax CAX1800)) +$(eval $(call generate-ipq-wifi-package,gl-b3000,Gl.iNet B3000)) $(eval $(call generate-ipq-wifi-package,linksys_mx2000,Linksys MX2000)) $(eval $(call generate-ipq-wifi-package,linksys_mx4200,Linksys MX4200)) $(eval $(call generate-ipq-wifi-package,linksys_mx5300,Linksys MX5300)) diff --git a/package/firmware/ipq-wifi/src/board-gl-b3000.bin.IPQ5018 b/package/firmware/ipq-wifi/src/board-gl-b3000.bin.IPQ5018 new file mode 100644 index 0000000000000000000000000000000000000000..d7ced1fb8b5fcace1103720676d054958bf0e9d0 GIT binary patch literal 131180 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 literal 0 HcmV?d00001 diff --git a/package/firmware/ipq-wifi/src/board-gl-b3000.bin.qcn6122 b/package/firmware/ipq-wifi/src/board-gl-b3000.bin.qcn6122 new file mode 100644 index 0000000000000000000000000000000000000000..188ee36105be84ebb7a797585029b764610d47c1 GIT binary patch literal 131180 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 +#include +/ { + model = "GL.iNET B3000"; + compatible = "glinet,gl-b3000", "qcom,ipq5018"; + + interrupt-parent = <&intc>; + + aliases { + serial0 = &blsp1_uart1; + + ethernet0 = &dp1; + ethernet1 = &dp2; + label-mac-device = &dp2; + + led-boot = &led_system_blue; + led-failsafe = &led_status_white; + led-running = &led_status_white; + led-upgrade = &led_system_blue; + }; + chosen { + bootargs-append = " root=/dev/ubiblock0_1 swiotlb=1 coherent_pool=2M"; + stdout-path = "serial0:115200n8"; + }; + + leds { + compatible = "gpio-leds"; + pinctrl-0 = <&leds_pins>; + pinctrl-names = "default"; + led_system_blue: led_system_blue { + label = "led_system_blue"; + gpio = <&tlmm 24 0>; + default-state = "on"; + }; + + led_status_white: led_status_white { + label = "led_status_white"; + gpio = <&tlmm 23 0>; + default-state = "off"; + }; + }; + + button { + compatible = "gpio-keys"; + pinctrl-0 = <&button_pins>; + pinctrl-names = "default"; + button_reset { + label = "reset"; + gpios = <&tlmm 27 GPIO_ACTIVE_LOW>; + linux,input-type = ;//<1>; + linux,code = ; + debounce-interval = <60>; + }; + }; + reserved-memory { + tz_appps@4a400000 { + no-map; + reg = <0x0 0x4a400000 0x0 0x400000>; + }; + + q6_mem_regions: q6_mem_regions@4b000000 { + no-map; + reg = <0x0 0x4b000000 0x0 0x3000000>; + }; + }; +}; +&switch { + status = "okay"; + switch_mac_mode = ; + qcom,port_phyinfo { + // MAC0 -> GE Phy -> QCA8337 Phy2 + port@0 { + port_id = <1>; + mdiobus = <&mdio0>; + phy_address = <7>; + phy_dac = <0x10 0x10>; + // status = "disabled"; + }; + // MAC1 ---SGMII---> QCA8337 SerDes + port@1 { + port_id = <2>; + forced-speed = <1000>; + forced-duplex = <1>; + }; + }; +}; +// MAC0 -> GE Phy +&dp1 { + status = "okay"; +}; +// MAC1 ---SGMII---> QCA8337 SerDes +&dp2 { + status = "okay"; + phy-mode = "sgmii"; + nvmem-cells = <&macaddr_dp2>; + nvmem-cell-names = "mac-address"; + + fixed-link { + speed = <1000>; + full-duplex; + }; +}; +&mdio0 { + status = "okay"; +}; +// IPQ5018 GE Phy -> QCA8337 Phy1 +&ge_phy { + status = "okay"; +}; +&mdio1 { + status = "okay"; + pinctrl-0 = <&mdio1_pins>; + pinctrl-names = "default"; + reset-gpios = <&tlmm 39 GPIO_ACTIVE_LOW>; + // QCA8337 Phy0 -> WAN + qca8337_0: ethernet-phy@0 { + reg = <0>; + }; + // QCA8337 Phy1 -> LAN1 + qca8337_1: ethernet-phy@1 { + reg = <1>; + }; + // QCA8337 Phy3 -> LAN2 + qca8337_2: ethernet-phy@2 { + reg = <2>; + }; + // QCA8337 Phy2 -> IPQ5018 GE Phy + qca8337_3: ethernet-phy@3 { + reg = <3>; + }; + // QCA8337 switch + switch0: ethernet-switch@17 { + compatible = "qca,qca8337"; + reg = <17>; + #address-cells = <1>; + #size-cells = <0>; + switch_cpu_bmp = <0x40>; /* cpu port bitmap */ + switch_lan_bmp = <0x0c>; /* lan port bitmap */ + switch_wan_bmp = <0x02>; /* wan port bitmap */ + ports { + #address-cells = <1>; + #size-cells = <0>; + + switch0cpu: port@0 { + reg = <0>; + label = "cpu"; + phy-mode = "sgmii"; + ethernet = <&dp2>; + qca,sgmii-enable-pll; + fixed-link { + speed = <1000>; + full-duplex; + }; + }; + // QCA8337 Phy0 -> WAN + port@1 { + reg = <1>; + label = "wan"; + phy-handle = <&qca8337_0>; + port_id = <1>; + phy_address = <0>; + }; + + // QCA8337 Phy1 -> LAN1 + port@2 { + reg = <2>; + label = "lan1"; + phy-handle = <&qca8337_1>; + port_id = <2>; + phy_address = <1>; + }; + // QCA8337 Phy3 -> LAN2 + port@3 { + reg = <3>; + label = "lan2"; + phy-handle = <&qca8337_2>; + port_id = <3>; + phy_address = <2>; + + }; + }; + }; +}; +&sleep_clk { + clock-frequency = <32000>; +}; +&xo_board_clk { + clock-frequency = <24000000>; +}; +&blsp1_uart1 { + status = "okay"; + pinctrl-0 = <&blsp_uart0_pins>; + pinctrl-names = "default"; +}; +&crypto { + status = "okay"; +}; +&cryptobam { + status = "okay"; +}; +&qpic_bam { + status = "okay"; +}; +&qpic_nand { + pinctrl-0 = <&qpic_pins>; + pinctrl-names = "default"; + status = "okay"; + partitions { + status = "disabled"; + }; + nand@0 { + compatible = "spi-nand"; + reg = <0>; + #address-cells = <1>; + #size-cells = <1>; + nand-ecc-engine = <&qpic_nand>; + nand-ecc-strength = <8>; + nand-ecc-step-size = <512>; + nand-bus-width = <8>; + partitions { + compatible = "fixed-partitions"; + #address-cells = <1>; + #size-cells = <1>; + partition@0 { + label = "0:SBL1"; + reg = <0x00000000 0x80000>; + read-only; + }; + partition@80000 { + label = "0:MIBIB"; + reg = <0x00080000 0x80000>; + read-only; + }; + partition@100000 { + label = "0:BOOTCONFIG"; + reg = <0x00100000 0x40000>; + read-only; + }; + partition@140000 { + label = "0:QSEE"; + reg = <0x00140000 0x100000>; + read-only; + }; + partition@240000 { + label = "0:DEVCFG"; + reg = <0x00240000 0x40000>; + read-only; + }; + partition@280000 { + label = "0:CDT"; + reg = <0x00280000 0x40000>; + read-only; + }; + partition@2c0000 { + label = "0:APPSBLENV"; + reg = <0x002c0000 0x80000>; + }; + partition@340000 { + label = "0:APPSBL"; + reg = <0x00340000 0x140000>; + read-only; + }; + partition@480000 { + label = "0:ART"; + reg = <0x00480000 0x100000>; + read-only; + + nvmem-layout { + compatible = "fixed-layout"; + #address-cells = <1>; + #size-cells = <1>; + macaddr_dp2: macaddr@0 { + reg = <0x0 0x6>; + }; + }; + }; + partition@580000 { + label = "0:TRAINING"; + reg = <0x00580000 0x80000>; + read-only; + }; + partition@600000 { + label = "CFG"; + reg = <0x00600000 0x200000>; + }; + partition@800000 { + label = "rootfs"; + reg = <0x00800000 0x7800000>; + }; + }; + }; +}; +&tlmm { + mdio1_pins: mdio-state { + mdc-pins { + pins = "gpio36"; + function = "mdc"; + drive-strength = <8>; + bias-pull-up; + }; + mdio-pins { + pins = "gpio37"; + function = "mdio"; + drive-strength = <8>; + bias-pull-up; + }; + }; + + leds_pins: leds_pins { + led_system_blue { + pins = "gpio24"; + function = "gpio"; + drive-strength = <8>; + bias-pull-down; + }; + + led_status_white { + pins = "gpio23"; + function = "gpio"; + drive-strength = <8>; + bias-pull-down; + }; + }; + button_pins: button_pins { + button_reset { + pins = "gpio27"; + function = "gpio"; + drive-strength = <8>; + bias-pull-up; + }; + }; + + qpic_pins: qpic-state { + clock-pins { + pins = "gpio9"; + function = "qspi_clk"; + drive-strength = <8>; + bias-disable; + }; + cs-pins { + pins = "gpio8"; + function = "qspi_cs"; + drive-strength = <8>; + bias-disable; + }; + data-pins { + pins = "gpio4", "gpio5", "gpio6", "gpio7"; + function = "qspi_data"; + drive-strength = <8>; + bias-disable; + }; + }; + blsp_uart0_pins: blsp_uart0_pins { + pins = + "gpio20", // RX + "gpio21"; // TX + function = "blsp0_uart0"; + drive-strength = <8>; + bias-disable; + }; +}; + +&tsens { + status = "disabled"; +}; + +&pcie_x2phy { + status = "disabled"; +}; + +&pcie_x2 { + status = "disabled"; + perst-gpios = <&tlmm 15 GPIO_ACTIVE_LOW>; +}; + +&q6v5_wcss { + status = "okay"; + memory-region = <&q6_mem_regions>; + firmware-name = "ath11k/IPQ5018/hw1.0/q6_fw.mdt", + "ath11k/IPQ5018/hw1.0/m3_fw.mdt", + "ath11k/qcn6122/hw1.0/m3_fw.mdt"; + + boot-args = + ; + + // IPQ5018 + q6_wcss_pd1: pd-1 { + firmware-name = "ath11k/IPQ5018/hw1.0/q6_fw.mdt"; + resets = + <&gcc GCC_WCSSAON_RESET>, + <&gcc GCC_WCSS_BCR>, + <&gcc GCC_CE_BCR>; + reset-names = + "wcss_aon_reset", + "wcss_reset", + "ce_reset"; + clocks = + <&gcc GCC_WCSS_AHB_S_CLK>, + <&gcc GCC_WCSS_ACMT_CLK>, + <&gcc GCC_WCSS_AXI_M_CLK>; + clock-names = + "gcc_wcss_ahb_s_clk", + "gcc_wcss_acmt_clk", + "gcc_wcss_axi_m_clk"; + + interrupts-extended = + <&wcss_smp2p_in 8 0>, + <&wcss_smp2p_in 9 0>, + <&wcss_smp2p_in 12 0>, + <&wcss_smp2p_in 11 0>; + interrupt-names = + "fatal", + "ready", + "spawn-ack", + "stop-ack"; + qcom,smem-states = + <&wcss_smp2p_out 8>, + <&wcss_smp2p_out 9>, + <&wcss_smp2p_out 10>; + qcom,smem-state-names = + "shutdown", + "stop", + "spawn"; + status = "okay"; + }; + + // QCN6102 5G + q6_wcss_pd3: pd-3 { + firmware-name = "ath11k/IPQ5018/hw1.0/q6_fw.mdt"; + interrupts-extended = + <&wcss_smp2p_in 24 0>, + <&wcss_smp2p_in 25 0>, + <&wcss_smp2p_in 28 0>, + <&wcss_smp2p_in 27 0>; + interrupt-names = + "fatal", + "ready", + "spawn-ack", + "stop-ack"; + qcom,smem-states = + <&wcss_smp2p_out 24>, + <&wcss_smp2p_out 25>, + <&wcss_smp2p_out 26>; + qcom,smem-state-names = + "shutdown", + "stop", + "spawn"; + + status = "okay"; + }; +}; +&wifi0 { + // IPQ5018 + qcom,rproc = <&q6_wcss_pd1>; + qcom,userpd-subsys-name = "q6v5_wcss_userpd1"; + qcom,ath11k-calibration-variant = "GL-iNet-GL-B3000"; + qcom,ath11k-fw-memory-mode = <2>; + qcom,bdf-addr = <0x4c400000>; + status = "okay"; +}; +&wifi1 { + qcom,rproc = <&q6_wcss_pd3>; + qcom,userpd-subsys-name = "q6v5_wcss_userpd3"; + qcom,ath11k-calibration-variant = "GL-iNet-GL-B3000"; + qcom,ath11k-fw-memory-mode = <2>; + qcom,bdf-addr = <0x4d100000>; + qcom,m3-dump-addr = <0x4df00000>; + status = "okay"; +}; \ No newline at end of file diff --git a/target/linux/qualcommax/image/ipq50xx.mk b/target/linux/qualcommax/image/ipq50xx.mk index 997a2ecf67..2af8e55c6d 100644 --- a/target/linux/qualcommax/image/ipq50xx.mk +++ b/target/linux/qualcommax/image/ipq50xx.mk @@ -1,3 +1,17 @@ +define Device/glinet_gl-b3000 + $(call Device/FitImage) + $(call Device/UbiFit) + SOC := ipq5000 + DEVICE_VENDOR := GL.iNET + DEVICE_MODEL := GL-B3000 + BLOCKSIZE := 128k + PAGESIZE := 2048 + DEVICE_DTS_CONFIG := config@mp03.5-c1 + UBINIZE_OPTS := -E 5 + DEVICE_PACKAGES := ath11k-firmware-qcn6122 ipq-wifi-gl-b3000 +endef +TARGET_DEVICES += glinet_gl-b3000 + define Device/linksys_mx2000 $(call Device/FitImageLzma) DEVICE_VENDOR := Linksys diff --git a/target/linux/qualcommax/ipq50xx/base-files/etc/board.d/02_network b/target/linux/qualcommax/ipq50xx/base-files/etc/board.d/02_network index bcf606c756..3fa76e36e2 100644 --- a/target/linux/qualcommax/ipq50xx/base-files/etc/board.d/02_network +++ b/target/linux/qualcommax/ipq50xx/base-files/etc/board.d/02_network @@ -7,6 +7,9 @@ ipq50xx_setup_interfaces() { local board="$1" case $board in + glinet,gl-b3000) + ucidef_set_interfaces_lan_wan "lan1 lan2" "wan" + ;; linksys,mx2000|\ linksys,mx5500) ucidef_set_interfaces_lan_wan "lan1 lan2 lan3" "wan" diff --git a/target/linux/qualcommax/ipq50xx/base-files/etc/hotplug.d/firmware/11-ath11k-caldata b/target/linux/qualcommax/ipq50xx/base-files/etc/hotplug.d/firmware/11-ath11k-caldata index ad1e0f1535..1369788e3a 100644 --- a/target/linux/qualcommax/ipq50xx/base-files/etc/hotplug.d/firmware/11-ath11k-caldata +++ b/target/linux/qualcommax/ipq50xx/base-files/etc/hotplug.d/firmware/11-ath11k-caldata @@ -17,6 +17,9 @@ case "$FIRMWARE" in ath11k_remove_regdomain ath11k_set_macflag ;; + glinet,gl-b3000) + caldata_extract "0:ART" 0x1000 0x20000 + ;; esac ;; "ath11k/qcn6122/hw1.0/cal-ahb-soc@0:wifi1@c000000.bin") @@ -28,6 +31,9 @@ case "$FIRMWARE" in ath11k_remove_regdomain ath11k_set_macflag ;; + glinet,gl-b3000) + caldata_extract "0:ART" 0x26800 0x20000 + ;; esac ;; "ath11k/QCN9074/hw1.0/cal-pci-0001:01:00.0.bin") @@ -39,6 +45,8 @@ case "$FIRMWARE" in ath11k_remove_regdomain ath11k_set_macflag ;; + glinet,gl-b3000) + caldata_extract "0:ART" 0x26800 0x20000 esac ;; *) diff --git a/target/linux/qualcommax/ipq50xx/base-files/lib/upgrade/platform.sh b/target/linux/qualcommax/ipq50xx/base-files/lib/upgrade/platform.sh index 5be51c77fd..1702201f15 100644 --- a/target/linux/qualcommax/ipq50xx/base-files/lib/upgrade/platform.sh +++ b/target/linux/qualcommax/ipq50xx/base-files/lib/upgrade/platform.sh @@ -10,6 +10,9 @@ platform_check_image() { platform_do_upgrade() { case "$(board_name)" in + glinet,gl-b3000) + nand_do_upgrade "$1" + ;; linksys,mx2000|\ linksys,mx5500) boot_part="$(fw_printenv -n boot_part)"