01.04.22 03:59, Bjoern A. Zeeb пишет:
On Tue, 29 Mar 2022, Oleksandr Kryvulia wrote:
iwm(4) is likely compiled into the kernel... forgive me. You can
proabbly
try
hint.iwm.disabled="1"
or
hint.iwm.0.disabled="1"
in loader.conf and see if that helps or compile a kernel without iwm
and iwmfw to test.
Ok, boot with iwm disabled:
root@thinkpad:/ # kldstat -v | grep -e 'iw[ml]'
26 1 0xffffffff83b3f000 88070 if_iwlwifi.ko
(/boot/kernel/if_iwlwifi.ko)
526 pci/lkpi_iwl_hw_card_ids
pciconf -lBbcevV:
what's the reason iwlwifi did not auto-attach if iwm is not avail?
none3@pci0:0:20:3: class=0x028000 rev=0x30 hdr=0x00
vendor=0x8086 device=0x9df0 subvendor=0x8086 subdevice=0x0034
vendor = 'Intel Corporation'
device = 'Cannon Point-LP CNVi [Wireless-AC]'
class = network
bar [10] = type Memory, range 64, base 0xdd638000, size 16384,
disabled
why is the bar disabled? That should not be the case I believe on a
normal FreeBSD boot. Even if no driver is attached or supported
pci(4) will still enable resources on boot.
I have hw.pci.do_power_nodriver=3 in loader.conf, but changing it to 0
make no difference.
cap 01[c8] = powerspec 3 supports D0 D3 current D3
cap 05[d0] = MSI supports 1 message, 64 bit
cap 10[40] = PCI-Express 2 root endpoint max data 128(128) FLR RO NS
max read 128
cap 11[80] = MSI-X supports 16 messages
Table in map 0x10[0x2000], PBA in map 0x10[0x3000]
ecap 0000[100] = unknown 0
ecap 0018[14c] = LTR 1
ecap 000b[164] = Vendor [1] ID 0010 Rev 0 Length 20
Attach iwlwifi:
root@thinkpad:/ # devctl set driver pci0:0:20:3 iwlwifi
devctl: Failed to set pci0:0:20:3 driver to iwlwifi: Input/output error
dmesg -a:
iwlwifi0: <iwlwifi> mem 0xdd638000-0xdd63bfff at device 20.3 on pci0
iwlwifi0: HW_REV=0xFFFFFFFF, PCI issues?
device_attach: iwlwifi0 attach returned 5
That's EIO from the failure in iwl_trans_pcie_alloc().
Sorry, I think I have to roll this back.
I assume you are on GENERIC?
Yes, GENERIC-NODEBUG.
I assume iwm(4) normally is loaded as a module along with firmware
and works fine?
Yes, iwm(4) works fine, I'm sending this message over it.
Ignoring the above hint.iwm... if you move if_iwm.ko out of
/boot/kernel temporary and run kldxref /boot/kernel and reboot
on a recent main or stable/13, what happens without you doing any
devctl? Is iwlfiwi auto-loaded? does pciconf show the BAR enabled
then?
# mv /boot/kernel/if_iwm.ko /home/o.kryvulia/
# kldxref /boot/kernel
# shutdown -p now
Power on and boot:
Autoloading module: if_iwlwifi
Intel(R) Wireless WiFi based driver for FreeBSD
Autoloading module: ig4
Autoloading module: pchtherm
pchtherm0: <CannonLake-LP Thermal Subsystem> mem 0xdd643000-0xdd643fff
at device 18.0 on pci0
iwlwifi0: <iwlwifi> mem 0xdd638000-0xdd63bfff at device 20.3 on pci0
iwlwifi0: HW_REV=0xFFFFFFFF, PCI issues?
device_attach: iwlwifi0 attach returned 5
pciconf shows the same:
none3@pci0:0:20:3: class=0x028000 rev=0x30 hdr=0x00 vendor=0x8086
device=0x9df0 subvendor=0x8086 subdevice=0x0034
vendor = 'Intel Corporation'
device = 'Cannon Point-LP CNVi [Wireless-AC]'
class = network
bar [10] = type Memory, range 64, base 0xdd638000, size 16384,
disabled
cap 01[c8] = powerspec 3 supports D0 D3 current D3
cap 05[d0] = MSI supports 1 message, 64 bit
cap 10[40] = PCI-Express 2 root endpoint max data 128(128) FLR RO NS
max read 128
cap 11[80] = MSI-X supports 16 messages
Table in map 0x10[0x2000], PBA in map 0x10[0x3000]
ecap 0000[100] = unknown 0
ecap 0018[14c] = LTR 1
ecap 000b[164] = Vendor [1] ID 0010 Rev 0 Length 20