On Fri, 31 Dec 2021, FreeBSD User wrote:
Hi,
sorry for answer this one so late.
On Fri, 31 Dec 2021 00:36:51 +0000 (UTC)
"Bjoern A. Zeeb" <bzeeb-li...@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
Okay. That's the device name which will include all firmware into the kernel.
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.
I am not entirely sure I fully follow.
If you compile device iwm into the kenrel but not device iwmfw then
you probably have to manually load the firmware from loader.
That is probably also a very uncomon configuration.
/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 ...............
[...]
Ok, that is with both device lines in the kernel config, both compiled
into the kernel; works as expected. Good.
Kernel with loadable module triggered from /boot/loader.conf[.local]:
Would be good if you could show the related lines as well.
# 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
Seems it was loaded and you probably also loaded a firmware correctly
and it worked.
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.
The firmware stayed becuase it was preloaded from loader.
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.
It doesn't show up in kldstat after the driver is loaded? That would
probably be correct as iwm will release the reference once it is done
and there will be no need to keep the firmware module loaded so it'll
automatically unload again.
Does the driver work in these cases? Do you have similar iwm0: hw
rev .., fw ver ... lines in dmesg for that case?
past years, rendering iwm from working to non working on this platform).
It seems in the cases you've shown above that iwm(4) actually does load
and would work? I am sorry, I think I must be missing or
misunderstanding something?
Gruesse,
Bjoern
--
Bjoern A. Zeeb r15:7