Qualcommax NSS Build

CONFIG_ALL_KMODS=y

Yes, I use your profile for MX4300 and the firmware builds without errors. But I want to additionally build all the kernel modules to the router firmware so that I can install them later if I need to. What do I need to do to get all the kernel modules?

when I build Debian 12 on my virtual machine, I always get errors when building kernel modules. But I can't figure out what the cause of these errors is (missing dependencies or missing specific kernel module for the platform).

Did you install all the dependencies needed for the openwrt build system as per wiki? Quick check in a VM I have says python is 3.11 so you would need the package list for older Python 3.xx.

No worries :slight_smile:

I couldn't find anyone releasing builds for your particular device on github, so you will have to tinker with it yourself probably.

There are people doing it for a bunch of other devices using github, so you could for one of their repos and just change the device selected in the config file and the necessary packages.

11.4 is the last officially supported version from qualcomm and pretty much everyone defaults to that including qosmio's repo. That seems to be his recommendation as well. So I would stick with that unless you have any reason not to.

@AgustinLorenzo Hey, how do you go about rebasing qosmios repo? Its been quite a while since the last rebase so i thought i give it a go myself.

Edit: Sorry for using "Answer" @deepakvinod

1 Like

Hi qosmio, I am facing the same issue as junky in ipq6018, STA/Client cannot link to AP (NSS FW 11.4, 12.2, 12.5). Everything works fine in no NSS build.
Here is related log:

Wed Apr 16 07:43:46 2025 daemon.notice wpa_supplicant[2515]: phy1-sta0: SME: Trying to authenticate with 0c:31:dc:d8:71:64 (SSID='ChinaNet-h5Wy' freq=2437 MHz)
Wed Apr 16 07:43:46 2025 daemon.err wpa_supplicant[2515]: phy1-sta0: nl80211: kernel reports: binary attribute size out of range
Wed Apr 16 07:43:46 2025 daemon.notice wpa_supplicant[2515]: phy1-sta0: SME: Authentication request to the driver failed
Wed Apr 16 07:43:47 2025 daemon.notice wpa_supplicant[2515]: phy1-sta0: CTRL-EVENT-SSID-TEMP-DISABLED id=7 ssid="ChinaNet-h5Wy" auth_failures=12 duration=120 reason=CONN_FAILED

Not work for me in STA/Client:

$ rm package/kernel/mac80211/patches/nss/ath11k/999-902-ath11k-fix-WDS-by-disabling-nwds.patch
$ rm package/kernel/mac80211/patches/nss/subsys/{999-775-wifi-mac80211-Changes-for-WDS-MLD.patch,999-922-mac80211-fix-null-chanctx-warning-for-NSS-dynamic-VLAN.patch}

Any idea for this? thanks! :cowboy_hat_face:


:smiley: I have fixed it, the main issue is SME: Authentication request to the driver failed, all need to do is add a patch to hostapd. Also, I recommand use NSS FW 11.4, it also can give IP via DHCP in non-encrypted WiFi :growing_heart:

3 Likes

Seems to work on Asus RT-AX89X too.

[13917.781841] Kernel panic - not syncing: sysrq triggered crash
[13917.784102] CPU: 3 PID: 10092 Comm: sh Tainted: G           O       6.6.80 #0
[13917.789917] Hardware name: Asus RT-AX89X (DT)
[13917.797030] Call trace:
[13917.801367]  dump_backtrace+0xb0/0x10c
[13917.803626]  show_stack+0x18/0x24
[13917.807443]  dump_stack_lvl+0x48/0x60
[13917.810829]  dump_stack+0x18/0x24
[13917.814475]  panic+0x2bc/0x308
[13917.817774]  send_sig_all+0x0/0xcc
[13917.820726]  __handle_sysrq+0xe0/0x1dc
[13917.824111]  write_sysrq_trigger+0xcc/0x13c
[13917.827844]  proc_reg_write+0xb0/0xf8
[13917.831924]  vfs_write+0xb0/0x350
[13917.835742]  ksys_write+0x5c/0xe0
[13917.839041]  __arm64_sys_write+0x1c/0x28
[13917.842342]  invoke_syscall.constprop.0+0x5c/0x100
[13917.846336]  do_el0_svc+0x40/0xdc
[13917.850933]  el0_svc+0x28/0x9c
[13917.854319]  el0t_64_sync_handler+0x120/0x12c
[13917.857272]  el0t_64_sync+0x178/0x17c
[13917.861701] SMP: stopping secondary CPUs
[13917.865350] Kernel Offset: disabled
[13917.869337] CPU features: 0x0,00000000,00000000,0000400b
[13917.872553] Memory Limit: none
[13918.881598] pstore: backend (ramoops) writing error (-28)
[13918.881625] Rebooting in 10 seconds..

@qosmio

This patch seem error

Applying /home/xiaoli/openwrt-ipq/feeds/nss_packages/qca-nss-clients/patches/0030-fixup-compiler-errors.patch using plaintext: 
patching file match/nss_match.c
patching file nss_qdisc/nss_ppe.c
patching file nss_qdisc/nss_ppe_mc.c
patching file nss_qdisc/nss_wred.c
patching file openvpn/plugins/nss_ovpn_sk.c
patching file pvxlanmgr/nss_pvxlanmgr.c
patching file pvxlanmgr/nss_pvxlanmgr_tunnel.c
patching file tls/nss_tlsmgr_crypto.c
patching file vlan/nss_vlan_mgr.c
patching file wifi_meshmgr/nss_wifi_meshmgr.c
Hunk #2 FAILED at 1699.
1 out of 2 hunks FAILED -- saving rejects to file wifi_meshmgr/nss_wifi_meshmgr.c.rej
patching file netlink/nss_nlipsec.c
Patch failed!  Please fix /home/xiaoli/openwrt-ipq/feeds/nss_packages/qca-nss-clients/patches/0030-fixup-compiler-errors.patch!
make[3]: *** [Makefile:763: /home/xiaoli/openwrt-ipq/build_dir/target-aarch64_cortex-a53_musl/linux-qualcommax_ipq807x/qca-nss-clients-12.5.2024.09.11~51be82d/.prepared_26e2f0af44c6b33ac156f43e577713dc_6664517399ebbbc92a37c5bb081b5c53] Error 1
make[3]: Leaving directory '/home/xiaoli/openwrt-ipq/feeds/nss_packages/qca-nss-clients'
time: package/feeds/nss_packages/qca-nss-clients/compile#0.28#0.08#0.35
    ERROR: package/feeds/nss_packages/qca-nss-clients failed to build.
make[2]: *** [package/Makefile:189: package/feeds/nss_packages/qca-nss-clients/compile] Error 1
make[2]: Leaving directory '/home/xiaoli/openwrt-ipq'
make[1]: *** [package/Makefile:183: /home/xiaoli/openwrt-ipq/staging_dir/target-aarch64_cortex-a53_musl/stamp/.package_compile] Error 2
make[1]: Leaving directory '/home/xiaoli/openwrt-ipq'
make: *** [/home/xiaoli/openwrt-ipq/include/toplevel.mk:233: world] Error 2

It's fixed - https://github.com/qosmio/nss-packages/commit/bb4d4c9a2520f48b366c16c22a6d90df1afdfd8a.

1 Like

@qosmio ecm fails to compile (ipq6000) nss 11.4

../qca-nss-ecm-12.5.2024.11.06~30fbfa4/frontends/nss/ecm_nss_non_ported_ipv6.c: In function 'ecm_nss_non_ported_ipv6_connection_accelerate':
../qca-nss-ecm-12.5.2024.11.06~30fbfa4/frontends/nss/ecm_nss_non_ported_ipv6.c:748:25: error: 'dev' undeclared (first use in this function)
  748 |                         dev = dev_get_by_index(&init_net, ecm_db_iface_interface_identifier_get(ii));
      |                         ^~~~

@qosmio I'm also having problems with a patch that doesn't look up-to-date:

Applying /home/openwrt-ipq/package/kernel/mac80211/patches/nss/ath11k/373-ath11k-Add-retry-mechanism-for-update_rx_qu.patch using plaintext:
patching file drivers/net/wireless/ath/ath11k/core.h
patching file drivers/net/wireless/ath/ath11k/debugfs.c
patching file drivers/net/wireless/ath/ath11k/dp.c
Hunk #1 succeeded at 1102 (offset -13 lines).
patching file drivers/net/wireless/ath/ath11k/dp.h
Hunk #1 succeeded at 23 with fuzz 1 (offset -1 lines).
Hunk #2 succeeded at 54 (offset 2 lines).
Hunk #3 succeeded at 306 (offset 2 lines).
patching file drivers/net/wireless/ath/ath11k/dp_rx.c
Hunk #5 FAILED at 805.
Hunk #8 FAILED at 900.
2 out of 8 hunks FAILED -- saving rejects to file drivers/net/wireless/ath/ath11k/dp_rx.c.rej

Hello! why im getting same error how to fix this please?

Several options:

  1. patch the file by hand (create a new patchfile and share it).
  2. update the patchfile by hand (it is possible to calculate the offsets and make changes to the context/references; its only worth if option 1. is more work.
  3. wait for a fix
  4. use options for patching like: --ignore-whitespace --fuzz x (while x is the max number of offsets to ignore). But this does nothing if the reference/context of the hunk is using differs.

Hey all, I'm sure you everyone's seen the big update I pushed over the weekend. In the process I inadvertently also pushed an update to 24.10-nss that ended up breaking ath11k patches. I am on vacation till Friday, and will post a fix as soon as I return. Just wanted to give everyone the heads up.

18 Likes

Hello everyone, I have an MX5500. I am trying to compile the firmware with qsdk12.5. I have modified the DTS, but it is currently stuck in the wired network. The wired network cannot obtain the IP. Another question is why the Qualcomm default packaging method cannot be booted, and it always prompts "waiting for root device /dev/ubiblock0_0..." I hope someone can help me, thank you!

this is a closed question one can't have answer without knowing what you changed ! I guess perhaps the clue is on your second question... please share what you changed in the dts

1 Like

This is my dts.

#include "ipq5018.dtsi"

/ {
	#address-cells = <0x2>;
	#size-cells = <0x2>;
	model = "IPQ5018/AP-MP03.1";
	compatible = "qcom,ipq5018-ap-mp03.1", "qcom,ipq5018-mp03.1", "qcom,ipq5018";
	interrupt-parent = <&intc>;

	aliases {
		sdhc1 = &sdhc_1; /* SDC1 eMMC slot */
		serial0 = &blsp1_uart1;
		serial1 = &blsp1_uart2;
		ethernet0 = "/soc/dp1";
		ethernet1 = "/soc/dp2";
	};

	chosen {
		bootargs = "console=ttyMSM0,115200,n8 rw init=/init";
		bootargs-append = " swiotlb=1 coherent_pool=2M";
		stdout-path = "serial0";
	};

	reserved-memory {
	#ifdef __IPQ_MEM_PROFILE_256_MB__
	/*            256 MB Profile
	 * +=========+==============+========================+
	 * |        |              |                         |
	 * | Region | Start Offset |          Size           |
	 * |        |              |                         |
	 * +--------+--------------+-------------------------+
	 * |        |              |                         |
	 * |        |              |                         |
	 * |  NSS   |  0x40000000  |          8MB            |
	 * |        |              |                         |
	 * |        |              |                         |
	 * +--------+--------------+-------------------------+
	 * |        |              |                         |
	 * |        |              |                         |
	 * |        |              |                         |
	 * |        |              |                         |
	 * | Linux  |  0x40800000  | Depends on total memory |
	 * |        |              |                         |
	 * |        |              |                         |
	 * |        |              |                         |
	 * +        |              |                         |
	 * +--------+--------------+-------------------------+
	 * |        |              |                         |
	 * | uboot  |  0x4A600000  |           4MB           |
	 * |        |              |                         |
	 * +--------+--------------+-------------------------+
	 * |  SBL   |  0x4AA00000  |           1MB           |
	 * +--------+--------------+-------------------------+
	 * |  smem  |  0x4AB00000  |           1MB           |
	 * +--------+--------------+-------------------------+
	 * |        |              |                         |
	 * |   TZ   |  0x4AC00000  |           4MB           |
	 * |        |              |                         |
	 * +--------+--------------+-------------------------+
	 * |        |              |                         |
	 * |        |              |                         |
	 * |        |              |                         |
	 * |   Q6   |  0x4B000000  |          23MB           |
	 * |        |              |                         |
	 * |        |              |                         |
	 * |        |              |                         |
	 * +--------+--------------+-------------------------+
	 * | M3 Dump| 0x4C700000   |          1MB            |
	 * +--------+--------------+-------------------------+
	 * | QDSS   | 0x4C800000   |          1MB            |
	 * +--------+--------------+-------------------------+
	 * |        |              |                         |
	 * |QCN9000 |  0x4C900000  |          17MB           |
	 * |        |              |                         |
	 * +--------+--------------+-------------------------+
	 * |        |              |                         |
	 * |  MHI1  |  0x4DA00000  |           9MB           |
	 * |        |              |                         |
	 * +--------+--------------+-------------------------+
	 * |                                                 |
	 * |      Rest of the memory for Linux               |
	 * |                                                 |
	 * +=================================================+
	 */
		q6_region: memory@4b000000 {
			no-map;
			reg = <0x0 0x4b000000 0x0 0x01700000>;
		};

		m3_dump@4c700000 {
			no-map;
			reg = <0x0 0x4C700000 0x0 0x100000>;
		};

		q6_etr_region:q6_etr_dump@4c800000 {
			no-map;
			reg = <0x0 0x4c800000 0x0 0x100000>;
		};

		qcn9000_pcie0: qcn9000_pcie0@4c900000 {
			no-map;
			reg = <0x0 0x4C900000 0x0 0x01100000>;
		};

	#if defined(__CNSS2__)
		mhi_region1: dma_pool1@4da00000 {
			compatible = "shared-dma-pool";
			no-map;
			reg = <0x0 0x4DA00000 0x0 0x00900000>;
		};
	#endif
	#elif __IPQ_MEM_PROFILE_512_MB__
	/*                      512 MB Profile
	 * +=========+==============+========================+
	 * |        |              |                         |
	 * | Region | Start Offset |          Size           |
	 * |        |              |                         |
	 * +--------+--------------+-------------------------+
	 * |        |              |                         |
	 * |        |              |                         |
	 * |  NSS   |  0x40000000  |          16MB           |
	 * |        |              |                         |
	 * |        |              |                         |
	 * +--------+--------------+-------------------------+
	 * |        |              |                         |
	 * |        |              |                         |
	 * |        |              |                         |
	 * |        |              |                         |
	 * | Linux  |  0x41000000  | Depends on total memory |
	 * |        |              |                         |
	 * |        |              |                         |
	 * |        |              |                         |
	 * |        |              |                         |
	 * +--------+--------------+-------------------------+
	 * |        |              |                         |
	 * | uboot  |  0x4A600000  |           4MB           |
	 * |        |              |                         |
	 * +--------+--------------+-------------------------+
	 * |  SBL   |  0x4AA00000  |           1MB           |
	 * +--------+--------------+-------------------------+
	 * |  smem  |  0x4AB00000  |           1MB           |
	 * +--------+--------------+-------------------------+
	 * |        |              |                         |
	 * |   TZ   |  0x4AC00000  |           4MB           |
	 * |        |              |                         |
	 * +--------+--------------+-------------------------+
	 * |        |              |                         |
	 * |        |              |                         |
	 * |        |              |                         |
	 * |   Q6   |  0x4B000000  |          24MB           |
	 * |        |              |                         |
	 * |        |              |                         |
	 * +--------+--------------+-------------------------+
	 * | M3 Dump|  0x4C800000  |           1MB           |
	 * +--------+--------------+-------------------------+
	 * |  QDSS  |  0x4C900000  |           1MB           |
	 * +--------+--------------+-------------------------+
	 * | caldb  |  0x4CA00000  |           2MB           |
	 * +--------+--------------+-------------------------+
	 * |        |              |                         |
	 * |QCN9000 |  0x4CC00000  |          38MB           |
	 * |        |              |                         |
	 * +--------+--------------+-------------------------+
	 * |        |              |                         |
	 * |  MHI1  |  0x4F200000  |           9MB           |
	 * |        |              |                         |
	 * +--------+--------------+-------------------------+
	 * |                                                 |
	 * |      Rest of the memory for Linux               |
	 * |                                                 |
	 * +=================================================+
	 */
		q6_region: memory@4b000000 {
			no-map;
			reg = <0x0 0x4b000000 0x0 0x01800000>;
		};

		m3_dump@4c800000 {
			no-map;
			reg = <0x0 0x4c800000 0x0 0x100000>;
		};

		q6_etr_region:q6_etr_dump@4c900000 {
			no-map;
			reg = <0x0 0x4c900000 0x0 0x100000>;
		};

		q6_caldb_region:q6_caldb_region@4ca00000 {
			no-map;
			reg = <0x0 0x4ca00000 0x0 0x200000>;
		};

		qcn9000_pcie0: qcn9000_pcie0@4cc00000 {
			no-map;
			reg = <0x0 0x4CC00000 0x0 0x02600000>;
		};

	#if defined(__CNSS2__)
		mhi_region1: dma_pool1@4f200000 {
			compatible = "shared-dma-pool";
			no-map;
			reg = <0x0 0x4f200000 0x0 0x00900000>;
		};
	#endif
	#else
	/*                      1G Profile
	 * +=========+==============+========================+
	 * |        |              |                         |
	 * | Region | Start Offset |          Size           |
	 * |        |              |                         |
	 * +--------+--------------+-------------------------+
	 * |        |              |                         |
	 * |        |              |                         |
	 * |  NSS   |  0x40000000  |          16MB           |
	 * |        |              |                         |
	 * |        |              |                         |
	 * +--------+--------------+-------------------------+
	 * |        |              |                         |
	 * |        |              |                         |
	 * |        |              |                         |
	 * |        |              |                         |
	 * | Linux  |  0x41000000  | Depends on total memory |
	 * |        |              |                         |
	 * |        |              |                         |
	 * |        |              |                         |
	 * |        |              |                         |
	 * +--------+--------------+-------------------------+
	 * |        |              |                         |
	 * | uboot  |  0x4A600000  |           4MB           |
	 * |        |              |                         |
	 * +--------+--------------+-------------------------+
	 * |  SBL   |  0x4AA00000  |           1MB           |
	 * +--------+--------------+-------------------------+
	 * |  smem  |  0x4AB00000  |           1MB           |
	 * +--------+--------------+-------------------------+
	 * |        |              |                         |
	 * |   TZ   |  0x4AC00000  |           4MB           |
	 * |        |              |                         |
	 * +--------+--------------+-------------------------+
	 * |        |              |                         |
	 * |        |              |                         |
	 * |        |              |                         |
	 * |   Q6   |  0x4B000000  |          24MB           |
	 * |        |              |                         |
	 * |        |              |                         |
	 * +--------+--------------+-------------------------+
	 * | M3 Dump|  0x4C800000  |           1MB           |
	 * +--------+--------------+-------------------------+
	 * |  QDSS  |  0x4C900000  |           1MB           |
	 * +--------+--------------+-------------------------+
	 * | caldb  |  0x4CA00000  |           2MB           |
	 * +--------+--------------+-------------------------+
	 * |        |              |                         |
	 * |QCN9000 |  0x4CC00000  |          53MB           |
	 * |        |              |                         |
	 * +--------+--------------+-------------------------+
	 * |        |              |                         |
	 * |  MHI1  |  0x50100000  |           9MB           |
	 * |        |              |                         |
	 * +--------+--------------+-------------------------+
	 * |                                                 |
	 * |      Rest of the memory for Linux               |
	 * |                                                 |
	 * +=================================================+
	 */
		q6_region: memory@4b000000 {
			no-map;
			reg = <0x0 0x4b000000 0x0 0x01800000>;
		};

		m3_dump@4c800000 {
			no-map;
			reg = <0x0 0x4c800000 0x0 0x100000>;
		};

		q6_etr_region:q6_etr_dump@4c900000 {
			no-map;
			reg = <0x0 0x4c900000 0x0 0x100000>;
		};

		q6_caldb_region:q6_caldb_region@4ca00000 {
			no-map;
			reg = <0x0 0x4ca00000 0x0 0x200000>;
		};

		qcn9000_pcie0: qcn9000_pcie0@4cc00000 {
			no-map;
			reg = <0x0 0x4CC00000 0x0 0x03500000>;
		};

	#if defined(__CNSS2__)
		mhi_region1: dma_pool1@50100000 {
			compatible = "shared-dma-pool";
			no-map;
			reg = <0x0 0x50100000 0x0 0x00900000>;
		};
	#endif
	#endif
	};

	soc {
		blsp1_uart2: serial@78b0000 {
			pinctrl-0 = <&blsp1_uart_pins>;
			pinctrl-names = "default";
		};

		qpic_bam: dma@7984000{
			status = "ok";
		};

		nand: qpic-nand@79b0000 {
			pinctrl-0 = <&qspi_nand_pins>;
			pinctrl-names = "default";
			status = "ok";
		};

		spi_0: spi@78b5000 { /* BLSP1 QUP0 */
			pinctrl-0 = <&blsp0_spi_pins>;
			pinctrl-names = "default";
			cs-select = <0>;
			status = "ok";

			m25p80@0 {
				#address-cells = <1>;
				#size-cells = <1>;
				reg = <0>;
				compatible = "n25q128a11";
				linux,modalias = "m25p80", "n25q128a11";
				spi-max-frequency = <50000000>;
				use-default-sizes;
			};
		};

		mdio0: mdio@88000 {
			status = "ok";

			ethernet-phy@0 {
				reg = <7>;
			};
		};

		mdio1: mdio@90000 {
			status = "ok";
			pinctrl-0 = <&mdio1_pins>;
			pinctrl-names = "default";
			phy-reset-gpio = <&tlmm 39 0>;
			ethernet-phy@0 {
				reg = <0>;
			};

			ethernet-phy@1 {
				reg = <1>;
			};

			ethernet-phy@2 {
				reg = <2>;
			};

			ethernet-phy@3 {
				reg = <3>;
			};

			ethernet-phy@4 {
				reg = <4>;
			};
		};

		ess-instance {
			num_devices = <0x2>;
			ess-switch@0x39c00000 {
				compatible = "qcom,ess-switch-ipq50xx";
				device_id = <0>;
				switch_mac_mode = <0xf>; /* mac mode for uniphy instance*/
				cmnblk_clk = "internal_96MHz"; /* cmnblk clk*/
				qcom,port_phyinfo {
					port@0 {
						port_id = <1>;
						phy_address = <7>;
					};
					port@1 {
						port_id = <2>;
						forced-speed = <1000>;
						forced-duplex = <1>;
					};
				};
				led_source@0 {
					source = <0>;
					mode = "normal";
					speed = "all";
					blink_en = "enable";
					active = "high";
				};
			};
			ess-switch1@1 {
				compatible = "qcom,ess-switch-qca83xx";
				device_id = <1>;
				switch_access_mode = "mdio";
				mdio-bus = <&mdio1>;
				reset_gpio = <&tlmm 0x27 0>;
				switch_cpu_bmp = <0x40>;  /* cpu port bitmap */
				switch_lan_bmp = <0x38>; /* lan port bitmap */
				switch_wan_bmp = <0x4>;  /* wan port bitmap */
				qca,ar8327-initvals = <
						0x00004 0x7600000   /* PAD0_MODE */
						0x00008 0x1000000   /* PAD5_MODE */
						0x0000c 0x80        /* PAD6_MODE */
						0x00010 0x2613a0    /* PORT6 FORCE MODE*/
						0x000e4 0xaa545     /* MAC_POWER_SEL */
						0x000e0 0xc74164de  /* SGMII_CTRL */
						0x0007c 0x4e        /* PORT0_STATUS */
						0x00094 0x4e        /* PORT6_STATUS */
				>;
				qcom,port_phyinfo {
					port@0 {
						port_id = <1>;
						phy_address = <0>;
					};
					port@1 {
						port_id = <2>;
						phy_address = <1>;
					};
					port@2 {
						port_id = <3>;
						phy_address = <2>;
					};
					port@3 {
						port_id = <4>;
						phy_address = <3>;
					};
					port@4 {
						port_id = <5>;
						phy_address = <4>;
					};
				};
			};
		};

		ess-uniphy@98000 {
			status = "disabled";
		};

		qcom,sps {
			status = "ok";
		};

		qcom,diag@0 {
			status = "ok";
		};

		dp1 {
			device_type = "network";
			compatible = "qcom,nss-dp";
			clocks = <&gcc GCC_SNOC_GMAC1_AXI_CLK>;
			clock-names = "nss-snoc-gmac-axi-clk";
			qcom,id = <2>;
			reg = <0x39D00000 0x10000>;
			interrupts = <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>;
			qcom,mactype = <2>;
			local-mac-address = [000000000000];
			phy-mode = "sgmii";
			qcom,rx-page-mode = <0>;
		};

		rpm_etm0 {
			status = "disabled";
		};

		pcm: pcm@0xA3C0000{
			status = "disabled";
		};
	};

	qcom,test@0 {
		status = "ok";
	};

	thermal-zones {
		status = "ok";
	};
};

&tlmm {
	pinctrl-0 = <&blsp0_uart_pins>;
	pinctrl-names = "default";

	blsp0_uart_pins: blsp0_uart_pins {
		blsp0_uart_rx_tx {
			pins = "gpio20", "gpio21";
			function = "blsp0_uart0";
			bias-disable;
		};
	};

	blsp1_uart_pins: blsp1_uart_pins {
		blsp1_uart_rx_tx {
			pins = "gpio23", "gpio25", "gpio24", "gpio26";
			function = "blsp1_uart2";
			bias-disable;
		};
	};

	blsp0_spi_pins: blsp0_spi_pins {
		mux {
			pins = "gpio10", "gpio11", "gpio12", "gpio13";
			function = "blsp0_spi";
			drive-strength = <2>;
			bias-disable;
		};
	};

	qspi_nand_pins: qspi_nand_pins {
		qspi_clock {
				pins = "gpio9";
				function = "qspi_clk";
				drive-strength = <8>;
				bias-disable;
			};

		qspi_cs {
				pins = "gpio8";
				function = "qspi_cs";
				drive-strength = <8>;
				bias-disable;
			};

		qspi_data {
				pins = "gpio4", "gpio5", "gpio6", "gpio7";
				function = "qspi_data";
				drive-strength = <8>;
				bias-disable;
			};
	};

	mdio1_pins: mdio_pinmux {
		mux_0 {
			pins = "gpio36";
			function = "mdc";
			drive-strength = <8>;
			bias-pull-up;
		};

		mux_1 {
			pins = "gpio37";
			function = "mdio";
			drive-strength = <8>;
			bias-pull-up;
		};
	};

	i2c_pins: i2c_pins {
		i2c_scl {
			pins = "gpio25";
			function = "blsp2_i2c1";
			drive-strength = <8>;
			bias-disable;
		};

		i2c_sda {
			pins = "gpio26";
			function = "blsp2_i2c1";
			drive-strength = <8>;
			bias-disable;
		};
	};

	button_pins: button_pins {
		wps_button {
			pins = "gpio27";
			function = "gpio";
			drive-strength = <8>;
			bias-pull-up;
		};

		reset_button {
			pins = "gpio28";
			function = "gpio";
			drive-strength = <8>;
			bias-pull-up;
		};
	};

	pwm_pinmux {
		mux_1 {
			pins = "gpio1";
			function = "pwm1";
			drive-strength = <8>;
		};

		mux_2 {
			pins = "gpio30";
			function = "pwm3";
			drive-strength = <8>;
		};

		mux_3 {
			pins = "gpio46";
			function = "pwm0";
			drive-strength = <8>;
		};
	};
};

&soc {
	gpio_keys {
		compatible = "gpio-keys";
		pinctrl-0 = <&button_pins>;
		pinctrl-names = "default";

		button@1 {
			label = "wps";
			linux,code = <KEY_WPS_BUTTON>;
			gpios = <&tlmm 27 GPIO_ACTIVE_LOW>;
			linux,input-type = <1>;
			debounce-interval = <60>;
		};

		button@2 {
			label = "reset";
			linux,code = <KEY_RESTART>;
			gpios = <&tlmm 28 GPIO_ACTIVE_LOW>;
			linux,input-type = <1>;
			debounce-interval = <60>;
		};
	};
};

&usb3 {
	qcom,multiplexed-phy;
	qcom,phy-mux-regs = <&tcsr_q6_block 0x2540>;
	device-power-gpio = <&tlmm 24 1>;
	status = "ok";
};

&eud {
	status = "ok";
};

&pcie_x1 {
	status = "disabled";
	perst-gpio = <&tlmm 18 GPIO_ACTIVE_LOW>;
};

&pcie_x2 {
	status = "ok";
	perst-gpio = <&tlmm 15 GPIO_ACTIVE_LOW>;
};

&wcss {
	status = "ok";
};

&q6v5_wcss {
	#ifdef __IPQ_MEM_PROFILE_256_MB__
		memory-region = <&q6_region>, <&q6_etr_region>;
	#else
		memory-region = <&q6_region>, <&q6_etr_region>,
				<&q6_caldb_region>;
	#endif
};

&i2c_0 {
	pinctrl-0 = <&i2c_pins>;
	pinctrl-names = "default";
};

&blsp1_uart1 {
	status = "ok";
};

&ssuniphy_0 {
	status = "ok";
};

&hs_m31phy_0 {
	status = "ok";
};

&pcie_x2phy {
	status = "ok";
};

&pcie_x1_rp {
	status = "disabled";

	mhi_0: qcom,mhi@0 {
		reg = <0 0 0 0 0 >;
	};
};

&pcie_x2_rp {
	status = "ok";

	mhi_1: qcom,mhi@1 {
		reg = <0 0 0 0 0 >;
		qrtr_instance_id = <0x20>;
		#address-cells = <0x2>;
		#size-cells = <0x2>;
#if defined(__CNSS2__)
		memory-region = <&mhi_region1>;
#else
		base-addr = <0x4CC00000>;
		m3-dump-addr = <0x4E000000>;
		etr-addr = <0x4E100000>;
		qcom,caldb-addr = <0x4E200000>;
		pageable-addr = <0x4EA00000>;
		qcom,tgt-mem-mode = <0x1>;
#endif
	};
};

&wifi0 {
	/* IPQ5018 */
	mem-region = <&q6_region>;
	qcom,board_id = <0x24>;

	qcom,bdf-addr = <0x4BA00000 0x4BA00000 0x4BA00000
		0x0 0x0>;
	qcom,caldb-addr = <0x4CA00000 0x4CA00000 0x0 0x0 0x0>;
	qcom,caldb-size = <0x200000>;
	status = "ok";
};

&wifi3 {
        /* QCN9000 5G */
        board_id = <0xa0>;
	hremote_node = <&qcn9000_pcie0>;
#ifdef __IPQ_MEM_PROFILE_256_MB__
	/* QCN9000 tgt-mem-mode=2 layout - 17MB
	 * +=========+==============+=========+
	 * |  Region | Start Offset |   Size  |
	 * +---------+--------------+---------+
	 * | HREMOTE |  0x4C900000  |   11MB  |
	 * +---------+--------------+---------+
	 * | M3 Dump |  0x4D400000  |   1MB   |
	 * +---------+--------------+---------+
	 * |   ETR   |  0x4D500000  |   1MB   |
	 * +---------+--------------+---------+
	 * | Pageable|  0x4D600000  |   4MB   |
	 * +==================================+
	 */
	base-addr = <0x4C900000>;
	m3-dump-addr = <0x4D400000>;
	etr-addr = <0x4D500000>;
	caldb-addr = <0>;
	pageable-addr = <0x4D600000>;
	caldb-size = <0>;
	hremote-size = <0xB00000>;
	tgt-mem-mode = <0x2>;
	pageable-size = <0x400000>;
#elif __IPQ_MEM_PROFILE_512_MB__
	/* QCN9000 tgt-mem-mode=1 layout - 38MB
	 * +=========+==============+=========+
	 * |  Region | Start Offset |   Size  |
	 * +---------+--------------+---------+
	 * | HREMOTE |  0x4CC00000  |   20MB  |
	 * +---------+--------------+---------+
	 * | M3 Dump |  0x4E000000  |   1MB   |
	 * +---------+--------------+---------+
	 * |   ETR   |  0x4E100000  |   1MB   |
	 * +---------+--------------+---------+
	 * |  Caldb  |  0x4E200000  |   8MB   |
	 * +---------+--------------+---------+
	 * | Pageable|  0x4EA00000  |   8MB   |
	 * +==================================+
	 */
	base-addr = <0x4CC00000>;
	m3-dump-addr = <0x4E000000>;
	etr-addr = <0x4E100000>;
	caldb-addr = <0x4E200000>;
	pageable-addr = <0x4EA00000>;
	caldb-size = <0x800000>;
	hremote-size = <0x1400000>;
	tgt-mem-mode = <0x1>;
	pageable-size = <0x800000>;
#else
	/* QCN9000 tgt-mem-mode=0 layout - 53MB
	 * +=========+==============+=========+
	 * |  Region | Start Offset |   Size  |
	 * +---------+--------------+---------+
	 * | HREMOTE |  0x4CC00000  |   35MB  |
	 * +---------+--------------+---------+
	 * | M3 Dump |  0x4EF00000  |   1MB   |
	 * +---------+--------------+---------+
	 * |   ETR   |  0x4F000000  |   1MB   |
	 * +---------+--------------+---------+
	 * |  Caldb  |  0x4F100000  |   8MB   |
	 * +---------+--------------+---------+
	 * | Pageable|  0x4F900000  |   8MB   |
	 * +==================================+
	 */
	base-addr = <0x4CC00000>;
	m3-dump-addr = <0x4EF00000>;
	etr-addr = <0x4F000000>;
	caldb-addr = <0x4F100000>;
	pageable-addr = <0x4F900000>;
	hremote-size = <0x2300000>;
	caldb-size = <0x800000>;
	tgt-mem-mode = <0x0>;
	pageable-size = <0x800000>;
#endif
	status = "ok";
};

hello,Can this repository compile uboot about IPQ8076A, and if not, what do I need to do?

Built an image based on your fixed patches (for AW1000) and works fine. Thanks!

1 Like