Support for Netgear Orbi SXK80

Just to rule this out: Can you post the output of cat /sys/kernel/debug/clk/clk_summary when the Ethernet ports aren't working?

Apparently it is normal that WiFi is broken on recent initramfs builds, but Ethernet should be working.

@Flole
A lot of things have been changed in ipq807x since your PR for the SXK80.
The ethernet phy handling is different for example:

I think it's better to "rebase" the dtsi/dts on one of the latest device dts from openwrt master.

@kirdes
I noticed this last night when I was looking at the DTS for the NBG7815. If I get a chance I'll see if I can change it over to the newer format.

As you say, there's been a lot of changes to ipq807x so I'm still catching up trying see what the breaking ones might have been. What I hadn't realised though is that the support for the 'legacy' DTS style looks to have been removed looking through the above discussion.

Changing those should be rather easy. I'll try to get that done either today or tomorrow. Let's hope that's all. Then what's left is figuring out how to generate a DNI image to flash and double-check the sysupgrade procedure. And of course document the install procedure.

Is a DNI image needed to flash it or can the standard sysupgrade image be written once booted from initramfs? Since we’re going to update the bootcmd anyway, does it make sense to keep it as close to the original Netgear commands (post secure boot checks) or can it be simplified?

I have a version of the original commands minus secureboot somewhere, so I was planning to use those for easy recovery to the stock Firmware. That makes DNI a requirement as the original image is a DNI image aswell I think, meaning U-Boot expects a DNI image. I'll try to find the modified commands and post them.

I had the following stashed away, which I think you posted a while back:

setenv bootdni 'run bootdni2'
setenv bootdni1 'loadn_dniimg 0 0x1980000 0x40000000; calc_rootadd 0x1980000 0x40000000; iminfo 0x40000028; if test $? -ne 0; then echo \"linux checksum error\"; boot_partition_set 2; reset; fi; iminfo $rootfs_addr_for_fw_checking; if test $? -ne 0; then echo \"rootfs checksum error\"; boot_partition_set 2; reset; fi; nand read 0x40000000 0x1980000 0x06d00000;'
setenv bootdni2 'loadn_dniimg 0 0x8680000 0x40000000; calc_rootadd 0x8680000 0x40000000; iminfo 0x40000028; if test $? -ne 0; then echo \"linux checksum error\"; boot_partition_set 1; reset; fi; iminfo $rootfs_addr_for_fw_checking; if test $? -ne 0; then echo \"rootfs checksum error\"; boot_partition_set 1; reset; fi; nand read 0x40000000 0x8680000 0x06d00000;'
saveenv
reset

From memory, these are the same commands (in the GPL source) that are run after the secure boot checks.

Ah, yes exactly.

I’ve had a stab at updating the DTS and pushed it to the github branch.

The Wi-Fi and wired interfaces are picked up including the 2.5G port, but I can’t get my head around how the MAC address is handled for the 2.5G port so end up seeing this and getting a random? MAC assigned:

[    3.045868] Generic PHY 90000.mdio-1:01: attached PHY driver (mii_bus:phy_addr=90000.mdio-1:01, irq=POLL)
[    3.049984] nss-dp 3a001200.dp2 lan2: Registered netdev lan2(qcom-id:2)
[    3.059394] Generic PHY 90000.mdio-1:02: attached PHY driver (mii_bus:phy_addr=90000.mdio-1:02, irq=POLL)
[    3.066064] nss-dp 3a001400.dp3 lan3: Registered netdev lan3(qcom-id:3)
[    3.075562] Generic PHY 90000.mdio-1:03: attached PHY driver (mii_bus:phy_addr=90000.mdio-1:03, irq=POLL)
[    3.082252] nss-dp 3a001600.dp4 lan4: Registered netdev lan4(qcom-id:4)
[    3.091679] Generic PHY 90000.mdio-1:04: attached PHY driver (mii_bus:phy_addr=90000.mdio-1:04, irq=POLL)
[    3.098348] nss-dp 3a001800.dp5 lan5: Registered netdev lan5(qcom-id:5)
[    3.107696] GMAC6(ffffff80025c58c0) Invalid MAC@ - using 7e:5c:b6:11:6d:39
[    3.314591] QCA808X ethernet 90000.mdio-1:1c: attached PHY driver (mii_bus:phy_addr=90000.mdio-1:1c, irq=POLL)
[    3.315150] nss-dp 3a001a00.dp6 wan: Registered netdev wan(qcom-id:6)

I couldn’t decide how to sanely label the ports, so I went with the number that’s printed above the port as that’s consistent across devices. I guess it makes sense to keep the SXR and SXS the same and just treat the 2.5G port on the SXS as a WAN by default.

The MAC addresses are coming from u-boot. But there are only 4 IIRC, so the 5th needs to be calculated/extracted manually.

Thanks, I'll revert the DTS to ethernet6 and looking at the #defines in the opening post it makes more sense how they are assigned now.

I've started looking at the partition layout, in the stock firmware it looks like this:

[    4.601802] nand: device found, Manufacturer ID: 0xef, Chip ID: 0xac
[    4.606321] nand: ONFI 10-Compliant Winbond W29N04GZ
[    4.612813] nand: 512 MiB, SLC, erase size: 128 KiB, page size: 2048, OOB size: 64
[    4.617874] 37 ofpart partitions found on MTD device qcom_nand.0
[    4.625153] Creating 37 MTD partitions on "qcom_nand.0":
[    4.631305] 0x000000000000-0x000000100000 : "0:SBL1"
[    4.638127] 0x000000100000-0x000000200000 : "0:MIBIB"
[    4.642923] 0x000000200000-0x000000280000 : "0:BOOTCONFIG"
[    4.647508] 0x000000280000-0x000000300000 : "0:BOOTCONFIG1"
[    4.652901] 0x000000300000-0x000000600000 : "0:QSEE"
[    4.660274] 0x000000600000-0x000000900000 : "0:QSEE_1"
[    4.665487] 0x000000900000-0x000000980000 : "0:DEVCFG"
[    4.668503] 0x000000980000-0x000000a00000 : "0:DEVCFG_1"
[    4.673637] 0x000000a00000-0x000000a80000 : "0:APDP"
[    4.679110] 0x000000a80000-0x000000b00000 : "0:APDP_1"
[    4.684037] 0x000000b00000-0x000000b80000 : "0:RPM"
[    4.688978] 0x000000b80000-0x000000c00000 : "0:RPM_1"
[    4.693754] 0x000000c00000-0x000000c80000 : "0:CDT"
[    4.698995] 0x000000c80000-0x000000d00000 : "0:CDT_1"
[    4.703658] 0x000000d00000-0x000000d80000 : "0:APPSBLENV"
[    4.708899] 0x000000d80000-0x000000e80000 : "0:APPSBL"
[    4.714693] 0x000000e80000-0x000000f80000 : "0:APPSBL_1"
[    4.719686] 0x000000f80000-0x000001000000 : "0:ART"
[    4.724795] 0x000001000000-0x000001080000 : "0:ART.bak"
[    4.729367] 0x000001080000-0x000001180000 : "config"
[    4.734958] 0x000001180000-0x000001280000 : "boarddata1"
[    4.740159] 0x000001280000-0x000001380000 : "boarddata2"
[    4.745476] 0x000001380000-0x000001480000 : "pot"
[    4.750758] 0x000001480000-0x000001980000 : "dnidata"
[    4.758435] 0x000001980000-0x000008680000 : "firmware"
[    4.842439] 0x000001980000-0x000001fa0000 : "kernel"
[    4.847775] 0x000001fa0000-0x000008680000 : "rootfs"
[    4.926997] boot_from_dni_dual_firmware: boot partition index in boarddata2 is 0x31
[    4.927023] boot_from_dni_dual_firmware: booting rootfs from rootfs
[    4.933452] mtd: device 26 (rootfs) set to be root filesystem
[    4.940365] mtd: find squashfs magic at 0x1fc0000 of qcom_nand.0
[    4.945616] mtd: find squashfs magic at 0x20000 of rootfs
[    4.951679] remap_blocks_in_rootfs_partition: remapped partition rootfs: 0x000001fc0000-0x000008680000
[    4.956991] create_block_mapping: create logic to physic blocks mapping for rootfs
[    5.043954] 0x000008680000-0x00000f380000 : "firmware2"
[    5.127430] 0x000008680000-0x000008ca0000 : "kernel2"
[    5.132771] 0x000008ca0000-0x00000f380000 : "rootfs2"
[    5.170316] random: nonblocking pool is initialized
[    5.212642] mtd: find squashfs magic at 0x8cc0000 of qcom_nand.0
[    5.212666] mtd: find squashfs magic at 0x20000 of rootfs2
[    5.217721] remap_blocks_in_rootfs_partition: remapped partition rootfs2: 0x000008cc0000-0x00000f380000
[    5.223007] create_block_mapping: create logic to physic blocks mapping for rootfs2
[    5.310311] 0x00000f380000-0x00000f880000 : "language"
[    5.314782] 0x00000f880000-0x00000f980000 : "cert"
[    5.316204] 0x00000f980000-0x00000fa00000 : "mtdoops"
[    5.320136] 0x00000fa00000-0x00000fc00000 : "router_analytics"
[    5.326394] 0x00000fc00000-0x000014000000 : "ntgrdata"
[    5.382467] 0x000014000000-0x000020000000 : "reserved"
[    5.529170] 0x000000000000-0x000020000000 : "nand0"

However with the latest code the log output looks like this:

[    1.050380] nand: device found, Manufacturer ID: 0xef, Chip ID: 0xac
[    1.065701] nand: Winbond W29N04GZ
[    1.072133] nand: 512 MiB, SLC, erase size: 128 KiB, page size: 2048, OOB size: 64
[    1.082669] 23 qcomsmem partitions found on MTD device qcom_nand.0
[    1.082889] Creating 23 MTD partitions on "qcom_nand.0":
[    1.089062] 0x000000000000-0x000000100000 : "0:sbl1"
[    1.095897] 0x000000100000-0x000000200000 : "0:mibib"
[    1.100708] 0x000000200000-0x000000280000 : "0:bootconfig"
[    1.105205] 0x000000280000-0x000000300000 : "0:bootconfig1"
[    1.110620] 0x000000300000-0x000000600000 : "0:qsee"
[    1.118079] 0x000000600000-0x000000900000 : "0:qsee_1"
[    1.123380] 0x000000900000-0x000000980000 : "0:devcfg"
[    1.126199] 0x000000980000-0x000000a00000 : "0:devcfg_1"
[    1.131408] 0x000000a00000-0x000000a80000 : "0:apdp"
[    1.136786] 0x000000a80000-0x000000b00000 : "0:apdp_1"
[    1.141786] 0x000000b00000-0x000000b80000 : "0:rpm"
[    1.146707] 0x000000b80000-0x000000c00000 : "0:rpm_1"
[    1.151495] 0x000000c00000-0x000000c80000 : "0:cdt"
[    1.156672] 0x000000c80000-0x000000d00000 : "0:cdt_1"
[    1.161404] 0x000000d00000-0x000000d80000 : "0:appsblenv"
[    1.166569] 0x000000d80000-0x000000e80000 : "0:appsbl"
[    1.172437] 0x000000e80000-0x000000f80000 : "0:appsbl_1"
[    1.177419] 0x000000f80000-0x000001000000 : "0:art"
[    1.182509] 0x000001000000-0x000003e00000 : "rootfs"
[    1.224755] mtd: setting mtd18 (rootfs) as root device
[    1.225075] mtdsplit: no squashfs found in "rootfs"
[    1.228837] 0x000003e00000-0x000004700000 : "0:wififw"
[    1.241321] 0x000004700000-0x000007500000 : "rootfs_1"
[    1.279921] 0x000007500000-0x000007e00000 : "0:wififw_1"
[    1.287868] 0x000007e00000-0x000007e80000 : "0:ethphyfw"

I'm guessing that's going to trample over the config data if it's flashed so wondering if the partition layout needs to be defined as fixed-partitions in the DTS? Unless the parser doesn't like the "ART.bak" label which is where it starts to differ?

Yeah, apparently Netgear did this stupid stuff again....

Moving attention to the SXR rather than the SXS I'm seeing an issue with the wifi regulatory data, here's a snippet from the OpenWrt bootlog of the SXR:

[    7.590521] ath11k c000000.wifi: ipq8074 hw2.0
[    7.590557] ath11k c000000.wifi: FW memory mode: 0
[    7.594137] remoteproc remoteproc0: powering up cd00000.q6v5_wcss
[    7.611286] remoteproc remoteproc0: Booting fw image IPQ8074/q6_fw.mdt, size 668
[    8.763325] remoteproc remoteproc0: remote processor cd00000.q6v5_wcss is now up
[    8.765532] ath11k c000000.wifi: qmi ignore invalid mem req type 3
[    8.770426] ath11k c000000.wifi: chip_id 0x0 chip_family 0x0 board_id 0xff soc_id 0xffffffff
[    8.770447] batman_adv: B.A.T.M.A.N. advanced 2023.0-openwrt-1 (compatibility version 15) loaded
[    8.775789] ath11k c000000.wifi: fw_version 0x250a04a5 fw_build_timestamp 2021-12-20 07:09 fw_build_id WLAN.HK.2.5.0.1-01208-QCAHKSWPL_SILICONZ-1
[    8.796441] kmodloader: done loading kernel modules from /etc/modules.d/*
[    9.101040] ath11k c000000.wifi: No regulatory rules available in the event info
[    9.101089] ath11k c000000.wifi: failed to extract regulatory info from received event
[    9.107542] ------------[ cut here ]------------
[    9.115237] WARNING: CPU: 0 PID: 482 at ath11k_hal_rx_sw_mon_ring_buf_paddr_get+0x3194/0x49f0 [ath11k]
[    9.120020] Modules linked in: pppoe ppp_async nft_fib_inet nf_flow_table_ipv6 nf_flow_table_ipv4 nf_flow_table_inet batman_adv ath11k_ahb ath11k pppox ppp_generic nft_reject_ipv6 nft_reject_ipv4 nft_reject_inet nft_reject nft_redir nft_quota nft_objref 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_counter nft_chain_nat nf_tables nf_nat nf_flow_table nf_conntrack mac80211 cfg80211 slhc qrtr_smd qrtr qmi_helpers ns nfnetlink nf_reject_ipv6 nf_reject_ipv4 nf_log_syslog nf_defrag_ipv6 nf_defrag_ipv4 libcrc32c crc_ccitt compat ip6_gre ip_gre gre ip6_tunnel tunnel6 ip_tunnel vxlan udp_tunnel ip6_udp_tunnel seqiv jitterentropy_rng drbg michael_mic hmac cmac leds_gpio xhci_plat_hcd xhci_pci xhci_hcd dwc3 dwc3_qcom qca_nss_dp qca_ssdk gpio_button_hotplug aquantia hwmon crc32c_generic
[    9.181806] CPU: 0 PID: 482 Comm: sugov:0 Not tainted 5.15.96 #0
[    9.204041] Hardware name: Netgear SXR80 (DT)
[    9.210114] pstate: 60400005 (nZCv daif +PAN -UAO -TCO -DIT -SSBS BTYPE=--)
[    9.214372] pc : ath11k_hal_rx_sw_mon_ring_buf_paddr_get+0x3194/0x49f0 [ath11k]
[    9.221143] lr : ath11k_hal_rx_sw_mon_ring_buf_paddr_get+0x3194/0x49f0 [ath11k]
[    9.228435] sp : ffffffc008003c20
[    9.235719] x29: ffffffc008003c20 x28: 0000000000000044 x27: ffffffc008b62010
[    9.239199] x26: 000000000000004c x25: 0000000000000006 x24: 0000000000000000
[    9.246318] x23: 0000000000000000 x22: ffffff8002d8e000 x21: ffffff8004346500
[    9.253434] x20: ffffff8004660000 x19: ffffff8004363300 x18: ffffffc008aa7b08
[    9.260553] x17: 65636572206d6f72 x16: 66206f666e692079 x15: 0000000000000384
[    9.267671] x14: 000000000000012c x13: ffffffc008003818 x12: ffffffc008affb08
[    9.274789] x11: 0000000000000004 x10: ffffffc008affb08 x9 : 0000000000000000
[    9.281907] x8 : ffffffc008aa7ab8 x7 : ffffffc008aa7b08 x6 : 00000000ffffefff
[    9.289025] x5 : ffffffc008affb08 x4 : 00000000ffffefff x3 : 0000000000000000
[    9.296143] x2 : 0000000000000000 x1 : ffffff8002abde00 x0 : 000000000000004a
[    9.303263] Call trace:
[    9.310371]  ath11k_hal_rx_sw_mon_ring_buf_paddr_get+0x3194/0x49f0 [ath11k]
[    9.312635]  ath11k_htc_rx_completion_handler+0x464/0x610 [ath11k]
[    9.319579]  ath11k_ce_per_engine_service+0x2e0/0x3f0 [ath11k]
[    9.325828]  0xffffffc000cf8c94
[    9.331639]  tasklet_action_common.constprop.0+0x144/0x180
[    9.334681]  tasklet_action+0x28/0x34
[    9.340234]  _stext+0x10c/0x28c
[    9.343964]  irq_exit+0xbc/0x100
[    9.346916]  handle_domain_irq+0x64/0x90
[    9.350391]  gic_handle_irq+0x74/0xa0
[    9.354296]  call_on_irq_stack+0x28/0x54
[    9.357856]  do_interrupt_handler+0x54/0x60
[    9.361850]  el1_interrupt+0x30/0x50
[    9.365755]  el1h_64_irq_handler+0x18/0x24
[    9.369574]  el1h_64_irq+0x78/0x7c
[    9.373479]  dev_pm_opp_set_rate+0xe0/0x250
[    9.376867]  set_target+0x30/0x40
[    9.380944]  __cpufreq_driver_target+0x114/0x27c
[    9.384419]  sugov_work+0x80/0xc4
[    9.389103]  kthread_worker_fn+0xfc/0x1d0
[    9.392318]  kthread+0x120/0x130
[    9.396309]  ret_from_fork+0x10/0x20
[    9.399608] ---[ end trace 36f5b62cd203aa19 ]---
[    9.404143] ath11k c000000.wifi: No regulatory rules available in the event info
[    9.407783] ath11k c000000.wifi: failed to extract regulatory info from received event
[    9.415212] ------------[ cut here ]------------
[    9.422877] WARNING: CPU: 0 PID: 0 at ath11k_hal_rx_sw_mon_ring_buf_paddr_get+0x3194/0x49f0 [ath11k]
[    9.427660] Modules linked in: pppoe ppp_async nft_fib_inet nf_flow_table_ipv6 nf_flow_table_ipv4 nf_flow_table_inet batman_adv ath11k_ahb ath11k pppox ppp_generic nft_reject_ipv6 nft_reject_ipv4 nft_reject_inet nft_reject nft_redir nft_quota nft_objref 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_counter nft_chain_nat nf_tables nf_nat nf_flow_table nf_conntrack mac80211 cfg80211 slhc qrtr_smd qrtr qmi_helpers ns nfnetlink nf_reject_ipv6 nf_reject_ipv4 nf_log_syslog nf_defrag_ipv6 nf_defrag_ipv4 libcrc32c crc_ccitt compat ip6_gre ip_gre gre ip6_tunnel tunnel6 ip_tunnel vxlan udp_tunnel ip6_udp_tunnel seqiv jitterentropy_rng drbg michael_mic hmac cmac leds_gpio xhci_plat_hcd xhci_pci xhci_hcd dwc3 dwc3_qcom qca_nss_dp qca_ssdk gpio_button_hotplug aquantia hwmon crc32c_generic
[    9.489272] CPU: 0 PID: 0 Comm: swapper/0 Tainted: G        W         5.15.96 #0
[    9.511508] Hardware name: Netgear SXR80 (DT)
[    9.518969] pstate: 60400005 (nZCv daif +PAN -UAO -TCO -DIT -SSBS BTYPE=--)
[    9.523226] pc : ath11k_hal_rx_sw_mon_ring_buf_paddr_get+0x3194/0x49f0 [ath11k]
[    9.529997] lr : ath11k_hal_rx_sw_mon_ring_buf_paddr_get+0x3194/0x49f0 [ath11k]
[    9.537289] sp : ffffffc008003c20
[    9.544574] x29: ffffffc008003c20 x28: 0000000000000044 x27: ffffffc008b62010
[    9.548053] x26: 00000000000000dc x25: 000000000000000a x24: 0000000000000000
[    9.555171] x23: 0000000000000000 x22: ffffff8002d8e000 x21: ffffff8004346500
[    9.562289] x20: ffffff8004660000 x19: ffffff8004363400 x18: ffffffc008aa7b08
[    9.569408] x17: 65636572206d6f72 x16: 66206f666e692079 x15: 000000000000040b
[    9.576524] x14: 0000000000000159 x13: ffffffc008003818 x12: ffffffc008affb08
[    9.583643] x11: 0000000000000004 x10: ffffffc008affb08 x9 : 0000000000000000
[    9.590761] x8 : ffffffc008aa7ab8 x7 : ffffffc008aa7b08 x6 : 00000000ffffefff
[    9.597879] x5 : ffffffc008affb08 x4 : 00000000ffffefff x3 : 0000000000000000
[    9.604996] x2 : 0000000000000000 x1 : ffffffc008a9e040 x0 : 000000000000004a
[    9.612116] Call trace:
[    9.619226]  ath11k_hal_rx_sw_mon_ring_buf_paddr_get+0x3194/0x49f0 [ath11k]
[    9.621490]  ath11k_htc_rx_completion_handler+0x464/0x610 [ath11k]
[    9.628432]  ath11k_ce_per_engine_service+0x2e0/0x3f0 [ath11k]
[    9.634683]  0xffffffc000cf8c94
[    9.640493]  tasklet_action_common.constprop.0+0x144/0x180
[    9.643536]  tasklet_action+0x28/0x34
[    9.649087]  _stext+0x10c/0x28c
[    9.652819]  irq_exit+0xbc/0x100
[    9.655771]  handle_domain_irq+0x64/0x90
[    9.659245]  gic_handle_irq+0x74/0xa0
[    9.663150]  call_on_irq_stack+0x28/0x54
[    9.666709]  do_interrupt_handler+0x54/0x60
[    9.670702]  el1_interrupt+0x30/0x50
[    9.674608]  el1h_64_irq_handler+0x18/0x24
[    9.678428]  el1h_64_irq+0x78/0x7c
[    9.682334]  arch_cpu_idle+0x18/0x2c
[    9.685719]  default_idle_call+0x20/0x70
[    9.689452]  do_idle+0x214/0x240
[    9.693358]  cpu_startup_entry+0x24/0x60
[    9.696572]  rest_init+0xc8/0xe0
[    9.700476]  arch_call_rest_init+0x10/0x1c
[    9.703689]  start_kernel+0x6a8/0x6cc
[    9.707594]  __primary_switched+0xa0/0xa8
[    9.711329] ---[ end trace 36f5b62cd203aa1a ]---
[    9.715368] ath11k c000000.wifi: No regulatory rules available in the event info
[    9.720023] ath11k c000000.wifi: failed to extract regulatory info from received event
[    9.727418] ------------[ cut here ]------------
[    9.735114] WARNING: CPU: 0 PID: 0 at ath11k_hal_rx_sw_mon_ring_buf_paddr_get+0x3194/0x49f0 [ath11k]
[    9.739897] Modules linked in: pppoe ppp_async nft_fib_inet nf_flow_table_ipv6 nf_flow_table_ipv4 nf_flow_table_inet batman_adv ath11k_ahb ath11k pppox ppp_generic nft_reject_ipv6 nft_reject_ipv4 nft_reject_inet nft_reject nft_redir nft_quota nft_objref 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_counter nft_chain_nat nf_tables nf_nat nf_flow_table nf_conntrack mac80211 cfg80211 slhc qrtr_smd qrtr qmi_helpers ns nfnetlink nf_reject_ipv6 nf_reject_ipv4 nf_log_syslog nf_defrag_ipv6 nf_defrag_ipv4 libcrc32c crc_ccitt compat ip6_gre ip_gre gre ip6_tunnel tunnel6 ip_tunnel vxlan udp_tunnel ip6_udp_tunnel seqiv jitterentropy_rng drbg michael_mic hmac cmac leds_gpio xhci_plat_hcd xhci_pci xhci_hcd dwc3 dwc3_qcom qca_nss_dp qca_ssdk gpio_button_hotplug aquantia hwmon crc32c_generic
[    9.801509] CPU: 0 PID: 0 Comm: swapper/0 Tainted: G        W         5.15.96 #0
[    9.823747] Hardware name: Netgear SXR80 (DT)
[    9.831207] pstate: 60400005 (nZCv daif +PAN -UAO -TCO -DIT -SSBS BTYPE=--)
[    9.835465] pc : ath11k_hal_rx_sw_mon_ring_buf_paddr_get+0x3194/0x49f0 [ath11k]
[    9.842236] lr : ath11k_hal_rx_sw_mon_ring_buf_paddr_get+0x3194/0x49f0 [ath11k]
[    9.849529] sp : ffffffc008003c20
[    9.856813] x29: ffffffc008003c20 x28: 0000000000000044 x27: ffffffc008b62010
[    9.860291] x26: 00000000000000dc x25: 000000000000000a x24: 0000000000000000
[    9.867410] x23: 0000000000000000 x22: ffffff8002d8e000 x21: ffffff8004346500
[    9.874528] x20: ffffff8004660000 x19: ffffff8004363500 x18: ffffffc008aa7b08
[    9.881646] x17: 65636572206d6f72 x16: 66206f666e692079 x15: 0000000000000495
[    9.888765] x14: 0000000000000187 x13: ffffffc008003818 x12: ffffffc008affb08
[    9.895882] x11: 0000000000000004 x10: ffffffc008affb08 x9 : 0000000000000000
[    9.903000] x8 : ffffffc008aa7ab8 x7 : ffffffc008aa7b08 x6 : 00000000ffffefff
[    9.910118] x5 : ffffffc008affb08 x4 : 00000000ffffefff x3 : 0000000000000000
[    9.917237] x2 : 0000000000000000 x1 : ffffffc008a9e040 x0 : 000000000000004a
[    9.924354] Call trace:
[    9.931464]  ath11k_hal_rx_sw_mon_ring_buf_paddr_get+0x3194/0x49f0 [ath11k]
[    9.933730]  ath11k_htc_rx_completion_handler+0x464/0x610 [ath11k]
[    9.940672]  ath11k_ce_per_engine_service+0x2e0/0x3f0 [ath11k]
[    9.946921]  0xffffffc000cf8c94
[    9.952732]  tasklet_action_common.constprop.0+0x144/0x180
[    9.955775]  tasklet_action+0x28/0x34
[    9.961327]  _stext+0x10c/0x28c
[    9.965058]  irq_exit+0xbc/0x100
[    9.968011]  handle_domain_irq+0x64/0x90
[    9.971484]  gic_handle_irq+0x74/0xa0
[    9.975390]  call_on_irq_stack+0x28/0x54
[    9.978949]  do_interrupt_handler+0x54/0x60
[    9.982942]  el1_interrupt+0x30/0x50
[    9.986847]  el1h_64_irq_handler+0x18/0x24
[    9.990668]  el1h_64_irq+0x78/0x7c
[    9.994573]  arch_cpu_idle+0x18/0x2c
[    9.997958]  default_idle_call+0x20/0x70
[   10.001692]  do_idle+0x214/0x240
[   10.005598]  cpu_startup_entry+0x24/0x60
[   10.008810]  rest_init+0xc8/0xe0
[   10.012715]  arch_call_rest_init+0x10/0x1c
[   10.015928]  start_kernel+0x6a8/0x6cc
[   10.019833]  __primary_switched+0xa0/0xa8
[   10.023567] ---[ end trace 36f5b62cd203aa1b ]---
[   10.064033] ath11k c000000.wifi: failed to receive default regd during init
[   10.065671] ath11k c000000.wifi: failed to receive default regd during init
[   10.071307] ath11k c000000.wifi: failed to receive default regd during init

The result being that on the SXR, the frequency dropdown is missing in the wireless settings in LuCI.

In theory, the only change between the two builds was changing the target so I'm a bit confused why it would work on the SXS and not the SXR. Is the regulatory information being loaded in from somewhere else rather than the board-2.bin file that's perhaps missing on my SXR?

The 2 units have different files with regulatory info in them for some reason. Also in the stock firmware those files don't contain regulatory information at all, the files in my repo should have correct regulatory information added. (I also have a version that basically says "everything is unrestricted", but that version is not intended for publication but it helps for testing).

That's really odd - I built them with the ipq8074 files from your repo and checking the contents I can see the header difference and the slight differences to the regulatory information later in the file.

Does the device bootup with a preset region that perhaps it isn't finding? I get a similar error when trying to switch once it has booted using:

iw reg set GB

@robimarko Any clue what might be going on here? Those are the files you created, I believe they contain all the regulatory rules possible/necessary, so why is there an error?

I dont have this device at all, so I did not touch its BDF.
Its clearly missing regulatory database in the BDF and probably uses external one in the stock fw

You emailed me the modified files with the regulatory information added.

And thats been included in whatever tree is being used?

I really dont remember what has been modified

You added the regulatory information (version 34). That was on 10.04.2022, so quite a while ago. Those are the ones that should be used here, but let's double-check that just to be sure.

@Gul These are the correct ones, could you please check if those are the ones you are using?

# sha256sum board-*
e1580e1979515a58d386de7a0df06ea5eaf0c160cd9297daa1fa73fd44feebb3  board-sxr80-reg.bin
627ad72f0564294e527357528e3049bf879b1919ccd0b09d56726a43e3de8602  board-sxs80-reg.bin