NB works in 15.0-BETA2, broken sometime between B2-B4. # dmesg |egrep -i 'iwlwifi|be200|wlan' [2.498602] iwlwifi0: <iwlwifi> mem 0x50a00000-0x50a03fff at device 0.0 on pci4 [2.506296] iwlwifi0: Detected crf-id 0x2001910, cnv-id 0x2001910 wfpm id 0x80000000 [2.513576] iwlwifi0: PCI dev 272b/00f4, rev=0x472, rfid=0x112200 [2.519015] iwlwifi0: Detected Intel(R) Wi-Fi 7 BE200 320MHz [2.524162] iwlwifi-gl-c0-fm-c0-102.ucode: could not load binary firmware /boot/firmware/iwlwifi-gl-c0-fm-c0-102.ucode either [2.535572] iwlwifi-gl-c0-fm-c0-102.ucode: could not load binary firmware /boot/firmware/iwlwifi-gl-c0-fm-c0-102.ucode either [2.546971] iwlwifi-gl-c0-fm-c0-102_ucode: could not load binary firmware /boot/firmware/iwlwifi-gl-c0-fm-c0-102_ucode either [2.558986] iwlwifi_gl_c0_fm_c0_102_ucode: could not load binary firmware /boot/firmware/iwlwifi_gl_c0_fm_c0_102_ucode either [2.570331] iwlwifi0: could not load firmware image 'iwlwifi-gl-c0-fm-c0-102.ucode' [2.577557] iwlwifi0: File size way too small! [2.581265] iwlwifi-gl-c0-fm-c0-101.ucode: could not load binary firmware /boot/firmware/iwlwifi-gl-c0-fm-c0-101.ucode either [2.592650] iwlwifi-gl-c0-fm-c0-101.ucode: could not load binary firmware /boot/firmware/iwlwifi-gl-c0-fm-c0-101.ucode either [2.604127] iwlwifi-gl-c0-fm-c0-101_ucode: could not load binary firmware /boot/firmware/iwlwifi-gl-c0-fm-c0-101_ucode either [2.615557] iwlwifi_gl_c0_fm_c0_101_ucode: could not load binary firmware /boot/firmware/iwlwifi_gl_c0_fm_c0_101_ucode either [2.626858] iwlwifi0: could not load firmware image 'iwlwifi-gl-c0-fm-c0-101.ucode' [2.634098] iwlwifi0: File size way too small! [2.637806] iwlwifi-gl-c0-fm-c0-100.ucode: could not load binary firmware /boot/firmware/iwlwifi-gl-c0-fm-c0-100.ucode either [2.649231] iwlwifi-gl-c0-fm-c0-100.ucode: could not load binary firmware /boot/firmware/iwlwifi-gl-c0-fm-c0-100.ucode either [2.660625] iwlwifi-gl-c0-fm-c0-100_ucode: could not load binary firmware /boot/firmware/iwlwifi-gl-c0-fm-c0-100_ucode either [2.671967] iwlwifi_gl_c0_fm_c0_100_ucode: could not load binary firmware /boot/firmware/iwlwifi_gl_c0_fm_c0_100_ucode either [2.683282] iwlwifi0: could not load firmware image 'iwlwifi-gl-c0-fm-c0-100.ucode' [2.690498] iwlwifi0: File size way too small! [2.694208] iwlwifi-gl-c0-fm-c0-99.ucode: could not load binary firmware /boot/firmware/iwlwifi-gl-c0-fm-c0-99.ucode either [2.710102] iwlwifi-gl-c0-fm-c0-99.ucode: could not load binary firmware /boot/firmware/iwlwifi-gl-c0-fm-c0-99.ucode either [2.710122] uhub1iwlwifi-gl-c0-fm-c0-99_ucode: could not load binary firmware /boot/firmware/iwlwifi-gl-c0-fm-c0-99_ucode either [2.734053] iwlwifi_gl_c0_fm_c0_99_ucode: could not load binary firmware /boot/firmware/iwlwifi_gl_c0_fm_c0_99_ucode either [2.753269] iwlwifi0: could not load firmware image 'iwlwifi-gl-c0-fm-c0-99.ucode' [2.760409] iwlwifi0: File size way too small! [2.764207] iwlwifi-gl-c0-fm-c0-98.ucode: could not load binary firmware /boot/firmware/iwlwifi-gl-c0-fm-c0-98.ucode either [2.777389] iwlwifi-gl-c0-fm-c0-98.ucode: could not load binary firmware /boot/firmware/iwlwifi-gl-c0-fm-c0-98.ucode either [2.788615] iwlwifi-gl-c0-fm-c0-98_ucode: could not load binary firmware /boot/firmware/iwlwifi-gl-c0-fm-c0-98_ucode either [2.799843] iwlwifi_gl_c0_fm_c0_98_ucode: could not load binary firmware /boot/firmware/iwlwifi_gl_c0_fm_c0_98_ucode either [2.810958] iwlwifi0: could not load firmware image 'iwlwifi-gl-c0-fm-c0-98.ucode' [2.818103] iwlwifi0: File size way too small! [2.821674] iwlwifi0: no suitable firmware found! [2.825564] iwlwifi0: minimum version required: iwlwifi-gl-c0-fm-c0-98 [2.831511] iwlwifi0: maximum version supported: iwlwifi-gl-c0-fm-c0-102 [2.837653] iwlwifi0: check git://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git [2.846690] iwlwifi0: On FreeBSD the firmware package can be installed running fwget(8). root@sendai /h/dch# fwget -v Trying to match device 0x46a6 in class video and vendor intel with pci_video_intel Trying to match device 0x125c in class network and vendor intel with pci_network_intel Trying to match device 0x125c in class network and vendor intel with pci_network_intel Trying to match device 0x272b in class network and vendor intel with pci_network_intel Needed firmware packages: 'gpu-firmware-intel-kmod-alderlake gpu-firmware-intel-kmod-tigerlake wifi-firmware-iwlwifi-kmod-bz' The most recent versions of packages are already installed root@sendai /h/dch# pkg info wifi-firmware-iwlwifi-kmod-bz wifi-firmware-iwlwifi-kmod-bz-20241017.1500068_2 Name : wifi-firmware-iwlwifi-kmod-bz Version : 20241017.1500068_2 Installed on : Wed Nov 5 08:52:01 2025 UTC Origin : net/wifi-firmware-iwlwifi-kmod Architecture : FreeBSD:15:amd64 Prefix : /usr/local Categories : kld net Licenses : primary, whence Maintainer : bz@FreeBSD.org WWW : https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tree/ Comment : Firmware modules for the iwlwifi (bz) WiFi NIC driver Annotations : FreeBSD_version: 1500068 build_timestamp: 2025-11-01T04:06:43+0000 built_by : poudriere-git-3.4.4 flavor : bz port_checkout_unclean: no port_git_hash : b64b73fd9 ports_top_checkout_unclean: no ports_top_git_hash: 3613ba463 repo_type : binary repository : FreeBSD-ports Flat size : 3.83MiB Description : Firmware files for Intel WiFi NICs supported by the iwlwifi mvm driver. root@sendai /h/dch#
Argh; I didn't get the firmware updates out as things changed from v6.16 to v6.17. I'll go and see. You could take the files directly from linux-firmware.git in the mean time and put them into /boot/firmware/ .
For an update see the review stack at: https://reviews.freebsd.org/D53681
Thanks! With these 4 patches applied to ports, we can autoload firmware. # wifi /etc/rc.conf kld_list="${kld_list} if_iwlwifi" wlans_iwlwifi0="wlan0" # ifconfig_wlan0="WPA DHCP regdomain ETSI2 country AT channel 100" However uncommenting the `ifconfig_wlan0="..."` line from rc.conf leads to a repeatable panic on boot. dmesg prior to panic, for the firmware bits. [2.354829] iwlwifi0: <iwlwifi> mem 0x50a00000-0x50a03fff at device 0.0 on pci4 [2.355735] iwlwifi0: Detected crf-id 0x2001910, cnv-id 0x2001910 wfpm id 0x80000000 [2.355751] iwlwifi0: PCI dev 272b/00f4, rev=0x472, rfid=0x112200 [2.355756] iwlwifi0: Detected Intel(R) Wi-Fi 7 BE200 320MHz [2.355935] iwlwifi-gl-c0-fm-c0-102.ucode: could not load binary firmware /boot/firmware/iwlwifi-gl-c0-fm-c0-102.ucode either [2.356018] iwlwifi-gl-c0-fm-c0-102.ucode: could not load binary firmware /boot/firmware/iwlwifi-gl-c0-fm-c0-102.ucode either [2.356115] iwlwifi-gl-c0-fm-c0-102_ucode: could not load binary firmware /boot/firmware/iwlwifi-gl-c0-fm-c0-102_ucode either [2.356379] iwlwifi_gl_c0_fm_c0_102_ucode: could not load binary firmware /boot/firmware/iwlwifi_gl_c0_fm_c0_102_ucode either [2.356389] iwlwifi0: could not load firmware image 'iwlwifi-gl-c0-fm-c0-102.ucode' [2.356396] iwlwifi0: File size way too small! [2.358402] iwlwifi0: successfully loaded firmware image 'iwlwifi-gl-c0-fm-c0-101.ucode' [2.358832] iwl-debug-yoyo.bin: could not load binary firmware /boot/firmware/iwl-debug-yoyo.bin either [2.358909] iwl-debug-yoyo.bin: could not load binary firmware /boot/firmware/iwl-debug-yoyo.bin either [2.359086] iwl-debug-yoyo_bin: could not load binary firmware /boot/firmware/iwl-debug-yoyo_bin either [2.359178] iwl_debug_yoyo_bin: could not load binary firmware /boot/firmware/iwl_debug_yoyo_bin either [2.359188] iwlwifi0: loaded firmware version 101.6ef20b19.0 gl-c0-fm-c0-101.ucode op_mode iwlmld [2.612203] iwlwifi0: Detected RF FM, rfid=0x112200 [2.720268] iwlwifi0: base HW address: 40:d1:33:32:3a:a2 [2.751220] iwlwifi0: Failed to register PHC clock (0) [3.735091] iwlwifi0: XXX TODO linuxkpi_ieee80211_iterate_interfaces flags(0x109) not yet supported.
(In reply to Dave Cottlehuber from comment #3) I likely know what that is; what's the panic message though and are you running a DEBUG kernel (and which branch is this now)?
A commit in branch main references this bug: URL: https://cgit.FreeBSD.org/src/commit/?id=9040277864ab28cabfc53f238e900bc19ac75d7e commit 9040277864ab28cabfc53f238e900bc19ac75d7e Author: Bjoern A. Zeeb <bz@FreeBSD.org> AuthorDate: 2025-11-19 02:13:15 +0000 Commit: Bjoern A. Zeeb <bz@FreeBSD.org> CommitDate: 2025-11-19 02:25:38 +0000 iwlwifi/mld: only get tid after checking that it is a dataqos frame Like we did for mvm, only get the tid after all the other checks are done by the function in order to not trigger an assert. Linux will likely return a random value there which later is not used as the driver does an early return. In LinuxKPI we do check that the frame assumptions hold up, which does not go so well for a random frame. Sponsored by: The FreeBSD Foundation MFC after: 3 days PR: 290808 sys/contrib/dev/iwlwifi/mld/agg.c | 8 ++++++++ 1 file changed, 8 insertions(+)
The 2nd commit never made it to the PR; no idea why it failed to auto-add that. URL: https://cgit.FreeBSD.org/src/commit/?id=d1180baa9b99538481f3780fc8f4e6e464a15e99 commit d1180baa9b99538481f3780fc8f4e6e464a15e99 Author: Bjoern A. Zeeb <bz@FreeBSD.org> AuthorDate: 2025-11-19 02:21:00 +0000 Commit: Bjoern A. Zeeb <bz@FreeBSD.org> CommitDate: 2025-11-19 02:25:38 +0000 LinuxKPI: 802.11: initialize a backpointer on the link_sta iwlwifi/mld uses the back pointer in iwl_mld_link_sta_from_mac80211(). Initialize it to make BE200 cards work again. Sponsored by: The FreeBSD Foundation MFC after: 3 days PR; 290808 --- sys/compat/linuxkpi/common/src/linux_80211.c | 1 + 1 file changed, 1 insertion(+)
A commit in branch stable/15 references this bug: URL: https://cgit.FreeBSD.org/src/commit/?id=4dde7d280a5f2a0218632b995d916fb1ae10cd7f commit 4dde7d280a5f2a0218632b995d916fb1ae10cd7f Author: Bjoern A. Zeeb <bz@FreeBSD.org> AuthorDate: 2025-11-19 02:13:15 +0000 Commit: Bjoern A. Zeeb <bz@FreeBSD.org> CommitDate: 2025-12-08 15:43:50 +0000 iwlwifi/mld: only get tid after checking that it is a dataqos frame Like we did for mvm, only get the tid after all the other checks are done by the function in order to not trigger an assert. Linux will likely return a random value there which later is not used as the driver does an early return. In LinuxKPI we do check that the frame assumptions hold up, which does not go so well for a random frame. Sponsored by: The FreeBSD Foundation PR: 290808 (cherry picked from commit 9040277864ab28cabfc53f238e900bc19ac75d7e) sys/contrib/dev/iwlwifi/mld/agg.c | 8 ++++++++ 1 file changed, 8 insertions(+)
A commit in branch main references this bug: URL: https://cgit.FreeBSD.org/ports/commit/?id=818044a91724209068c4918467730c092af6c429 commit 818044a91724209068c4918467730c092af6c429 Author: Bjoern A. Zeeb <bz@FreeBSD.org> AuthorDate: 2025-11-11 01:24:13 +0000 Commit: Bjoern A. Zeeb <bz@FreeBSD.org> CommitDate: 2025-12-11 23:26:09 +0000 net/wifi-firmware-iwlwifi-kmod: update firmware to 20251021 Intel firmware for BE200 ("bz" chipsets) requires more modern firmware than we provide. [1] The firmware file for iwlwifi-so-a0-gf4-a0 was missing in a recent version; we only had the pnvm file. [2] Update the Intel iwlwifi firmware to the latest tree which brings a few changes: (1) on linux-firmware.git the firmware got moved into a subdirectory so we need to strip that path before installing as the driver still expects the firmware in the top-level directory. (2) the "bz" firmware gets bumped to 101, we keep the old version for 14.3-R around as well. (3) while the other files keep their revisions, Intel may have updated them with rebuilds. This is hard to discover given not only the hashes but also the paths have changed in distinfo. (4) we now generate the firmware list from the WHENCE file in linux-firmware.git given the driver firmware name creation is too dynamic. This adds some extra firmware files we did not have before. See files/extract-fw-list.sh. PR: 290808 Reported by: dch [1], Fotis Zabaras (fotis zabaras.eu) (and others) [2] Reviewed by: jrm Differential Revision: https://reviews.freebsd.org/D53681 net/wifi-firmware-iwlwifi-kmod/Makefile | 134 +++++++------ net/wifi-firmware-iwlwifi-kmod/distinfo | 190 ++++++++++-------- .../files/extract-fw-list.sh (new) | 219 +++++++++++++++++++++ net/wifi-firmware-iwlwifi-kmod/pkg-descr | 3 +- 4 files changed, 402 insertions(+), 144 deletions(-)
Thanks a lot for reporting! Sorry it took a while. (In reply to Bjoern A. Zeeb from comment #6) I figured why the auto-commit hook did not work; it says PR; (not PR: ). Got merged to stable/15 as: The branch stable/15 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=4d3c09c79a04b2bafbee86f50a9bd25d490762b7 commit 4d3c09c79a04b2bafbee86f50a9bd25d490762b7 Author: Bjoern A. Zeeb <bz@FreeBSD.org> AuthorDate: 2025-11-19 02:21:00 +0000 Commit: Bjoern A. Zeeb <bz@FreeBSD.org> CommitDate: 2025-12-08 15:43:51 +0000 LinuxKPI: 802.11: initialize a backpointer on the link_sta iwlwifi/mld uses the back pointer in iwl_mld_link_sta_from_mac80211(). Initialize it to make BE200 cards work again. Sponsored by: The FreeBSD Foundation PR; 290808 (cherry picked from commit d1180baa9b99538481f3780fc8f4e6e464a15e99)