# Intel Cannon Point-LP CNV1 wifi?



## bessie (Sep 17, 2020)

Returning to BSD after 25 years (altho' MacOS is not that far away from BSD) I've had to settle on Debian to get some work done. I've got FreeBSD_12.1_RELEASE running in VirtualBox and I can run nearly all the user applications I need. But when attempting to install on bare metal it seems I may have made a bad choice of hardware: Huawei Matebook-13S. The graphics ought to be covered by the i915 included in graphics/drm-kmod, but to get there I need a network connection. Yes I've got a TL-WN723N-v2 usb dongle but I don't want to start thread drift about that. I'm not really a programmer, only a part-time masseuse of Makefiles... I've started to read Thread a-guide-for-intel-wireless-adapter-ac-9260-and-9560-driver-installation-on-freebsd-12-1.74475 I'd like to offer myself for beta testing or any other useful thing I could do, am I presumptuous in thinking 9260 is replaced by 9df0 on my system? Or should I just sit and wait as suggested by rtw88: RTL8821CE 802.11ac PCIe Wireless Network Adapter support ? fwiw my wifi reports itself as

```
$ pciconf -lcvV
...
none4@pci0:0:20:3:   class=ox028000   card=0x20348086   chip=0x9df08086   rev=0x30   hdr=0x00
vendor         = 'Intel Corporation'
device         = 'Cannon Point-LP CNV1 [ Wireless-AC ]
class          = network
cap 01[c8]  = powerspec  3  supports D0 D3   current D0
cap 05[d0] = MSI supports   1 message, 64 bit
cap 10[40] = PCI-Express 2 root end point max data 128(128)  FLR RO NS
cap 11[80] = MSI-X supports 16 messages, enabled
               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 16
...
```

`lspci -vv` on Debian gives the same, maybe more, in a different language...


----------



## aponomarenko (Sep 18, 2020)

You need 13-CURRENT for this card to work: https://bsd-hardware.info/?id=pci:8086-9df0-8086-0034


----------



## T-Daemon (Sep 18, 2020)

bessie said:


> none4@pci0:0:20:3: class=ox028000 card=0x20348086 chip=*0x9df0*8086 rev=0x30 hdr=0x00



The Intel Cannon Point-LP CNV1 wifi is a Intel 9000 series, 9560 in this case, device. From Linux kernel source iwlwifi driver:

```
/* 9000 Series */
.....
{IWL_PCI_DEVICE(*0x9DF0*, PCI_ANY_ID, iwl*9560*_trans_cfg)},
```

That wifi device is not supported under 12.1-RELEASE, but on development versions 12.2-BETA1 and 13.0-CURRENT) by the iwm(4) driver [1] [2]. You should prefer 12.2-BETA1 over -CURRENT, the latter is not supported on Forums and it can breake from revision to revision:









						Chapter 25. Updating and Upgrading FreeBSD
					

Information about how to keep a FreeBSD system up-to-date with freebsd-update or Git, how to rebuild and reinstall the entire base system, etc




					www.freebsd.org


----------



## bessie (Sep 18, 2020)

Thank you Sirs. The 13_CURRENT looks exciting but will take me a few days to get organized in my low bandwidth environment here. I had found another thread (didn't bookmark, can't refind  where it was claimed 12.2_BETA1 worked for him. So I got the _boot-only.iso to try. Yes, the installer found my wifi as
*iwm0 Intel(R) Dual Band Wireless-AC 9560*. It configured dhcp sensibly, contacted the server and downloaded the minimum kernel and base, but seemed rather slow. Sorry I can't tell whether that was misconfiguration or upstream throttling. I'm confused about  9560 versus 9df0. I saw some complaints on bugzilla about the confusion between marketing names and device names.

Further info: this 12.2_BETA_boot-only.iso can find my wifi only after a cold startup. Warm restart, either from Debian or from this .iso on a usb stick, has no network adapter found...

Another problem: after the boot-only installer finished and rebooted, I had no network. As in `ifconfig` reported only *lo0*. If I used the iso as Live-CD it did not find my wifi. I assume the installer script is loading every driver in the box until it finds one that works, and the Live-CD waits for the user to load one manually. So why can't the installer write the necessary instructions to the installed system disk?

Then what does this `hw-probe` mean on a Lenovo ThinkPad T590 20N4CT ?


----------



## T-Daemon (Sep 19, 2020)

bessie said:


> Further info: this 12.2_BETA_boot-only.iso can find my wifi only after a cold startup. Warm restart, either from Debian or from this .iso on a usb stick, has no network adapter found...
> 
> Another problem: after the boot-only installer finished and rebooted, I had no network. As in  ifconfig reported only *lo0*. If I used the iso as Live-CD it did not find my wifi.



There seems to be some bugs with the iwm(4) driver on 12.2-BETAx:





						249287 – 12.2-BETA1 Intel 9560 init fails on ThinkPad X1 Carbon Gen7
					






					bugs.freebsd.org
				



For the  speed problem see Comment 9.

*[EDIT]*





						243992 – iwm(4): iwm_pcie_load_section: Could not load the [0] uCode section (Intel Wireless-AC 9560)
					






					bugs.freebsd.org
				






bessie said:


> Then what does this  hw-probe mean on a Lenovo ThinkPad T590 20N4CT ?


What exactly do you want to know?


----------



## bessie (Sep 19, 2020)

T-Daemon said:


> What exactly do you want to know?


1.  `hw-probe` on a Lenovo ThinkPad T590 20N4CT seems to indicate that with the exact same wifi *8086:9df0:8086:0034* running FreeBSD 12.1-STABLE his wifi works. Why?
2. What is the relation (if any) between 9560 and 9df0?



T-Daemon said:


> There seems to be some bugs with the iwm(4) driver on 12.2-BETAx:


Yes, exactly my problem, and I've got more similar. I will add to that bug report. My problem appears to be related to whatever is plugged into the USB Type3 port.


----------



## T-Daemon (Sep 20, 2020)

bessie said:


> 1.  hw-probe on a Lenovo ThinkPad T590 20N4CT seems to indicate that with the exact same wifi *8086:9df0:8086:0034* running FreeBSD 12.1-STABLE his wifi works. Why?


The status says "works" but with a warning sign under. If you hover the mouse over the cell a text window is shown "This device model is known to have problems".



bessie said:


> 2. What is the relation (if any) between 9560 and 9df0?


9560 is the vendors product name, 9df0 the chips identification.


----------



## bessie (Sep 20, 2020)

Thank you T-Daemon. Sorry I have another silly question: I've RTFM and Googled, but can't find how to get `dmesg` or something else to show me the boot log with timestamps in microseconds. `less /var/log/messages` gives a prettified human readable form with Date-Time-Hostname-OS prefixed to every line, but accurate only to one second.


----------



## T-Daemon (Sep 20, 2020)

bessie said:


> Sorry I have another silly question: I've RTFM and Googled, but can't find how to get  dmesg or something else to show me the boot log with timestamps in microseconds.  less /var/log/messages gives a prettified human readable form with Date-Time-Hostname-OS prefixed to every line, but accurate only to one second.


That's not a silly question, that's a very good one.

syslogd(8)

```
-O    format
         Select the    output format of generated log messages.  The values
         bsd and rfc3164 are used to generate RFC 3164 log messages.  The
         values syslog and rfc5424 are used    to generate RFC    5424 log mes-
         sages, having RFC 3339 timestamps with microsecond    precision.
         The default is to generate    RFC 3164 log messages.
```
Set in /etc/rc.conf:

```
syslogd_flags="-s -O syslog"
or 
syslogd_flags="-s -O rfc5424"
```

This overrides the syslogd flags in /etc/defaults/rc.conf, /var/log/messages will now show the time stamps down to the  microsecond.


----------



## bessie (Sep 21, 2020)

T-Daemon said:


> Set in /etc/rc.conf:
> 
> ```
> syslogd_flags="-s -O syslog"
> ```


Indeed it does, for 12.1-RELEASE as a Vbox guest. But for 12.2-BETA on the SSD it does nothing. Ah well, such are the perils of beta software... I was trying to pin down a race | contention issue that seems to be happening, if a probe on the USB bus happens while the iwm firmware is loading, then the load fails. *uhub0* is a PCI-e device, but there ought to be locks to prevent bad things happening...


----------



## T-Daemon (Sep 22, 2020)

bessie said:


> But for 12.2-BETA on the SSD it does nothing.


Please check for typos. On a VirtualBox VM installation the `syslog` flag has the expected result, notice _uname_ and _grep_ down below:






I don't think the behavior is different on a bare-metal installation.


----------



## bessie (Sep 22, 2020)

Must be one of those warm reboot things. After shutting down and leaving it off overnight I get the microsecond display. Now, back to the original problem: From warm reboot, or cold start with anything in the left hand TypeC USB port which is the one that accepts power-in charging, and/or video out, there is a probe on the USB bus while the iwm firmware is loading and the loading fails:

```
...
3.170208 - - - random: entropy device external interface
3.170210 - - - wlan: <802.11 Link Layer>
3.170212 - - - snd_unit_init() u=0x00ff8000 [512] d=0x00007c00 [32] c=0x000003ff [1024]:
3.170214 - - - feeder_register: snd_unit=-1 snd_maxautovchans=16 latency=2 feeder_rate_min=1 feeder_rate_max=2016000 feeder_rate_round=25
3.170218 - - - firmware: 'iwm9260fw' version 0: 2678092 bytes loaded at 0xffffffff824f3000
3.170220 - - - kbd: new array size 4
3.170222 - - - kbd1 at kbdmux0:
...
3.172203 - - - pci0:0:20:3: reprobing on driver added
3.172206 - - - iwm0: <Intel(R) Dual Band Wireless AC 9560> mem 0x94218000-0x9421bfff at device 20.3 on pci0
3.172209 - - - iwm0: attempting to allocate 1 MSI vectors (1 supported)
3.172211 - - - msi: routing MSI IRQ 272 to local APIC 2 vector 50
3.172213 - - - iwm0: using IRQ 272 for MSI
3.172215 - - - firmware: 'iwm9000fw' version 0: 2678284 bytes loaded at 0xffffffff8486c000
3.172218 - - - uhub0: 18 ports with 18 removable, self powered
3.172220 - - - ugen0.2: <Azurewave HD Camera> at usbus0
3.172222 - - - ugen0.3: <vendor 0x8087 product 0x0aaa> at usbus0
3.172224 - - - ng_ubt: HCI command 0xfc05 timed out
3.172226 - - - ubt0 on uhub0:
3.172229 - - - ubt0: <vendor 0x8087 product 0x0aaa, class 224/1, rev 2.00/0.02, addr 2> on usbus0
3.172231 - - - iwm0: fw chunk addr 0x404000 len 712 failed to load
3.172233 - - - iwm0: iwm_pcie_load_section: Could not load the [0] uCode section
3.172235 - - - iwm0: iwm_start_fw: failed 60
3.172237 - - - iwm0: Failed to start INIT ucode: 60
3.172240 - - - found->:vendor=0x8086, dev=0x9de8, revid=0x30
3.172242 - - -     domain=0, bus=0, slot=21, func=0
....
3.172491 - - - ppc1: cannot reserve I/O port range
3.172497 - - - lo0: link state changed to UP
3.172503 - - - WARNING: attempt to domain_add(bluetooth) after domainfinalize()
3.172506 - - - WARNING: attempt to domain_add(netgraph) after domainfinalize()
3.241009 - - - Linux x86-64 ELF exec handler installed:
3.310499 - - - ntpd 4.2.8p15-a (1): Starting
...
```
If the machine is started from power off, with nothing in either usb port it loads iwm and connects to the access point

```
...
53.361735 - - - random: entropy device external interface
53.361737 - - - wlan: <802.11 Link Layer>
53.361739 - - - snd_unit_init() u=0x00ff8000 [512] d=0x00007c00 [32] c=0x000003ff [1024]
53.361741 - - - feeder_register: snd_unit=-1 snd_maxautovchans=16 latency=2 feeder_rate_min=1 feeder_rate_max=2016000 feeder_rate_round=25
53.361745 - - - firmware: 'iwm9260fw' version 0: 2678092 bytes loaded at 0xffffffff8251c000
53.361747 - - - kbd: new array size 4
...
53.363676 - - - pci0:0:20:3: reprobing on driver added
53.363678 - - - iwm0: <Intel(R) Dual Band Wireless AC 9560> mem 0x94218000-0x9421bfff at device 20.3 on pci0
53.363680 - - - iwm0: attempting to allocate 1 MSI vectors (1 supported)
53.363682 - - - msi: routing MSI IRQ 272 to local APIC 2 vector 50
53.363684 - - - iwm0: using IRQ 272 for MSI
53.363686 - - - firmware: 'iwm9000fw' version 0: 2678284 bytes loaded at 0xffffffff8486c000
53.363688 - - - iwm0: hw rev 0x310, fw ver 34.3125811985.0, address xx:xx:xx:xx:xx:xx
53.363690 - - - iwm0: 11a rates: 6Mbps 9Mbps 12Mbps 18Mbps 24Mbps 36Mbps 48Mbps 54Mbps
53.363692 - - - iwm0: 11b rates: 1Mbps 2Mbps 5.5Mbps 11Mbps
53.363694 - - - iwm0: 11g rates: 1Mbps 2Mbps 5.5Mbps 11Mbps 6Mbps 9Mbps 12Mbps 18Mbps 24Mbps 36Mbps 48Mbps 54Mbps
53.363696 - - - found->:vendor=0x8086, dev=0x9de8, revid=0x30
...
53.363925 - - - wlan0: bpf attached
53.363927 - - - last message repeated 1 times
53.363928 - - - wlan0: Ethernet address: xx:xx:xx:xx:xx:xx
53.363932 - - - lo0: link state changed to UP
53.363936 - - - uhub0: 18 ports with 18 removable, self powered
53.363938 - - - ugen0.2: <Azurewave HD Camera> at usbus0
53.363940 - - - ugen0.3: <vendor 0x8087 product 0x0aaa> at usbus0
53.363942 - - - wlan0: link state changed to UP
06.101037 - - - Linux x86-64 ELF exec handler installed
06.176321 - - - ntpd 4.2.8p15-a (1): Starting
...
```
The wifi and the usb controller share close PCI addresses

```
pciconf -lBvV
xhci0@pci0:0:20:0:    class=0x0c0330 card=0x3e0919e5 chip=0x9ded8086 rev=0x30 hdr=0x00
    vendor     = 'Intel Corporation'
    device     = 'Cannon Point-LP USB 3.1 xHCI Controller'
    class      = serial bus
    subclass   = USB
none3@pci0:0:20:2:    class=0x050000 card=0x3e0919e5 chip=0x9def8086 rev=0x30 hdr=0x00
    vendor     = 'Intel Corporation'
    device     = 'Cannon Point-LP Shared SRAM'
    class      = memory
    subclass   = RAM
iwm0@pci0:0:20:3:    class=0x028000 card=0x20348086 chip=0x9df08086 rev=0x30 hdr=0x00
    vendor     = 'Intel Corporation'
    device     = 'Cannon Point-LP CNVi [Wireless-AC]'
    class      = network
```
But I don't (yet) accept that the problem is my hardware, as other people with other machines are having the same trouble.


----------



## T-Daemon (Sep 23, 2020)

The place to report such findings are the bug reports and the freebsd-wireless mailing list. Forums here are less frequented by FreeBSD developers, they are on mailing lists and Bugzilla. It's more likely your findings get noticed there than here. If you have to show lengthy standard output in Bugzilla add it / them as attachment.


----------



## aponomarenko (Dec 3, 2020)

bessie said:


> 1.  `hw-probe` on a Lenovo ThinkPad T590 20N4CT seems to indicate that with the exact same wifi *8086:9df0:8086:0034* running FreeBSD 12.1-STABLE his wifi works. Why?


Likely compiled manually for 12.1.


----------

