Re: [iwlwifi] Intel WiFi 7260: iwlwififw not loaded

From: FreeBSD User <freebsd_at_walstatt-de.de>
Date: Fri, 31 Dec 2021 13:14:54 UTC
On Fri, 31 Dec 2021 00:36:51 +0000 (UTC)
"Bjoern A. Zeeb" <bzeeb-lists@lists.zabbadoz.net> wrote:

> On Thu, 30 Dec 2021, FreeBSD User wrote:
> 
> > Running FreeBSD 13.0-STABLE #45 stable/13-n248789-9d96f4d3491: Thu Dec 30 23:02:26 CET
> > 2021 amd on a Lenovo Thinkpad E540, which has the following chipset as WiFi chipset
> > (loaded with the if_iwm module):
> >
> > iwm0@pci0:5:0:0:        class=0x028000 rev=0x73 hdr=0x00 vendor=0x8086 device=0x08b2
> > subvendor=0x8086 subdevice=0x4262 vendor     = 'Intel Corporation'
> >    device     = 'Wireless 7260'
> >    class      = network
> >    bar   [10] = type Memory, range 64, base 0xf1c00000, size 8192, enabled
> >    cap 01[c8] = powerspec 3  supports D0 D3  current D0
> >    cap 05[d0] = MSI supports 1 message, 64 bit enabled with 1 message
> >    cap 10[40] = PCI-Express 2 endpoint max data 128(128) FLR RO NS
> >                 max read 128
> >                 link x1(x1) speed 2.5(2.5) ASPM L1(L0s/L1) ClockPM enabled
> >    ecap 0001[100] = AER 1 0 fatal 0 non-fatal 0 corrected
> >    ecap 0003[140] = Serial 1 xxxxxxxxxxxxxxxx
> >    ecap 0018[14c] = LTR 1
> >    ecap 000b[154] = Vendor [1] ID cafe Rev 1 Length 20
> >
> > (only works if compiled into the kernel, otherwise iwmfw is NOT loaded and the proper
> > firmware is also NOT loaded).  
> 
> There is no iwmfw module.

All right, then. Including into the kernel configuration file the lines

# WLAN
#   Intel devices
device      iwm     # Intel IEEE 802.11ac wireless network driver
device      iwmfw       # Firmware Module for Intel Wireless driver

do not drop a kernel compilation error as expected when including something strange or
wrong. Without "device iwmfw" the iwm noadays does not load the proper firmware, as far
as I can conclude on a hunch - I performed the tests yesterday when I wanted the kernel
module to be loaded/unloaded in a flexible way. It turns out that my config doesn't work
properly when if_iwm_load="YES" is set in /boot/loader.conf.local. I'll check that again
later. 

> 
> /boot/kernel/if_iwm.ko
> /boot/kernel/iwm3160fw.ko
> /boot/kernel/iwm3168fw.ko
> /boot/kernel/iwm7260fw.ko
> /boot/kernel/iwm7265Dfw.ko
> /boot/kernel/iwm7265fw.ko
> /boot/kernel/iwm8000Cfw.ko
> /boot/kernel/iwm8265fw.ko
> /boot/kernel/iwm9000fw.ko
> /boot/kernel/iwm9260fw.ko
> 
> Can you show us how you are trying to load the iwm firmware (when
> built as a module) and what does dmesg -a | grep iwm say then?

Kernel with staically built-in iwm module as described above:

[...]
 [~] dmesg -a | grep iwm 
module iwm7260fw_fw already present!
iwm0: <Intel(R) Dual Band Wireless AC 7260> mem 0xf1c00000-0xf1c01fff at device 0.0 on
pci4 iwm0: hw rev 0x140, fw ver 17.352738.0, address ...............
wlan0: ieee80211_start_locked: up parent iwm0
wlan0: down parent iwm0
wlan0: ieee80211_start_locked: up parent iwm0
        parent interface: iwm0
wlan0: down parent iwm0
wlan0: ieee80211_vap_detach: STA parent iwm0
wlan0: ieee80211_start_locked: up parent iwm0

Kernel with loadable module triggered from /boot/loader.conf[.local]:

# dmesg -a | grep iwm
Autoloading module: if_iwm
iwm0: <Intel(R) Dual Band Wireless AC 7260> mem 0xf1c00000-0xf1c01fff at device 0.0 on
pci4 iwm0: hw rev 0x140, fw ver 17.352738.0, address ac:7b:a1:a0:6f:d6
wlan0: ieee80211_start_locked: up parent iwm0
wlan0: down parent iwm0
wlan0: ieee80211_start_locked: up parent iwm0
        parent interface: iwm0

kldstat:

11    1 0xffffffff83133000    19310 if_iwm.ko
12    1 0xffffffff8314d000   1023d8 iwm7260fw.ko

It seems that when rebooting the system, the FW module for iwm gets loaded as expected,
automatically. It doesn't, if I manually load the if_iwm after the system is up via
"kldload if_iwm", iwm7260fw.ko doesn't show up.
A "service netif restart" also doesn't have any effect, although iwm is configured (as it
is in the working scenario in/etc/rc.conf).
> 
> 
> > When putting if_iwlwifi_load="YES" into /boot/loader.conf.local, the if_ kernel module
> > gets loaded, but the proper firmware module does not get loaded automatically (this is
> > the same behaviour introduced in the vain of iflib with iwm on this platform within
> > the  
> 
> iflib has nothing to do with wireless and iwm or iwlwifi.

Well, then it is an coincidence and an observational error. iwm worked well even in an
lagg config when we purchased the notebook in 2014 and it was stable. No iwm has become
instable, dropping connections frequently. My impression was that iflib gathers code
common to intel devices. Isn't iwm an Intel WiFi device driver? Anyway, as I admit, it
might be a mistake by observation and wrong conclusion ...


> 
> > past years, rendering iwm from working to non working on this platform).  
> 
> Given you are not providing any error message but an obviously loaded
> iwm driver it is hard to say where your actual problem is.
> 
> 
> > Manually loading the proper FW module (supposedly iwlwifi-7260-9.ucode.ko) does not
> > make this chipset going to work (setup with re0 and wlan0 on lagg0). Somehow the
> > chipset seems not recognized ...  
> 
> If you are using iwm(4) you need to detach that, disable it, or not
> laod it in order to try iwlwifi.  And for loading iwlwifi and the
> appropriate firmware please see the thread from yesterday here.
> If you are not doing it from loader but rc.conf iwlwifi will pick up
> the appropriate firmware by itself.
> 
> 
> It'll highly likely be helpful to split your problems up into "iwm is
> not working please help" or "I am trying to use iwlwifi please help"
> and we'll probably be able to help you solve both.
> 
> Bjoern
>