Qualcommax NSS Build

Just test it, I have no time. :slightly_smiling_face:

--- /home/vladdrako/openwrt/build_dir/target-aarch64_cortex-a73_musl/linux-qualcommax_ipq60xx/linux-6.6.30/arch/arm64/boot/dts/qcom/ipq6018-nss.dtsi
+++ /home/vladdrako/openwrt/build_dir/target-aarch64_cortex-a73_musl/linux-qualcommax_ipq60xx/linux-6.6.30/arch/arm64/boot/dts/qcom/ipq6018-nss-qosmio.dtsi
@@ -1,31 +1,26 @@
 // SPDX-License-Identifier: GPL-2.0-only
-
-/ {
-	nss_dummy_reg: nss-regulator {
-		compatible = "regulator-fixed";
-		regulator-name = "nss-reg";
-		regulator-min-microvolt = <848000>;
-		regulator-max-microvolt = <848000>;
-		regulator-always-on;
-		regulator-boot-on;
-	};
-};
 
 &soc {
 		nss-common {
 			compatible = "qcom,nss-common";
-			reg = <0x0 0x01868010 0x0 0x1000>, <0x0 0x40000000 0x0 0x1000>;
+			reg = <0x01868010 0x1000>, <0x40000000 0x1000>;
 			reg-names = "nss-misc-reset", "nss-misc-reset-flag";
 			memory-region = <&nss_region>;
 		};
 
 		nss0: nss@40000000 {
 			compatible = "qcom,nss";
-			interrupts = <0 402 0x1>, <0 401 0x1>, <0 400 0x1>,
-					<0 399 0x1>, <0 398 0x1>, <0 397 0x1>,
-					<0 396 0x1>, <0 395 0x1>, <0 394 0x1>,
-					<0 393 0x1>;
-			reg = <0x0 0x39000000 0x0 0x1000>, <0x0 0x0b111000 0x0 0x1000>;
+			interrupts = <GIC_SPI 402 IRQ_TYPE_EDGE_RISING>,
+			     	 <GIC_SPI 401 IRQ_TYPE_EDGE_RISING>,
+			     	 <GIC_SPI 400 IRQ_TYPE_EDGE_RISING>,
+			     	 <GIC_SPI 399 IRQ_TYPE_EDGE_RISING>,
+			     	 <GIC_SPI 398 IRQ_TYPE_EDGE_RISING>,
+			     	 <GIC_SPI 397 IRQ_TYPE_EDGE_RISING>,
+			     	 <GIC_SPI 396 IRQ_TYPE_EDGE_RISING>,
+			     	 <GIC_SPI 395 IRQ_TYPE_EDGE_RISING>,
+			     	 <GIC_SPI 394 IRQ_TYPE_EDGE_RISING>,
+			     	 <GIC_SPI 393 IRQ_TYPE_EDGE_RISING>;
+			reg = <0x39000000 0x1000>, <0x0b111000 0x1000>;
 			reg-names = "nphys", "qgic-phys";
 			clocks = <&gcc GCC_NSS_NOC_CLK>,
 				 <&gcc GCC_NSS_PTP_REF_CLK>,
@@ -97,8 +92,6 @@
 			qcom,vxlan-enabled;
 			qcom,match-enabled;
 			qcom,mirror-enabled;
-			mx-supply = <&nss_dummy_reg>;
-			npu-supply = <&nss_dummy_reg>;
 		};
 
 		nss_crypto: qcom,nss_crypto {
@@ -119,7 +112,7 @@
 				clock-names = "crypto_clk",
 										"crypto_nocclk",
 										"crypto_ppeclk";
-				clock-frequency = /bits/ 64 <300000000 300000000 300000000>;
+				clock-frequency = /bits/ 64 <600000000 600000000 300000000>;
 				qcom,dma-mask = <0xff>;
 				qcom,transform-enabled;
 				qcom,aes128-cbc;

I compared it with mine. It has huge differences. NSS core will not be up without a regulator, won't it?

@qosmio Hello, qosmio! I have tested your DTS file, AXT1800 can boot but NSS module doesn't startup corrrectly. I can see some related log:

Wed Jun  5 12:18:20 2024 kern.info kernel: [    8.195169] l2tp_core: L2TP core driver, V2.0
Wed Jun  5 12:18:20 2024 kern.info kernel: [    8.196091] l2tp_netlink: L2TP netlink interface
Wed Jun  5 12:18:20 2024 kern.err kernel: [    8.208809] ffffff80022c3400: of_address_to_resource() return error for nss_misc_reset
Wed Jun  5 12:18:20 2024 kern.alert kernel: [    8.208852] NSS HAL common init failed
Wed Jun  5 12:18:20 2024 kern.warn kernel: [    8.215635] qca-nss: probe of soc@0:nss@40000000 failed with error -14
Wed Jun  5 12:18:20 2024 kern.info kernel: [    8.222813] gre: GRE over IPv4 demultiplexor driver
Wed Jun  5 12:18:20 2024 kern.info kernel: [    8.227125] ip_gre: GRE over IPv4 tunneling driver
Wed Jun  5 12:18:20 2024 kern.warn kernel: [    8.234739] QCA multicast snooping installed successfully
Wed Jun  5 12:18:20 2024 kern.notice kernel: [    8.237688] nss_vlan_mgr_init_module[1940]:Module (Build Build Id: 06/05/24, 12:12:15) loaded
Wed Jun  5 12:18:20 2024 kern.info kernel: [    8.245715] PPP generic driver version 2.4.2
Wed Jun  5 12:18:20 2024 kern.info kernel: [    8.250465] NET: Registered PF_PPPOX protocol family
Wed Jun  5 12:18:20 2024 kern.info kernel: [    8.259638] nss-macsec0 DT exist!
Wed Jun  5 12:18:20 2024 kern.debug kernel: [    8.259860] cannot find nss-macsec1 node
Wed Jun  5 12:18:20 2024 kern.debug kernel: [    8.259928] cannot find nss-macsec2 node
Wed Jun  5 12:18:20 2024 kern.debug kernel: [    8.259982] cannot find nss-macsec3 node
Wed Jun  5 12:18:20 2024 kern.warn kernel: [    8.259986] nss_macsec init success
Wed Jun  5 12:18:20 2024 kern.info kernel: [    8.412113] ath11k c000000.wifi: ipq6018 hw1.0
Wed Jun  5 12:18:20 2024 kern.info kernel: [    8.412156] ath11k c000000.wifi: FW memory mode: 1
Wed Jun  5 12:18:20 2024 kern.info kernel: [    8.415948] remoteproc remoteproc0: powering up cd00000.remoteproc
Wed Jun  5 12:18:20 2024 kern.info kernel: [    8.442537] remoteproc remoteproc0: Booting fw image IPQ6018/q6_fw.mdt, size 7340
Wed Jun  5 12:18:20 2024 kern.info kernel: [    9.551452] remoteproc remoteproc0: remote processor cd00000.remoteproc is now up
Wed Jun  5 12:18:20 2024 kern.warn kernel: [    9.553519] ath11k c000000.wifi: qmi ignore invalid mem req type 3
Wed Jun  5 12:18:20 2024 kern.info kernel: [    9.558479] ath11k c000000.wifi: chip_id 0x0 chip_family 0x4 board_id 0xff soc_id 0xffffffff
Wed Jun  5 12:18:20 2024 kern.info kernel: [    9.564018] ath11k c000000.wifi: fw_version 0x25008f8e fw_build_timestamp 2024-03-01 03:54 fw_build_id WLAN.HK.2.5.0.1-03982-QCAHKSWPL_SILICONZ-3
Wed Jun  5 12:18:20 2024 user.info kernel: [    9.564444] kmodloader: done loading kernel modules from /etc/modules.d/*
Wed Jun  5 12:18:20 2024 kern.info kernel: [    9.851364] ath11k c000000.wifi: nss init soc nss if_num 203 userpd_id 0
Wed Jun  5 12:18:20 2024 kern.warn kernel: [    9.851418] ath11k c000000.wifi: nss state in default init state
Wed Jun  5 12:18:20 2024 kern.warn kernel: [    9.857284] ath11k c000000.wifi: NSS SOC Initialization Failed :-22
Wed Jun  5 12:18:20 2024 kern.err kernel: [    9.863157] ath11k c000000.wifi: failed to setup nss driver interface-22
Wed Jun  5 12:18:20 2024 kern.err kernel: [    9.872344] ath11k c000000.wifi: failed to create pdev core: -22

Here is my DTS related file, @qosmio @Vladdrako
ipq6018.dtsi:

// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
/*
 * IPQ6018 SoC device tree source
 *
 * Copyright (c) 2019, The Linux Foundation. All rights reserved.
 */

#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/clock/qcom,gcc-ipq6018.h>
#include <dt-bindings/reset/qcom,gcc-ipq6018.h>
#include <dt-bindings/clock/qcom,apss-ipq.h>
#include <dt-bindings/thermal/thermal.h>

/ {
	#address-cells = <2>;
	#size-cells = <2>;
	interrupt-parent = <&intc>;

	clocks {
		sleep_clk: sleep-clk {
			compatible = "fixed-clock";
			clock-frequency = <32000>;
			#clock-cells = <0>;
		};

		xo: xo {
			compatible = "fixed-clock";
			clock-frequency = <24000000>;
			#clock-cells = <0>;
		};
	};

	cpus: cpus {
		#address-cells = <1>;
		#size-cells = <0>;

		CPU0: cpu@0 {
			device_type = "cpu";
			compatible = "arm,cortex-a53";
			reg = <0x0>;
			enable-method = "psci";
			next-level-cache = <&L2_0>;
			clocks = <&apcs_glb APCS_ALIAS0_CORE_CLK>;
			clock-names = "cpu";
			operating-points-v2 = <&cpu_opp_table>;
			cpu-supply = <&ipq6018_s2>;
			#cooling-cells = <2>;
		};

		CPU1: cpu@1 {
			device_type = "cpu";
			compatible = "arm,cortex-a53";
			enable-method = "psci";
			reg = <0x1>;
			next-level-cache = <&L2_0>;
			clocks = <&apcs_glb APCS_ALIAS0_CORE_CLK>;
			clock-names = "cpu";
			operating-points-v2 = <&cpu_opp_table>;
			cpu-supply = <&ipq6018_s2>;
			#cooling-cells = <2>;
		};

		CPU2: cpu@2 {
			device_type = "cpu";
			compatible = "arm,cortex-a53";
			enable-method = "psci";
			reg = <0x2>;
			next-level-cache = <&L2_0>;
			clocks = <&apcs_glb APCS_ALIAS0_CORE_CLK>;
			clock-names = "cpu";
			operating-points-v2 = <&cpu_opp_table>;
			cpu-supply = <&ipq6018_s2>;
			#cooling-cells = <2>;
		};

		CPU3: cpu@3 {
			device_type = "cpu";
			compatible = "arm,cortex-a53";
			enable-method = "psci";
			reg = <0x3>;
			next-level-cache = <&L2_0>;
			clocks = <&apcs_glb APCS_ALIAS0_CORE_CLK>;
			clock-names = "cpu";
			operating-points-v2 = <&cpu_opp_table>;
			cpu-supply = <&ipq6018_s2>;
			#cooling-cells = <2>;
		};

		L2_0: l2-cache {
			compatible = "cache";
			cache-level = <2>;
			cache-unified;
		};
	};

	firmware {
		scm {
			compatible = "qcom,scm-ipq6018", "qcom,scm";
			qcom,dload-mode = <&tcsr 0x6100>;
		};
	};

	cpu_opp_table: opp-table-cpu {
		compatible = "operating-points-v2-kryo-cpu";
		nvmem-cells = <&cpu_speed_bin>;
		opp-shared;

		opp-864000000 {
			opp-hz = /bits/ 64 <864000000>;
			opp-microvolt = <1>;
			opp-supported-hw = <0xf>;
			clock-latency-ns = <200000>;
		};

		opp-1056000000 {
			opp-hz = /bits/ 64 <1056000000>;
			opp-microvolt = <2>;
			opp-supported-hw = <0xf>;
			clock-latency-ns = <200000>;
		};

		opp-1320000000 {
			opp-hz = /bits/ 64 <1320000000>;
			opp-microvolt = <3>;
			opp-supported-hw = <0x3>;
			clock-latency-ns = <200000>;
		};

		opp-1440000000 {
			opp-hz = /bits/ 64 <1440000000>;
			opp-microvolt = <4>;
			opp-supported-hw = <0x3>;
			clock-latency-ns = <200000>;
		};

		opp-1608000000 {
			opp-hz = /bits/ 64 <1608000000>;
			opp-microvolt = <5>;
			opp-supported-hw = <0x1>;
			clock-latency-ns = <200000>;
		};

		opp-1800000000 {
			opp-hz = /bits/ 64 <1800000000>;
			opp-microvolt = <6>;
			opp-supported-hw = <0x1>;
			clock-latency-ns = <200000>;
		};
	};

	pmuv8: pmu {
		compatible = "arm,cortex-a53-pmu";
		interrupts = <GIC_PPI 7 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
	};

	psci: psci {
		compatible = "arm,psci-1.0";
		method = "smc";
	};

	rpm: remoteproc {
		compatible = "qcom,ipq6018-rpm-proc", "qcom,rpm-proc";

		glink-edge {
			compatible = "qcom,glink-rpm";
			interrupts = <GIC_SPI 168 IRQ_TYPE_EDGE_RISING>;
			qcom,rpm-msg-ram = <&rpm_msg_ram>;
			mboxes = <&apcs_glb 0>;

			rpm_requests: rpm-requests {
				compatible = "qcom,rpm-ipq6018";
				qcom,glink-channels = "rpm_requests";

				regulators {
					compatible = "qcom,rpm-mp5496-regulators";

					ipq6018_s2: s2 {
						regulator-min-microvolt = <725000>;
						regulator-max-microvolt = <1062500>;
						regulator-always-on;
					};

					ipq6018_l2: l2 {
						regulator-min-microvolt = <1800000>;
						regulator-max-microvolt = <3300000>;
					};
				};
			};
		};
	};

	reserved-memory {
		#address-cells = <2>;
		#size-cells = <2>;
		ranges;

		rpm_msg_ram: memory@60000 {
			reg = <0x0 0x00060000 0x0 0x6000>;
			no-map;
		};

		nss_region: nss@40000000 {
			reg = <0x0 0x40000000 0x0 0x01000000>;
			no-map;
		};

		bootloader@4a100000 {
			reg = <0x0 0x4a100000 0x0 0x400000>;
			no-map;
		};

		sbl@4a500000 {
			reg = <0x0 0x4a500000 0x0 0x100000>;
			no-map;
		};

		smem_region: memory@4aa00000 {
			compatible = "qcom,smem";
			reg = <0x0 0x4aa00000 0x0 0x00100000>;
			no-map;

			hwlocks = <&tcsr_mutex 3>;
		};

		tz: tzapp@4a400000 {
			reg = <0x0 0x4a400000 0x0 0x400000>;
			no-map;
		};

		q6_region: wcnss@4ab00000 {
			reg = <0x0 0x4ab00000 0x0 0x5500000>;
			no-map;
		};

		q6_etr_region: q6_etr_dump@50000000 {
			reg = <0x0 0x50000000 0x0 0x00100000>;
			no-map;
		};

		m3_dump_region: m3_dump@50100000 {
			reg = <0x0 0x50100000 0x0 0x00100000>;
			no-map;
		};
	};

	smem {
		compatible = "qcom,smem";
		memory-region = <&smem_region>;
		hwlocks = <&tcsr_mutex 3>;
	};

	soc: soc@0 {
		#address-cells = <2>;
		#size-cells = <2>;
		ranges = <0 0 0 0 0x0 0xffffffff>;
		dma-ranges;
		compatible = "simple-bus";

		qusb_phy_1: qusb@59000 {
			compatible = "qcom,ipq6018-qusb2-phy";
			reg = <0x0 0x00059000 0x0 0x180>;
			#phy-cells = <0>;

			clocks = <&gcc GCC_USB1_PHY_CFG_AHB_CLK>,
				 <&xo>;
			clock-names = "cfg_ahb", "ref";

			resets = <&gcc GCC_QUSB2_1_PHY_BCR>;
			status = "disabled";
		};

		ssphy_0: ssphy@78000 {
			compatible = "qcom,ipq6018-qmp-usb3-phy";
			reg = <0x0 0x00078000 0x0 0x1c4>;
			#address-cells = <2>;
			#size-cells = <2>;
			ranges;

			clocks = <&gcc GCC_USB0_AUX_CLK>,
				 <&gcc GCC_USB0_PHY_CFG_AHB_CLK>, <&xo>;
			clock-names = "aux", "cfg_ahb", "ref";

			resets = <&gcc GCC_USB0_PHY_BCR>,
				 <&gcc GCC_USB3PHY_0_PHY_BCR>;
			reset-names = "phy","common";
			status = "disabled";

			usb0_ssphy: phy@78200 {
				reg = <0x0 0x00078200 0x0 0x130>, /* Tx */
				      <0x0 0x00078400 0x0 0x200>, /* Rx */
				      <0x0 0x00078800 0x0 0x1f8>, /* PCS */
				      <0x0 0x00078600 0x0 0x044>; /* PCS misc */
				#phy-cells = <0>;
				#clock-cells = <0>;
				clocks = <&gcc GCC_USB0_PIPE_CLK>;
				clock-names = "pipe0";
				clock-output-names = "gcc_usb0_pipe_clk_src";
			};
		};

		qusb_phy_0: qusb@79000 {
			compatible = "qcom,ipq6018-qusb2-phy";
			reg = <0x0 0x00079000 0x0 0x180>;
			#phy-cells = <0>;

			clocks = <&gcc GCC_USB0_PHY_CFG_AHB_CLK>,
				<&xo>;
			clock-names = "cfg_ahb", "ref";

			resets = <&gcc GCC_QUSB2_0_PHY_BCR>;
			status = "disabled";
		};

		pcie_phy: phy@84000 {
			compatible = "qcom,ipq6018-qmp-pcie-phy";
			reg = <0x0 0x00084000 0x0 0x1bc>; /* Serdes PLL */
			status = "disabled";
			#address-cells = <2>;
			#size-cells = <2>;
			ranges;

			clocks = <&gcc GCC_PCIE0_AUX_CLK>,
				<&gcc GCC_PCIE0_AHB_CLK>;
			clock-names = "aux", "cfg_ahb";

			resets = <&gcc GCC_PCIE0_PHY_BCR>,
				<&gcc GCC_PCIE0PHY_PHY_BCR>;
			reset-names = "phy",
				      "common";

			pcie_phy0: phy@84200 {
				reg = <0x0 0x00084200 0x0 0x16c>, /* Serdes Tx */
				      <0x0 0x00084400 0x0 0x200>, /* Serdes Rx */
				      <0x0 0x00084800 0x0 0x1f0>, /* PCS: Lane0, COM, PCIE */
				      <0x0 0x00084c00 0x0 0xf4>; /* pcs_misc */
				#phy-cells = <0>;

				clocks = <&gcc GCC_PCIE0_PIPE_CLK>;
				clock-names = "pipe0";
				clock-output-names = "gcc_pcie0_pipe_clk_src";
				#clock-cells = <0>;
			};
		};

		mdio: mdio@90000 {
			#address-cells = <1>;
			#size-cells = <0>;
			compatible = "qcom,ipq6018-mdio", "qcom,ipq4019-mdio";
			reg = <0x0 0x00090000 0x0 0x64>;
			clocks = <&gcc GCC_MDIO_AHB_CLK>;
			clock-names = "gcc_mdio_ahb_clk";
			status = "disabled";
		};

		qfprom: efuse@a4000 {
			compatible = "qcom,ipq6018-qfprom", "qcom,qfprom";
			reg = <0x0 0x000a4000 0x0 0x2000>;
			#address-cells = <1>;
			#size-cells = <1>;

			cpu_speed_bin: cpu-speed-bin@135 {
				reg = <0x135 0x1>;
				bits = <7 1>;
			};
		};

		prng: qrng@e3000 {
			compatible = "qcom,prng-ee";
			reg = <0x0 0x000e3000 0x0 0x1000>;
			clocks = <&gcc GCC_PRNG_AHB_CLK>;
			clock-names = "core";
		};

		tsens: thermal-sensor@4a9000 {
			compatible = "qcom,ipq6018-tsens", "qcom,ipq8074-tsens";
			reg = <0x0 0x004a9000 0x0 0x1000>,
			      <0x0 0x004a8000 0x0 0x1000>;
			interrupts = <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH>;
			interrupt-names = "combined";
			#qcom,sensors = <16>;
			#thermal-sensor-cells = <1>;
		};

		cryptobam: dma-controller@704000 {
			compatible = "qcom,bam-v1.7.0";
			reg = <0x0 0x00704000 0x0 0x20000>;
			interrupts = <GIC_SPI 207 IRQ_TYPE_LEVEL_HIGH>;
			clocks = <&gcc GCC_CRYPTO_AHB_CLK>;
			clock-names = "bam_clk";
			#dma-cells = <1>;
			qcom,ee = <1>;
			qcom,controlled-remotely;
		};

		crypto: crypto@73a000 {
			compatible = "qcom,crypto-v5.1";
			reg = <0x0 0x0073a000 0x0 0x6000>;
			clocks = <&gcc GCC_CRYPTO_AHB_CLK>,
				 <&gcc GCC_CRYPTO_AXI_CLK>,
				 <&gcc GCC_CRYPTO_CLK>;
			clock-names = "iface", "bus", "core";
			dmas = <&cryptobam 2>, <&cryptobam 3>;
			dma-names = "rx", "tx";
		};

		tlmm: pinctrl@1000000 {
			compatible = "qcom,ipq6018-pinctrl";
			reg = <0x0 0x01000000 0x0 0x300000>;
			interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>;
			gpio-controller;
			#gpio-cells = <2>;
			gpio-ranges = <&tlmm 0 0 80>;
			interrupt-controller;
			#interrupt-cells = <2>;

			serial_3_pins: serial3-state {
				pins = "gpio44", "gpio45";
				function = "blsp2_uart";
				drive-strength = <8>;
				bias-pull-down;
			};

			qpic_pins: qpic-state {
				pins = "gpio1", "gpio3", "gpio4",
					"gpio5", "gpio6", "gpio7",
					"gpio8", "gpio10", "gpio11",
					"gpio12", "gpio13", "gpio14",
					"gpio15", "gpio17";
				function = "qpic_pad";
				drive-strength = <8>;
				bias-disable;
			};
		};

		gcc: gcc@1800000 {
			compatible = "qcom,gcc-ipq6018";
			reg = <0x0 0x01800000 0x0 0x80000>;
			clocks = <&xo>, <&sleep_clk>;
			clock-names = "xo", "sleep_clk";
			#clock-cells = <1>;
			#reset-cells = <1>;
		};

		tcsr_mutex: hwlock@1905000 {
			compatible = "qcom,ipq6018-tcsr-mutex", "qcom,tcsr-mutex";
			reg = <0x0 0x01905000 0x0 0x20000>;
			#hwlock-cells = <1>;
		};

		tcsr: syscon@1937000 {
			compatible = "qcom,tcsr-ipq6018", "syscon";
			reg = <0x0 0x01937000 0x0 0x21000>;
		};

		usb2: usb@70f8800 {
			compatible = "qcom,ipq6018-dwc3", "qcom,dwc3";
			reg = <0x0 0x070f8800 0x0 0x400>;
			#address-cells = <2>;
			#size-cells = <2>;
			ranges;
			clocks = <&gcc GCC_USB1_MASTER_CLK>,
				 <&gcc GCC_USB1_SLEEP_CLK>,
				 <&gcc GCC_USB1_MOCK_UTMI_CLK>;
			clock-names = "core",
				      "sleep",
				      "mock_utmi";

			assigned-clocks = <&gcc GCC_USB1_MASTER_CLK>,
					  <&gcc GCC_USB1_MOCK_UTMI_CLK>;
			assigned-clock-rates = <133330000>,
					       <24000000>;

			interrupts = <GIC_SPI 128 IRQ_TYPE_LEVEL_HIGH>,
				     <GIC_SPI 130 IRQ_TYPE_LEVEL_HIGH>;
			interrupt-names = "pwr_event",
					  "qusb2_phy";

			resets = <&gcc GCC_USB1_BCR>;
			status = "disabled";

			dwc_1: usb@7000000 {
				compatible = "snps,dwc3";
				reg = <0x0 0x07000000 0x0 0xcd00>;
				interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>;
				phys = <&qusb_phy_1>;
				phy-names = "usb2-phy";
				tx-fifo-resize;
				snps,is-utmi-l1-suspend;
				snps,hird-threshold = /bits/ 8 <0x0>;
				snps,dis_u2_susphy_quirk;
				snps,dis_u3_susphy_quirk;
				dr_mode = "host";
			};
		};

		sdhc_1: mmc@7804000 {
			compatible = "qcom,ipq6018-sdhci", "qcom,sdhci-msm-v5";
			reg = <0x0 0x07804000 0x0 0x1000>,
			      <0x0 0x07805000 0x0 0x1000>,
			      <0x0 0x07808000 0x0 0x2000>;
			reg-names = "hc", "cqhci", "ice";

			interrupts = <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>,
				     <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>;
			interrupt-names = "hc_irq", "pwr_irq";

			clocks = <&gcc GCC_SDCC1_AHB_CLK>,
				 <&gcc GCC_SDCC1_APPS_CLK>,
				 <&xo>,
				 <&gcc GCC_SDCC1_ICE_CORE_CLK>;
			clock-names = "iface", "core", "xo", "ice";

			resets = <&gcc GCC_SDCC1_BCR>;
			supports-cqe;
			bus-width = <8>;
			status = "disabled";
		};

		blsp_dma: dma-controller@7884000 {
			compatible = "qcom,bam-v1.7.0";
			reg = <0x0 0x07884000 0x0 0x2b000>;
			interrupts = <GIC_SPI 238 IRQ_TYPE_LEVEL_HIGH>;
			clocks = <&gcc GCC_BLSP1_AHB_CLK>;
			clock-names = "bam_clk";
			#dma-cells = <1>;
			qcom,ee = <0>;
		};

		blsp1_uart1: serial@78af000 {
			compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
			reg = <0x0 0x78af000 0x0 0x200>;
			interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>;
			clocks = <&gcc GCC_BLSP1_UART1_APPS_CLK>,
				 <&gcc GCC_BLSP1_AHB_CLK>;
			clock-names = "core", "iface";
			status = "disabled";
		};

		blsp1_uart2: serial@78b0000 {
			compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
			reg = <0x0 0x78b0000 0x0 0x200>;
			interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
			clocks = <&gcc GCC_BLSP1_UART2_APPS_CLK>,
				 <&gcc GCC_BLSP1_AHB_CLK>;
			clock-names = "core", "iface";
			status = "disabled";
		};

		blsp1_uart3: serial@78b1000 {
			compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
			reg = <0x0 0x078b1000 0x0 0x200>;
			interrupts = <GIC_SPI 306 IRQ_TYPE_LEVEL_HIGH>;
			clocks = <&gcc GCC_BLSP1_UART3_APPS_CLK>,
				 <&gcc GCC_BLSP1_AHB_CLK>;
			clock-names = "core", "iface";
			status = "disabled";
		};

		blsp1_uart4: serial@78b2000 {
			compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
			reg = <0x0 0x078b2000 0x0 0x200>;
			interrupts = <GIC_SPI 307 IRQ_TYPE_LEVEL_HIGH>;
			clocks = <&gcc GCC_BLSP1_UART4_APPS_CLK>,
				 <&gcc GCC_BLSP1_AHB_CLK>;
			clock-names = "core", "iface";
			status = "disabled";
		};

		blsp1_uart5: serial@78b3000 {
			compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
			reg = <0x0 0x78b3000 0x0 0x200>;
			interrupts = <GIC_SPI 308 IRQ_TYPE_LEVEL_HIGH>;
			clocks = <&gcc GCC_BLSP1_UART5_APPS_CLK>,
				 <&gcc GCC_BLSP1_AHB_CLK>;
			clock-names = "core", "iface";
			status = "disabled";
		};

		blsp1_uart6: serial@78b4000 {
			compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
			reg = <0x0 0x078b4000 0x0 0x200>;
			interrupts = <GIC_SPI 309 IRQ_TYPE_LEVEL_HIGH>;
			clocks = <&gcc GCC_BLSP1_UART6_APPS_CLK>,
				 <&gcc GCC_BLSP1_AHB_CLK>;
			clock-names = "core", "iface";
			status = "disabled";
		};

		blsp1_spi1: spi@78b5000 {
			compatible = "qcom,spi-qup-v2.2.1";
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <0x0 0x078b5000 0x0 0x600>;
			interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
			clocks = <&gcc GCC_BLSP1_QUP1_SPI_APPS_CLK>,
				 <&gcc GCC_BLSP1_AHB_CLK>;
			clock-names = "core", "iface";
			dmas = <&blsp_dma 12>, <&blsp_dma 13>;
			dma-names = "tx", "rx";
			status = "disabled";
		};

		blsp1_spi2: spi@78b6000 {
			compatible = "qcom,spi-qup-v2.2.1";
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <0x0 0x078b6000 0x0 0x600>;
			interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
			clocks = <&gcc GCC_BLSP1_QUP2_SPI_APPS_CLK>,
				 <&gcc GCC_BLSP1_AHB_CLK>;
			clock-names = "core", "iface";
			dmas = <&blsp_dma 14>, <&blsp_dma 15>;
			dma-names = "tx", "rx";
			status = "disabled";
		};

		blsp1_i2c2: i2c@78b6000 {
			compatible = "qcom,i2c-qup-v2.2.1";
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <0x0 0x078b6000 0x0 0x600>;
			interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
			clocks = <&gcc GCC_BLSP1_QUP2_I2C_APPS_CLK>,
				 <&gcc GCC_BLSP1_AHB_CLK>;
			clock-names = "core", "iface";
			clock-frequency = <400000>;
			dmas = <&blsp_dma 14>, <&blsp_dma 15>;
			dma-names = "tx", "rx";
			status = "disabled";
		};

		blsp1_i2c3: i2c@78b7000 {
			compatible = "qcom,i2c-qup-v2.2.1";
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <0x0 0x078b7000 0x0 0x600>;
			interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
			clocks = <&gcc GCC_BLSP1_QUP3_I2C_APPS_CLK>,
				 <&gcc GCC_BLSP1_AHB_CLK>;
			clock-names = "core", "iface";
			clock-frequency = <400000>;
			dmas = <&blsp_dma 16>, <&blsp_dma 17>;
			dma-names = "tx", "rx";
			status = "disabled";
		};

		qpic_bam: dma-controller@7984000 {
			compatible = "qcom,bam-v1.7.0";
			reg = <0x0 0x07984000 0x0 0x1a000>;
			interrupts = <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>;
			clocks = <&gcc GCC_QPIC_AHB_CLK>;
			clock-names = "bam_clk";
			#dma-cells = <1>;
			qcom,ee = <0>;
			status = "disabled";
		};

		qpic_nand: nand-controller@79b0000 {
			compatible = "qcom,ipq6018-nand";
			reg = <0x0 0x079b0000 0x0 0x10000>;
			#address-cells = <1>;
			#size-cells = <0>;
			clocks = <&gcc GCC_QPIC_CLK>,
				 <&gcc GCC_QPIC_AHB_CLK>;
			clock-names = "core", "aon";

			dmas = <&qpic_bam 0>,
			       <&qpic_bam 1>,
			       <&qpic_bam 2>;
			dma-names = "tx", "rx", "cmd";
			pinctrl-0 = <&qpic_pins>;
			pinctrl-names = "default";
			status = "disabled";
		};

		usb3: usb@8af8800 {
			compatible = "qcom,ipq6018-dwc3", "qcom,dwc3";
			reg = <0x0 0x08af8800 0x0 0x400>;
			#address-cells = <2>;
			#size-cells = <2>;
			ranges;

			clocks = <&gcc GCC_SYS_NOC_USB0_AXI_CLK>,
				<&gcc GCC_USB0_MASTER_CLK>,
				<&gcc GCC_USB0_SLEEP_CLK>,
				<&gcc GCC_USB0_MOCK_UTMI_CLK>;
			clock-names = "cfg_noc",
				"core",
				"sleep",
				"mock_utmi";

			assigned-clocks = <&gcc GCC_SYS_NOC_USB0_AXI_CLK>,
					  <&gcc GCC_USB0_MASTER_CLK>,
					  <&gcc GCC_USB0_MOCK_UTMI_CLK>;
			assigned-clock-rates = <133330000>,
					       <133330000>,
					       <24000000>;

			interrupts = <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>,
				     <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>,
				     <GIC_SPI 220 IRQ_TYPE_LEVEL_HIGH>;
			interrupt-names = "pwr_event",
					  "qusb2_phy",
					  "ss_phy_irq";

			resets = <&gcc GCC_USB0_BCR>;
			status = "disabled";

			dwc_0: usb@8a00000 {
				compatible = "snps,dwc3";
				reg = <0x0 0x08a00000 0x0 0xcd00>;
				interrupts = <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>;
				phys = <&qusb_phy_0>, <&usb0_ssphy>;
				phy-names = "usb2-phy", "usb3-phy";
				clocks = <&xo>;
				clock-names = "ref";
				tx-fifo-resize;
				snps,is-utmi-l1-suspend;
				snps,hird-threshold = /bits/ 8 <0x0>;
				snps,dis_u2_susphy_quirk;
				snps,dis_u3_susphy_quirk;
				dr_mode = "host";
			};
		};

		intc: interrupt-controller@b000000 {
			compatible = "qcom,msm-qgic2";
			#address-cells = <2>;
			#size-cells = <2>;
			interrupt-controller;
			#interrupt-cells = <3>;
			reg = <0x0 0x0b000000 0x0 0x1000>,  /*GICD*/
			      <0x0 0x0b002000 0x0 0x1000>,  /*GICC*/
			      <0x0 0x0b001000 0x0 0x1000>,  /*GICH*/
			      <0x0 0x0b004000 0x0 0x1000>;  /*GICV*/
			interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
			ranges = <0 0 0 0xb00a000 0 0xffd>;

			v2m@0 {
				compatible = "arm,gic-v2m-frame";
				msi-controller;
				reg = <0x0 0x0 0x0 0xffd>;
			};
		};

		watchdog@b017000 {
			compatible = "qcom,kpss-wdt";
			interrupts = <GIC_SPI 3 IRQ_TYPE_EDGE_RISING>;
			reg = <0x0 0x0b017000 0x0 0x40>;
			clocks = <&sleep_clk>;
			timeout-sec = <10>;
		};

		apcs_glb: mailbox@b111000 {
			compatible = "qcom,ipq6018-apcs-apps-global";
			reg = <0x0 0x0b111000 0x0 0x1000>;
			#clock-cells = <1>;
			clocks = <&a53pll>, <&xo>, <&gcc GPLL0>;
			clock-names = "pll", "xo", "gpll0";
			#mbox-cells = <1>;
		};

		a53pll: clock@b116000 {
			compatible = "qcom,ipq6018-a53pll";
			reg = <0x0 0x0b116000 0x0 0x40>;
			#clock-cells = <0>;
			clocks = <&xo>;
			clock-names = "xo";
		};

		timer@b120000 {
			#address-cells = <1>;
			#size-cells = <1>;
			ranges = <0 0 0 0x10000000>;
			compatible = "arm,armv7-timer-mem";
			reg = <0x0 0x0b120000 0x0 0x1000>;

			frame@b120000 {
				frame-number = <0>;
				interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>,
					     <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
				reg = <0x0b121000 0x1000>,
				      <0x0b122000 0x1000>;
			};

			frame@b123000 {
				frame-number = <1>;
				interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
				reg = <0x0b123000 0x1000>;
				status = "disabled";
			};

			frame@b124000 {
				frame-number = <2>;
				interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
				reg = <0x0b124000 0x1000>;
				status = "disabled";
			};

			frame@b125000 {
				frame-number = <3>;
				interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
				reg = <0x0b125000 0x1000>;
				status = "disabled";
			};

			frame@b126000 {
				frame-number = <4>;
				interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
				reg = <0x0b126000 0x1000>;
				status = "disabled";
			};

			frame@b127000 {
				frame-number = <5>;
				interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
				reg = <0x0b127000 0x1000>;
				status = "disabled";
			};

			frame@b128000 {
				frame-number = <6>;
				interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
				reg = <0x0b128000 0x1000>;
				status = "disabled";
			};
		};

		wifi: wifi@c000000 {
			compatible = "qcom,ipq6018-wifi";
			reg = <0x0 0xc000000 0x0 0x1000000>;
			qcom,rproc = <&q6v5_wcss>;
			interrupts = <GIC_SPI 320 IRQ_TYPE_EDGE_RISING>,
				     <GIC_SPI 319 IRQ_TYPE_EDGE_RISING>,
				     <GIC_SPI 318 IRQ_TYPE_EDGE_RISING>,
				     <GIC_SPI 317 IRQ_TYPE_EDGE_RISING>,
				     <GIC_SPI 316 IRQ_TYPE_EDGE_RISING>,
				     <GIC_SPI 315 IRQ_TYPE_EDGE_RISING>,
				     <GIC_SPI 314 IRQ_TYPE_EDGE_RISING>,
				     <GIC_SPI 311 IRQ_TYPE_EDGE_RISING>,
				     <GIC_SPI 310 IRQ_TYPE_EDGE_RISING>,
				     <GIC_SPI 411 IRQ_TYPE_EDGE_RISING>,
				     <GIC_SPI 410 IRQ_TYPE_EDGE_RISING>,
				     <GIC_SPI 40 IRQ_TYPE_EDGE_RISING>,
				     <GIC_SPI 39 IRQ_TYPE_EDGE_RISING>,
				     <GIC_SPI 302 IRQ_TYPE_EDGE_RISING>,
				     <GIC_SPI 301 IRQ_TYPE_EDGE_RISING>,
				     <GIC_SPI 37 IRQ_TYPE_EDGE_RISING>,
				     <GIC_SPI 36 IRQ_TYPE_EDGE_RISING>,
				     <GIC_SPI 296 IRQ_TYPE_EDGE_RISING>,
				     <GIC_SPI 295 IRQ_TYPE_EDGE_RISING>,
				     <GIC_SPI 294 IRQ_TYPE_EDGE_RISING>,
				     <GIC_SPI 293 IRQ_TYPE_EDGE_RISING>,
				     <GIC_SPI 292 IRQ_TYPE_EDGE_RISING>,
				     <GIC_SPI 291 IRQ_TYPE_EDGE_RISING>,
				     <GIC_SPI 290 IRQ_TYPE_EDGE_RISING>,
				     <GIC_SPI 289 IRQ_TYPE_EDGE_RISING>,
				     <GIC_SPI 288 IRQ_TYPE_EDGE_RISING>,
				     <GIC_SPI 239 IRQ_TYPE_EDGE_RISING>,
				     <GIC_SPI 236 IRQ_TYPE_EDGE_RISING>,
				     <GIC_SPI 235 IRQ_TYPE_EDGE_RISING>,
				     <GIC_SPI 234 IRQ_TYPE_EDGE_RISING>,
				     <GIC_SPI 233 IRQ_TYPE_EDGE_RISING>,
				     <GIC_SPI 232 IRQ_TYPE_EDGE_RISING>,
				     <GIC_SPI 231 IRQ_TYPE_EDGE_RISING>,
				     <GIC_SPI 230 IRQ_TYPE_EDGE_RISING>,
				     <GIC_SPI 229 IRQ_TYPE_EDGE_RISING>,
				     <GIC_SPI 228 IRQ_TYPE_EDGE_RISING>,
				     <GIC_SPI 224 IRQ_TYPE_EDGE_RISING>,
				     <GIC_SPI 223 IRQ_TYPE_EDGE_RISING>,
				     <GIC_SPI 203 IRQ_TYPE_EDGE_RISING>,
				     <GIC_SPI 183 IRQ_TYPE_EDGE_RISING>,
				     <GIC_SPI 180 IRQ_TYPE_EDGE_RISING>,
				     <GIC_SPI 179 IRQ_TYPE_EDGE_RISING>,
				     <GIC_SPI 178 IRQ_TYPE_EDGE_RISING>,
				     <GIC_SPI 177 IRQ_TYPE_EDGE_RISING>,
				     <GIC_SPI 176 IRQ_TYPE_EDGE_RISING>,
				     <GIC_SPI 163 IRQ_TYPE_EDGE_RISING>,
				     <GIC_SPI 162 IRQ_TYPE_EDGE_RISING>,
				     <GIC_SPI 160 IRQ_TYPE_EDGE_RISING>,
				     <GIC_SPI 159 IRQ_TYPE_EDGE_RISING>,
				     <GIC_SPI 158 IRQ_TYPE_EDGE_RISING>,
				     <GIC_SPI 157 IRQ_TYPE_EDGE_RISING>,
				     <GIC_SPI 156 IRQ_TYPE_EDGE_RISING>;
			interrupt-names = "misc-pulse1", "misc-latch", "sw-exception",
					  "watchdog", "ce0", "ce1", "ce2", "ce3", "ce4",
					  "ce5", "ce6", "ce7", "ce8", "ce9", "ce10",
					  "ce11", "host2wbm-desc-feed",
					  "host2reo-re-injection", "host2reo-command",
					  "host2rxdma-monitor-ring3",
					  "host2rxdma-monitor-ring2",
					  "host2rxdma-monitor-ring1",
					  "reo2ost-exception", "wbm2host-rx-release",
					  "reo2host-status",
					  "reo2host-destination-ring4",
					  "reo2host-destination-ring3",
					  "reo2host-destination-ring2",
					  "reo2host-destination-ring1",
					  "rxdma2host-monitor-destination-mac3",
					  "rxdma2host-monitor-destination-mac2",
					  "rxdma2host-monitor-destination-mac1",
					  "ppdu-end-interrupts-mac3",
					  "ppdu-end-interrupts-mac2",
					  "ppdu-end-interrupts-mac1",
					  "rxdma2host-monitor-status-ring-mac3",
					  "rxdma2host-monitor-status-ring-mac2",
					  "rxdma2host-monitor-status-ring-mac1",
					  "host2rxdma-host-buf-ring-mac3",
					  "host2rxdma-host-buf-ring-mac2",
					  "host2rxdma-host-buf-ring-mac1",
					  "rxdma2host-destination-ring-mac3",
					  "rxdma2host-destination-ring-mac2",
					  "rxdma2host-destination-ring-mac1",
					  "host2tcl-input-ring4",
					  "host2tcl-input-ring3",
					  "host2tcl-input-ring2",
					  "host2tcl-input-ring1",
					  "wbm2host-tx-completions-ring3",
					  "wbm2host-tx-completions-ring2",
					  "wbm2host-tx-completions-ring1",
					  "tcl2host-status-ring";
			status = "disabled";
		};

		q6v5_wcss: remoteproc@cd00000 {
			compatible = "qcom,ipq6018-wcss-pil";
			reg = <0x0 0x0cd00000 0x0 0x4040>,
			      <0x0 0x004ab000 0x0 0x20>;
			reg-names = "qdsp6",
				    "rmb";
			interrupts-extended = <&intc GIC_SPI 325 IRQ_TYPE_EDGE_RISING>,
					      <&wcss_smp2p_in 0 0>,
					      <&wcss_smp2p_in 1 0>,
					      <&wcss_smp2p_in 2 0>,
					      <&wcss_smp2p_in 3 0>;
			interrupt-names = "wdog",
					  "fatal",
					  "ready",
					  "handover",
					  "stop-ack";

			resets = <&gcc GCC_WCSSAON_RESET>,
				 <&gcc GCC_WCSS_BCR>,
				 <&gcc GCC_WCSS_Q6_BCR>;

			reset-names = "wcss_aon_reset",
				      "wcss_reset",
				      "wcss_q6_reset";

			clocks = <&gcc GCC_PRNG_AHB_CLK>, <&gcc GCC_QDSS_AT_CLK>;
			clock-names = "prng", "qdss" ;

			qcom,halt-regs = <&tcsr 0x18000 0x1b000 0xe000>;

			qcom,smem-states = <&wcss_smp2p_out 0>,
					   <&wcss_smp2p_out 1>;
			qcom,smem-state-names = "shutdown",
						"stop";

			memory-region = <&q6_region>;

			glink-edge {
				interrupts = <GIC_SPI 321 IRQ_TYPE_EDGE_RISING>;
				label = "rtr";
				qcom,remote-pid = <1>;
				mboxes = <&apcs_glb 8>;

				qrtr_requests {
					qcom,glink-channels = "IPCRTR";
				};
			};
		};

		pcie0: pci@20000000 {
			compatible = "qcom,pcie-ipq6018";
			reg = <0x0 0x20000000 0x0 0xf1d>,
			      <0x0 0x20000f20 0x0 0xa8>,
			      <0x0 0x20001000 0x0 0x1000>,
			      <0x0 0x80000 0x0 0x4000>,
			      <0x0 0x20100000 0x0 0x1000>;
			reg-names = "dbi", "elbi", "atu", "parf", "config";

			device_type = "pci";
			linux,pci-domain = <0>;
			bus-range = <0x00 0xff>;
			num-lanes = <1>;
			max-link-speed = <3>;
			#address-cells = <3>;
			#size-cells = <2>;

			phys = <&pcie_phy0>;
			phy-names = "pciephy";

			ranges = <0x81000000 0x0 0x00000000 0x0 0x20200000 0x0 0x10000>,
				 <0x82000000 0x0 0x20220000 0x0 0x20220000 0x0 0xfde0000>;

			interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>;
			interrupt-names = "msi";

			#interrupt-cells = <1>;
			interrupt-map-mask = <0 0 0 0x7>;
			interrupt-map = <0 0 0 1 &intc 0 0 0 75 IRQ_TYPE_LEVEL_HIGH>, /* int_a */
					<0 0 0 2 &intc 0 0 0 78 IRQ_TYPE_LEVEL_HIGH>, /* int_b */
					<0 0 0 3 &intc 0 0 0 79 IRQ_TYPE_LEVEL_HIGH>, /* int_c */
					<0 0 0 4 &intc 0 0 0 83 IRQ_TYPE_LEVEL_HIGH>; /* int_d */

			clocks = <&gcc GCC_SYS_NOC_PCIE0_AXI_CLK>,
				 <&gcc GCC_PCIE0_AXI_M_CLK>,
				 <&gcc GCC_PCIE0_AXI_S_CLK>,
				 <&gcc GCC_PCIE0_AXI_S_BRIDGE_CLK>,
				 <&gcc PCIE0_RCHNG_CLK>;
			clock-names = "iface",
				      "axi_m",
				      "axi_s",
				      "axi_bridge",
				      "rchng";

			resets = <&gcc GCC_PCIE0_PIPE_ARES>,
				 <&gcc GCC_PCIE0_SLEEP_ARES>,
				 <&gcc GCC_PCIE0_CORE_STICKY_ARES>,
				 <&gcc GCC_PCIE0_AXI_MASTER_ARES>,
				 <&gcc GCC_PCIE0_AXI_SLAVE_ARES>,
				 <&gcc GCC_PCIE0_AHB_ARES>,
				 <&gcc GCC_PCIE0_AXI_MASTER_STICKY_ARES>,
				 <&gcc GCC_PCIE0_AXI_SLAVE_STICKY_ARES>;
			reset-names = "pipe",
				      "sleep",
				      "sticky",
				      "axi_m",
				      "axi_s",
				      "ahb",
				      "axi_m_sticky",
				      "axi_s_sticky";

			status = "disabled";
		};
	};

	thermal-zones {
		nss-top-thermal {
			polling-delay-passive = <250>;
			polling-delay = <1000>;
			thermal-sensors = <&tsens 4>;

			trips {
				nss-top-critical {
					temperature = <125000>;
					hysteresis = <1000>;
					type = "critical";
				};
			};
		};

		nss-thermal {
			polling-delay-passive = <250>;
			polling-delay = <1000>;
			thermal-sensors = <&tsens 5>;

			trips {
				nss-critical {
					temperature = <125000>;
					hysteresis = <1000>;
					type = "critical";
				};
			};
		};

		wcss-phya0-thermal {
			polling-delay-passive = <250>;
			polling-delay = <1000>;
			thermal-sensors = <&tsens 7>;

			trips {
				wcss-phya0-critical {
					temperature = <125000>;
					hysteresis = <1000>;
					type = "critical";
				};
			};
		};

		wcss-phya1-thermal {
			polling-delay-passive = <250>;
			polling-delay = <1000>;
			thermal-sensors = <&tsens 8>;

			trips {
				wcss-phya1-critical {
					temperature = <125000>;
					hysteresis = <1000>;
					type = "critical";
				};
			};
		};

		cpu-thermal {
			polling-delay-passive = <250>;
			polling-delay = <1000>;
			thermal-sensors = <&tsens 13>;

			trips {
				cpu-critical {
					temperature = <125000>;
					hysteresis = <1000>;
					type = "critical";
				};

				cpu_alert: cpu-passive {
					temperature = <110000>;
					hysteresis = <1000>;
					type = "passive";
				};
			};

			cooling-maps {
				map0 {
					trip = <&cpu_alert>;
					cooling-device = <&CPU0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
							 <&CPU1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
							 <&CPU2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
							 <&CPU3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
				};
			};
		};

		lpass-thermal {
			polling-delay-passive = <250>;
			polling-delay = <1000>;
			thermal-sensors = <&tsens 14>;

			trips {
				lpass-critical {
					temperature = <125000>;
					hysteresis = <1000>;
					type = "critical";
				};
			};
		};

		ddrss-top-thermal {
			polling-delay-passive = <250>;
			polling-delay = <1000>;
			thermal-sensors = <&tsens 15>;

			trips {
				ddrss-top-critical {
					temperature = <125000>;
					hysteresis = <1000>;
					type = "critical";
				};
			};
		};
	};

	timer {
		compatible = "arm,armv8-timer";
		interrupts = <GIC_PPI 2 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
			     <GIC_PPI 3 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
			     <GIC_PPI 4 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
			     <GIC_PPI 1 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
	};

	wcss: wcss-smp2p {
		compatible = "qcom,smp2p";
		qcom,smem = <435>, <428>;

		interrupt-parent = <&intc>;
		interrupts = <GIC_SPI 322 IRQ_TYPE_EDGE_RISING>;

		mboxes = <&apcs_glb 9>;

		qcom,local-pid = <0>;
		qcom,remote-pid = <1>;

		wcss_smp2p_out: master-kernel {
			qcom,entry-name = "master-kernel";
			qcom,smp2p-feature-ssr-ack;
			#qcom,smem-state-cells = <1>;
		};

		wcss_smp2p_in: slave-kernel {
			qcom,entry-name = "slave-kernel";
			interrupt-controller;
			#interrupt-cells = <2>;
		};
	};
};

I used your ipq6018-nss.dtsi

Uh, I've looked at telecominfraproject/wlan-ap and I believe there is a chance that you're not seeing the gl-axt commits because they recently dropped support (https://github.com/Telecominfraproject/wlan-ap/commit/de425e8f17a02ce067b807779a16477dca0221eb).

VLAN Bridge filtering seems like it's still broken. I haven't experimented much, but I have my trunk ports on the two 10gig ports on the 301w, and those work perfectly, and Wi-Fi works too. My problem is with the 1gig ports. I have them set untagged on vlan 100, but I can't reach anything on those ports.
https://files.teamorange.hu/openwrt/network - this is my current config

Just a short report running with latest commits. I found this in kernel log.
I don't know if it is connected to the above commit.
The router seems to run fine without any malfunctions but let's see.

[180247.695591] BUG: scheduling while atomic: napi/nss-9/1264/0x00000201
[180247.695631] Modules linked in: ksmbd ecm(O) nft_fib_inet nf_flow_table_inet ath11k_ahb(O) ath11k(O) xt_DSCP wireguard nft_reject_ipv6 nft_reject_ipv4 nft_reject_inet nft_reject nft_redir nft_quota nft_numgen nft_nat nft_masq nft_log nft_limit nft_hash nft_flow_offload nft_fib_ipv6 nft_fib_ipv4 nft_fib nft_ct nft_compat nft_chain_nat nf_tables nf_nat nf_flow_table nf_conntrack_netlink nf_conntrack mac80211(O) libchacha20poly1305 iptable_mangle iptable_filter ipt_REJECT ipt_ECN ip_tables chacha_neon cfg80211(O) xt_time xt_tcpudp xt_tcpmss xt_statistic xt_multiport xt_mark xt_mac xt_limit xt_length xt_hl xt_ecn xt_dscp xt_comment xt_TCPMSS xt_LOG xt_HL xt_CLASSIFY x_tables sch_cake qrtr_smd qrtr qmi_helpers(O) pptp ppp_async poly1305_neon nfnetlink nf_reject_ipv6 nf_reject_ipv4 nf_log_syslog nf_defrag_ipv4 macvlan libcurve25519_generic libcrc32c libchacha l2tp_ppp compat(O) act_vlan fuse sch_tbf sch_ingress sch_htb sch_hfsc em_u32 cls_u32 cls_route cls_matchall cls_fw cls_flow cls_basic act_skbedit act_mirred act_gact
[180247.695820]  qca_nss_tunipip6(O) qca_nss_tun6rd(O) qca_nss_macsec(O) qca_nss_vxlanmgr(O) qca_nss_pppoe(O) pppoe pppox qca_nss_map_t(O) qca_nss_lag_mgr(O) qca_nss_l2tpv2(O) ppp_generic slhc qca_nss_gre(O) qca_nss_bridge_mgr(O) qca_nss_vlan(O) qca_mcs(O) nfsv4 nfsv3 nls_ucs2_utils cifs_arc4 asn1_decoder nfsd nfs msdos bonding ip6_gre ip_gre gre ifb nat46(O) nf_defrag_ipv6 sit qca_nss_drv(O) ip6_tunnel tunnel6 tunnel4 rpcsec_gss_krb5 auth_rpcgss oid_registry veth tun lockd sunrpc grace hfsplus hfs cdrom autofs4 dns_resolver nls_utf8 nls_iso8859_1 nls_cp437 vxlan wp512 twofish_generic twofish_common tea serpent_generic khazad cast6_generic cast5_generic cast_common camellia_generic blowfish_generic blowfish_common anubis crypto_user algif_skcipher algif_rng algif_hash algif_aead af_alg sha512_generic sha512_arm64 sha2_ce sha256_arm64 sha1_ce seqiv sha3_generic jitterentropy_rng drbg michael_mic md5 md4 hmac geniv des_generic libdes cts cmac arc4 uas usb_storage leds_gpio xhci_plat_hcd xhci_pci xhci_hcd dwc3 dwc3_qcom
[180247.768750]  qca_nss_dp(O) qca_ssdk(O) gpio_button_hotplug(O) vfat fat f2fs ext4 mbcache jbd2 exfat aquantia hwmon crc_ccitt crc32c_generic crc32_generic [last unloaded: ksmbd]
[180247.880748] CPU: 2 PID: 1264 Comm: napi/nss-9 Tainted: G           O       6.6.32 #0
[180247.896506] Hardware name: QNAP 301w (DT)
[180247.904310] Call trace:
[180247.908300]  dump_backtrace+0xb0/0x10c
[180247.910992]  show_stack+0x18/0x24
[180247.914550]  dump_stack_lvl+0x48/0x60
[180247.918023]  dump_stack+0x18/0x24
[180247.921756]  __schedule_bug+0x54/0x6c
[180247.925141]  __schedule+0x4f0/0x5e8
[180247.928873]  schedule+0x5c/0xc4
[180247.932605]  napi_threaded_poll+0x60/0x1f8
[180247.935819]  kthread+0x10c/0x110
[180247.939724]  ret_from_fork+0x10/0x20
[180609.113998] BUG: scheduling while atomic: napi/nss-9/1264/0x00000201
[180609.114043] Modules linked in: ksmbd ecm(O) nft_fib_inet nf_flow_table_inet ath11k_ahb(O) ath11k(O) xt_DSCP wireguard nft_reject_ipv6 nft_reject_ipv4 nft_reject_inet nft_reject nft_redir nft_quota nft_numgen nft_nat nft_masq nft_log nft_limit nft_hash nft_flow_offload nft_fib_ipv6 nft_fib_ipv4 nft_fib nft_ct nft_compat nft_chain_nat nf_tables nf_nat nf_flow_table nf_conntrack_netlink nf_conntrack mac80211(O) libchacha20poly1305 iptable_mangle iptable_filter ipt_REJECT ipt_ECN ip_tables chacha_neon cfg80211(O) xt_time xt_tcpudp xt_tcpmss xt_statistic xt_multiport xt_mark xt_mac xt_limit xt_length xt_hl xt_ecn xt_dscp xt_comment xt_TCPMSS xt_LOG xt_HL xt_CLASSIFY x_tables sch_cake qrtr_smd qrtr qmi_helpers(O) pptp ppp_async poly1305_neon nfnetlink nf_reject_ipv6 nf_reject_ipv4 nf_log_syslog nf_defrag_ipv4 macvlan libcurve25519_generic libcrc32c libchacha l2tp_ppp compat(O) act_vlan fuse sch_tbf sch_ingress sch_htb sch_hfsc em_u32 cls_u32 cls_route cls_matchall cls_fw cls_flow cls_basic act_skbedit act_mirred act_gact
[180609.114216]  qca_nss_tunipip6(O) qca_nss_tun6rd(O) qca_nss_macsec(O) qca_nss_vxlanmgr(O) qca_nss_pppoe(O) pppoe pppox qca_nss_map_t(O) qca_nss_lag_mgr(O) qca_nss_l2tpv2(O) ppp_generic slhc qca_nss_gre(O) qca_nss_bridge_mgr(O) qca_nss_vlan(O) qca_mcs(O) nfsv4 nfsv3 nls_ucs2_utils cifs_arc4 asn1_decoder nfsd nfs msdos bonding ip6_gre ip_gre gre ifb nat46(O) nf_defrag_ipv6 sit qca_nss_drv(O) ip6_tunnel tunnel6 tunnel4 rpcsec_gss_krb5 auth_rpcgss oid_registry veth tun lockd sunrpc grace hfsplus hfs cdrom autofs4 dns_resolver nls_utf8 nls_iso8859_1 nls_cp437 vxlan wp512 twofish_generic twofish_common tea serpent_generic khazad cast6_generic cast5_generic cast_common camellia_generic blowfish_generic blowfish_common anubis crypto_user algif_skcipher algif_rng algif_hash algif_aead af_alg sha512_generic sha512_arm64 sha2_ce sha256_arm64 sha1_ce seqiv sha3_generic jitterentropy_rng drbg michael_mic md5 md4 hmac geniv des_generic libdes cts cmac arc4 uas usb_storage leds_gpio xhci_plat_hcd xhci_pci xhci_hcd dwc3 dwc3_qcom
[180609.187172]  qca_nss_dp(O) qca_ssdk(O) gpio_button_hotplug(O) vfat fat f2fs ext4 mbcache jbd2 exfat aquantia hwmon crc_ccitt crc32c_generic crc32_generic [last unloaded: ksmbd]
[180609.299152] CPU: 2 PID: 1264 Comm: napi/nss-9 Tainted: G        W  O       6.6.32 #0
[180609.314917] Hardware name: QNAP 301w (DT)
[180609.322723] Call trace:
[180609.326712]  dump_backtrace+0xb0/0x10c
[180609.329406]  show_stack+0x18/0x24
[180609.332964]  dump_stack_lvl+0x48/0x60
[180609.336435]  dump_stack+0x18/0x24
[180609.340168]  __schedule_bug+0x54/0x6c
[180609.343553]  __schedule+0x4f0/0x5e8
[180609.347286]  schedule+0x5c/0xc4
[180609.351019]  napi_threaded_poll+0x60/0x1f8
[180609.354232]  kthread+0x10c/0x110
[180609.358136]  ret_from_fork+0x10/0x20
[180609.363244] BUG: scheduling while atomic: napi/nss-9/1264/0x00000201
[180609.365289] Modules linked in: ksmbd ecm(O) nft_fib_inet nf_flow_table_inet ath11k_ahb(O) ath11k(O) xt_DSCP wireguard nft_reject_ipv6 nft_reject_ipv4 nft_reject_inet nft_reject nft_redir nft_quota nft_numgen nft_nat nft_masq nft_log nft_limit nft_hash nft_flow_offload nft_fib_ipv6 nft_fib_ipv4 nft_fib nft_ct nft_compat nft_chain_nat nf_tables nf_nat nf_flow_table nf_conntrack_netlink nf_conntrack mac80211(O) libchacha20poly1305 iptable_mangle iptable_filter ipt_REJECT ipt_ECN ip_tables chacha_neon cfg80211(O) xt_time xt_tcpudp xt_tcpmss xt_statistic xt_multiport xt_mark xt_mac xt_limit xt_length xt_hl xt_ecn xt_dscp xt_comment xt_TCPMSS xt_LOG xt_HL xt_CLASSIFY x_tables sch_cake qrtr_smd qrtr qmi_helpers(O) pptp ppp_async poly1305_neon nfnetlink nf_reject_ipv6 nf_reject_ipv4 nf_log_syslog nf_defrag_ipv4 macvlan libcurve25519_generic libcrc32c libchacha l2tp_ppp compat(O) act_vlan fuse sch_tbf sch_ingress sch_htb sch_hfsc em_u32 cls_u32 cls_route cls_matchall cls_fw cls_flow cls_basic act_skbedit act_mirred act_gact
[180609.365480]  qca_nss_tunipip6(O) qca_nss_tun6rd(O) qca_nss_macsec(O) qca_nss_vxlanmgr(O) qca_nss_pppoe(O) pppoe pppox qca_nss_map_t(O) qca_nss_lag_mgr(O) qca_nss_l2tpv2(O) ppp_generic slhc qca_nss_gre(O) qca_nss_bridge_mgr(O) qca_nss_vlan(O) qca_mcs(O) nfsv4 nfsv3 nls_ucs2_utils cifs_arc4 asn1_decoder nfsd nfs msdos bonding ip6_gre ip_gre gre ifb nat46(O) nf_defrag_ipv6 sit qca_nss_drv(O) ip6_tunnel tunnel6 tunnel4 rpcsec_gss_krb5 auth_rpcgss oid_registry veth tun lockd sunrpc grace hfsplus hfs cdrom autofs4 dns_resolver nls_utf8 nls_iso8859_1 nls_cp437 vxlan wp512 twofish_generic twofish_common tea serpent_generic khazad cast6_generic cast5_generic cast_common camellia_generic blowfish_generic blowfish_common anubis crypto_user algif_skcipher algif_rng algif_hash algif_aead af_alg sha512_generic sha512_arm64 sha2_ce sha256_arm64 sha1_ce seqiv sha3_generic jitterentropy_rng drbg michael_mic md5 md4 hmac geniv des_generic libdes cts cmac arc4 uas usb_storage leds_gpio xhci_plat_hcd xhci_pci xhci_hcd dwc3 dwc3_qcom
[180609.439410]  qca_nss_dp(O) qca_ssdk(O) gpio_button_hotplug(O) vfat fat f2fs ext4 mbcache jbd2 exfat aquantia hwmon crc_ccitt crc32c_generic crc32_generic [last unloaded: ksmbd]
[180609.551411] CPU: 2 PID: 1264 Comm: napi/nss-9 Tainted: G        W  O       6.6.32 #0
[180609.567174] Hardware name: QNAP 301w (DT)
[180609.574980] Call trace:
[180609.578969]  dump_backtrace+0xb0/0x10c
[180609.581661]  show_stack+0x18/0x24
[180609.585220]  dump_stack_lvl+0x48/0x60
[180609.588693]  dump_stack+0x18/0x24
[180609.592425]  __schedule_bug+0x54/0x6c
[180609.595810]  __schedule+0x4f0/0x5e8
[180609.599543]  schedule+0x5c/0xc4
[180609.603275]  napi_threaded_poll+0x60/0x1f8
[180609.606488]  kthread+0x10c/0x110
[180609.610394]  ret_from_fork+0x10/0x20
[200404.190526] BUG: scheduling while atomic: napi/nss-9/1264/0x00000201
[200404.190565] Modules linked in: ksmbd ecm(O) nft_fib_inet nf_flow_table_inet ath11k_ahb(O) ath11k(O) xt_DSCP wireguard nft_reject_ipv6 nft_reject_ipv4 nft_reject_inet nft_reject nft_redir nft_quota nft_numgen nft_nat nft_masq nft_log nft_limit nft_hash nft_flow_offload nft_fib_ipv6 nft_fib_ipv4 nft_fib nft_ct nft_compat nft_chain_nat nf_tables nf_nat nf_flow_table nf_conntrack_netlink nf_conntrack mac80211(O) libchacha20poly1305 iptable_mangle iptable_filter ipt_REJECT ipt_ECN ip_tables chacha_neon cfg80211(O) xt_time xt_tcpudp xt_tcpmss xt_statistic xt_multiport xt_mark xt_mac xt_limit xt_length xt_hl xt_ecn xt_dscp xt_comment xt_TCPMSS xt_LOG xt_HL xt_CLASSIFY x_tables sch_cake qrtr_smd qrtr qmi_helpers(O) pptp ppp_async poly1305_neon nfnetlink nf_reject_ipv6 nf_reject_ipv4 nf_log_syslog nf_defrag_ipv4 macvlan libcurve25519_generic libcrc32c libchacha l2tp_ppp compat(O) act_vlan fuse sch_tbf sch_ingress sch_htb sch_hfsc em_u32 cls_u32 cls_route cls_matchall cls_fw cls_flow cls_basic act_skbedit act_mirred act_gact
[200404.190735]  qca_nss_tunipip6(O) qca_nss_tun6rd(O) qca_nss_macsec(O) qca_nss_vxlanmgr(O) qca_nss_pppoe(O) pppoe pppox qca_nss_map_t(O) qca_nss_lag_mgr(O) qca_nss_l2tpv2(O) ppp_generic slhc qca_nss_gre(O) qca_nss_bridge_mgr(O) qca_nss_vlan(O) qca_mcs(O) nfsv4 nfsv3 nls_ucs2_utils cifs_arc4 asn1_decoder nfsd nfs msdos bonding ip6_gre ip_gre gre ifb nat46(O) nf_defrag_ipv6 sit qca_nss_drv(O) ip6_tunnel tunnel6 tunnel4 rpcsec_gss_krb5 auth_rpcgss oid_registry veth tun lockd sunrpc grace hfsplus hfs cdrom autofs4 dns_resolver nls_utf8 nls_iso8859_1 nls_cp437 vxlan wp512 twofish_generic twofish_common tea serpent_generic khazad cast6_generic cast5_generic cast_common camellia_generic blowfish_generic blowfish_common anubis crypto_user algif_skcipher algif_rng algif_hash algif_aead af_alg sha512_generic sha512_arm64 sha2_ce sha256_arm64 sha1_ce seqiv sha3_generic jitterentropy_rng drbg michael_mic md5 md4 hmac geniv des_generic libdes cts cmac arc4 uas usb_storage leds_gpio xhci_plat_hcd xhci_pci xhci_hcd dwc3 dwc3_qcom
[200404.263675]  qca_nss_dp(O) qca_ssdk(O) gpio_button_hotplug(O) vfat fat f2fs ext4 mbcache jbd2 exfat aquantia hwmon crc_ccitt crc32c_generic crc32_generic [last unloaded: ksmbd]
[200404.375667] CPU: 1 PID: 1264 Comm: napi/nss-9 Tainted: G        W  O       6.6.32 #0
[200404.391440] Hardware name: QNAP 301w (DT)
[200404.399245] Call trace:
[200404.403234]  dump_backtrace+0xb0/0x10c
[200404.405927]  show_stack+0x18/0x24
[200404.409485]  dump_stack_lvl+0x48/0x60
[200404.412957]  dump_stack+0x18/0x24
[200404.416690]  __schedule_bug+0x54/0x6c
[200404.420076]  __schedule+0x4f0/0x5e8
[200404.423809]  schedule+0x5c/0xc4
[200404.427540]  napi_threaded_poll+0x60/0x1f8
[200404.430754]  kthread+0x10c/0x110
[200404.434658]  ret_from_fork+0x10/0x20

Hello, @qosmio , after several time effort, I managed to reproduce @Vladdrako result with no mistakes! :star_struck:. I have the same result with @Vladdrako. I used @shi05275 repo and your mac80211 without 188 patch ( but I cannot boot my device with your repo). The speed is about 300Mb/s WiFi and 940Mb/s wire. Also I have patched the reserved-memory node with this patch:

--- a/arch/arm64/boot/dts/qcom/ipq6018.dtsi
+++ b/arch/arm64/boot/dts/qcom/ipq6018.dtsi
@@ -28,6 +28,12 @@
 			clock-frequency = <24000000>;
 			#clock-cells = <0>;
 		};
+
+		usb3phy_0_cc_pipe_clk: usb3phy-0-cc-pipe-clk {
+			compatible = "fixed-clock";
+			clock-frequency = <125000000>;
+			#clock-cells = <0>;
+		};
 	};
 
 	cpus: cpus {
@@ -223,6 +229,22 @@
 			reg = <0x0 0x4ab00000 0x0 0x5500000>;
 			no-map;
 		};
+
+		nss_region: nss@40000000 {
+			no-map;
+			reg = <0x0 0x40000000 0x0 0x01000000>;
+		};
+
+		q6_etr_region: q6_etr_dump@50000000 {
+			no-map;
+			reg = <0x0 0x50000000 0x0 0x00100000>;
+		};
+
+		m3_dump_region: m3_dump@50100000 {
+			no-map;
+			reg = <0x0 0x50100000 0x0 0x00100000>;
+		};
+
 	};
 
 	smem {
@@ -417,8 +439,12 @@
 		gcc: gcc@1800000 {
 			compatible = "qcom,gcc-ipq6018";
 			reg = <0x0 0x01800000 0x0 0x80000>;
-			clocks = <&xo>, <&sleep_clk>;
-			clock-names = "xo", "sleep_clk";
+			clocks = <&xo>,
+				 <&sleep_clk>,
+				 <&usb3phy_0_cc_pipe_clk>;
+			clock-names = "xo",
+				      "sleep_clk",
+				      "usb3phy_0_cc_pipe_clk";
 			#clock-cells = <1>;
 			#reset-cells = <1>;
 		};
@@ -430,8 +456,21 @@
 		};
 
 		tcsr: syscon@1937000 {
-			compatible = "qcom,tcsr-ipq6018", "syscon";
+			compatible = "qcom,tcsr-ipq6018", "syscon", "simple-mfd";
 			reg = <0x0 0x01937000 0x0 0x21000>;
+			ranges = <0x0 0x0 0x01937000 0x21000>;
+			#address-cells = <1>;
+			#size-cells = <1>;
+
+			pwm: pwm@a010 {
+				compatible = "qcom,ipq6018-pwm";
+				reg = <0xa010 0x20>;
+				clocks = <&gcc GCC_ADSS_PWM_CLK>;
+				assigned-clocks = <&gcc GCC_ADSS_PWM_CLK>;
+				assigned-clock-rates = <100000000>;
+				#pwm-cells = <2>;
+				status = "disabled";
+			};
 		};
 
 		usb2: usb@70f8800 {
@@ -596,6 +635,20 @@
 			status = "disabled";
 		};
 
+		blsp1_spi5: spi@78b9000 {
+			compatible = "qcom,spi-qup-v2.2.1";
+			#address-cells = <1>;
+			#size-cells = <0>;
+			reg = <0x0 0x078b9000 0x0 0x600>;
+			interrupts = <GIC_SPI 299 IRQ_TYPE_LEVEL_HIGH>;
+			clocks = <&gcc GCC_BLSP1_QUP5_SPI_APPS_CLK>,
+				 <&gcc GCC_BLSP1_AHB_CLK>;
+			clock-names = "core", "iface";
+			dmas = <&blsp_dma 20>, <&blsp_dma 21>;
+			dma-names = "tx", "rx";
+			status = "disabled";
+		};
+
 		blsp1_i2c2: i2c@78b6000 {
 			compatible = "qcom,i2c-qup-v2.2.1";
 			#address-cells = <1>;
@@ -626,6 +679,21 @@
 			status = "disabled";
 		};
 
+		blsp1_i2c6: i2c@78ba000 {
+			compatible = "qcom,i2c-qup-v2.2.1";
+			#address-cells = <1>;
+			#size-cells = <0>;
+			reg = <0x0 0x078ba000 0x0 0x600>;
+			interrupts = <GIC_SPI 300 IRQ_TYPE_LEVEL_HIGH>;
+			clocks = <&gcc GCC_BLSP1_QUP6_I2C_APPS_CLK>,
+				 <&gcc GCC_BLSP1_AHB_CLK>;
+			clock-names = "core", "iface";
+			clock-frequency = <400000>;
+			dmas = <&blsp_dma 22>, <&blsp_dma 23>;
+			dma-names = "tx", "rx";
+			status = "disabled";
+		};
+
 		qpic_bam: dma-controller@7984000 {
 			compatible = "qcom,bam-v1.7.0";
 			reg = <0x0 0x07984000 0x0 0x1a000>;
@@ -929,8 +997,26 @@
 				      "wcss_reset",
 				      "wcss_q6_reset";
 
-			clocks = <&gcc GCC_PRNG_AHB_CLK>, <&gcc GCC_QDSS_AT_CLK>;
-			clock-names = "prng", "qdss" ;
+			clocks = <&gcc GCC_PRNG_AHB_CLK>,
+					<&gcc GCC_QDSS_AT_CLK>,
+					<&gcc GCC_SYS_NOC_WCSS_AHB_CLK>,
+					<&gcc GCC_Q6SS_ATBM_CLK>,
+					<&gcc GCC_Q6SS_PCLKDBG_CLK>,
+					<&gcc GCC_Q6_TSCTR_1TO2_CLK>;
+			clock-names = "prng",
+					"qdss",
+					"gcc_sys_noc_wcss_ahb_clk",
+					"gcc_q6ss_atbm_clk",
+					"gcc_q6ss_pclkdbg_clk",
+					"gcc_q6_tsctr_1to2_clk";
+			assigned-clocks = <&gcc GCC_SYS_NOC_WCSS_AHB_CLK>,
+					  <&gcc GCC_Q6SS_PCLKDBG_CLK>,
+					<&gcc GCC_Q6_TSCTR_1TO2_CLK>,
+					<&gcc GCC_Q6SS_ATBM_CLK>;
+			assigned-clock-rates = <133333333>,
+						<600000000>,
+						<600000000>,
+						<240000000>;
 
 			qcom,halt-regs = <&tcsr 0x18000 0x1b000 0xe000>;
2 Likes

Good news, may I ask which repo you are using for the nss-package? I will try it when I have some free time.

1 Like

Hi LangRen da lao, we have met in github before . I used https://github.com/qosmio/nss-packages.git;NSS-12.5-K6.x. I give the iperf3 speedtest result here. Although, we are still far away from ideal WiFi speed. But I believe it is a big step for IPQ6018.

-----------------------------------------------------------
Server listening on 5201 (test #2)
-----------------------------------------------------------
Accepted connection from 192.168.1.135, port 51730
[  5] local 192.168.10.138 port 5201 connected to 192.168.1.135 port 51740
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-1.00   sec  43.5 MBytes   365 Mbits/sec                  
[  5]   1.00-2.00   sec  34.9 MBytes   293 Mbits/sec                  
[  5]   2.00-3.00   sec  47.4 MBytes   398 Mbits/sec                  
[  5]   3.00-4.00   sec  46.0 MBytes   386 Mbits/sec                  
[  5]   4.00-5.00   sec  39.1 MBytes   328 Mbits/sec                  
[  5]   5.00-6.00   sec  39.0 MBytes   327 Mbits/sec                  
[  5]   6.00-7.00   sec  48.5 MBytes   407 Mbits/sec                  
[  5]   7.00-8.00   sec  45.4 MBytes   381 Mbits/sec                  
[  5]   8.00-9.00   sec  49.9 MBytes   418 Mbits/sec                  
[  5]   9.00-10.00  sec  50.6 MBytes   425 Mbits/sec                  
[  5]  10.00-10.03  sec   896 KBytes   270 Mbits/sec                  
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-10.03  sec   445 MBytes   372 Mbits/sec                  receiver
-----------------------------------------------------------
Server listening on 5201 (test #3)
-----------------------------------------------------------
Accepted connection from 192.168.1.135, port 34872
[  5] local 192.168.10.138 port 5201 connected to 192.168.1.135 port 34876
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec  37.9 MBytes   318 Mbits/sec    0    334 KBytes       
[  5]   1.00-2.00   sec  17.9 MBytes   150 Mbits/sec    0    351 KBytes       
[  5]   2.00-3.00   sec  29.4 MBytes   246 Mbits/sec    0    546 KBytes       
[  5]   3.00-4.00   sec  28.8 MBytes   241 Mbits/sec    0    566 KBytes       
[  5]   4.00-5.00   sec  35.0 MBytes   294 Mbits/sec    0    554 KBytes       
[  5]   5.00-6.00   sec  27.2 MBytes   229 Mbits/sec    0    563 KBytes       
[  5]   6.00-7.00   sec  38.0 MBytes   319 Mbits/sec    0    546 KBytes       
[  5]   7.00-8.00   sec  38.5 MBytes   323 Mbits/sec    0    684 KBytes       
[  5]   8.00-9.00   sec  39.1 MBytes   328 Mbits/sec    0    594 KBytes       
[  5]   9.00-10.00  sec  39.2 MBytes   329 Mbits/sec    0    378 KBytes       
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec   331 MBytes   278 Mbits/sec    0             sender
2 Likes

Hello, @shi05275 I upload my firmware here, you could check it quickly, but I think we still need to make some improvement for IPQ6018

I have encountered a (minor) bug. I think this is related to using NSS 12.5 firmware (since it showed up right around the time I rebuilt with NSS 12.5 instead of NSS 12.4), but I dont know that for sure....Around the same time I also updated my build system from fedora 39 / gcc13 to fedora 40 / gcc 14. And of course im constantly impolementing minor tweaks to my build config.

It seems that internet traffic that is going directly to/from the router itself to WAN (and not to one of the LAN-side devices connected to the router) is going through the CPU and not through the NSS. Things like "running speedtest-netperf.sh" on the router show considerably higher CPU usage (comparable to what I remember it being like on a non-NSS build).

Granted this isnt a huge issue, since all the traffic going to LAN-side devices is still going through the NSS (I can download at gigabit speed from a LAN-side device without any CPU usage increase on the router). But, I figure it is still worth reporting.

Anyone else experiencing this, or is it just me?

I started getting this too. It doesn't seem to play nice on kernel 6.6. It's now been reverted.

That's great news! I'll work on getting these cleaned up and incorporated. Hopefully all the IPQ60xx PRs get merged upstream soon.

You are the superhero :cowboy_hat_face:.
I conclude the necessary steps to facilitate your work.

  1. I used @shi05275 repo to be the base.
  2. I replaced all files in target/linux/qualcommax/patch-6.6 with your repo corresponding files in the same dictionary.
  3. I use your nss_packages: https://github.com/qosmio/nss-packages.git;NSS-12.5-K6.x
  4. I replace all mac80211 with your file and removed 188 patch.
  5. reserved-memory node patch like this:

The main issue for using your repo is that it will soft brick my device. My device will stuck in boot phase

Compiling at the current state (2 days ago commits) with this commit reverted I cannot access the router via cable and WAN is not working. Rebooted several times but no access.
The only way to recover was to access the router wirelessly and then I flashed my previous build.

Update - with latest commits from OpenWrt main an hour ago it works again.

Is this OK? The openssl config file is empty.
@quarky Do you happen to know anything about this error?

root@QNAP:~# openssl engine -t -c
FATAL: Startup failure (dev note: apps_startup()) for openssl
302D258A7F000000:error:12800067:DSO support routines:dlfcn_load:could not load the shared library:crypto/dso/dso_dlfcn.c:118:filename(libengines.so): Error loading shared library libengines.so: No such file or directory
302D258A7F000000:error:12800067:DSO support routines:DSO_load:could not load the shared library:crypto/dso/dso_lib.c:152:
302D258A7F000000:error:0700006E:configuration file routines:module_load_dso:error loading dso:crypto/conf/conf_mod.c:321:module=engines, path=engines
302D258A7F000000:error:07000071:configuration file routines:module_run:unknown module name:crypto/conf/conf_mod.c:266:module=engines

Anyone else seeing this error?
On older R7800 I get this.

root@R7800:~# openssl engine -t -c
(dynamic) Dynamic engine loading support
     [ unavailable ]
(devcrypto) /dev/crypto engine
     [ available ]

On R7800 I have this config

config engine 'devcrypto'
	option enabled '1'

config provider 'legacy'
	option enabled '1'

Can’t say that I know. It looks like devcrypto driver support not compiled in?

1 Like

I wonder what may be the reason and isn't it strange that actually the router works? Really strange.

root@QNAP:~# opkg list-installed | grep openssl
libopenssl-conf - 3.0.13-r1
libopenssl-legacy - 3.0.13-r1
libopenssl3 - 3.0.13-r1
libustream-openssl20201210 - 2024.04.19~524a76e5-r1
luci-ssl-openssl - 24.153.25439~2e265f7
openssl-util - 3.0.13-r1
wpad-openssl - 2024.03.09~695277a5-r1

devcrypto is a separate module. It does not comes standard with OpenSSL.

If you were building the nss-crypto modules before, the only change I made was making the modules require the "@BROKEN" dependancies to show up in menuconfig.

You don't need devcrypto or any accel engines (they wouldn't work with broken crypto cores anyways)

You can, and should disable any DEVCRYTPO option for OpenSSL.

I remember we talked about this a while ago and I think I disabled devcrypto at that time?


But is this output OK in this case.
openssl version gives the same error.

Should this be disabled?
Enable CRYPTO

@qosmio hello, my hero. I have upload my code into Github. Maybe you want to check it!

1 Like