Re: AC 9461 support

From: Andrea Venturoli <ml_at_netfence.it>
Date: Thu, 10 Jul 2025 14:58:20 UTC
On 7/10/25 15:10, Bjoern A. Zeeb wrote:

>> (BTW, I'm quite sure it was 54Mbps (on the same network) with 14.2).
> 
> That's dynamic.

I guess so, but I made several attempts (in the same exact spot on the 
exact same network).
Well...



> Would need the PCI IDs and the output when iwlwifi loaded its firmware.
> But if the firmware package did not enable it then it likely is not
> supported.  I'll still check if you send the details; just in case we
> missed some.
> 
> There are 9461 and 9461 using different firmware
> (iwlwifi-9000* vs. iwlwifi-Qu*)

pciconf -lv:
iwlwifi0@pci0:0:12:0:   class=0x028000 rev=0x06 hdr=0x00 vendor=0x8086 
device=0x31dc subvendor=0x8086 subdevice=0x0264
     vendor     = 'Intel Corporation'
     device     = 'Gemini Lake PCH CNVi WiFi'
     class      = network

dmesg:
Intel(R) Wireless WiFi based driver for FreeBSD
iwlwifi0: <iwlwifi> mem 0x91118000-0x9111bfff at device 12.0 on pci0
iwlwifi0: Detected crf-id 0x2816, cnv-id 0x1000100 wfpm id 0x80000000
iwlwifi0: PCI dev 31dc/0264, rev=0x312, rfid=0x108110
iwlwifi0: Detected Intel(R) Wireless-AC 9461
iwlwifi0: successfully loaded firmware image 
'iwlwifi-9000-pu-b0-jf-b0-46.ucode'
iwlwifi0: WRT: Overriding region id 0
iwlwifi0: WRT: Overriding region id 1
iwlwifi0: WRT: Overriding region id 2
iwlwifi0: WRT: Overriding region id 3
iwlwifi0: WRT: Overriding region id 4
iwlwifi0: WRT: Overriding region id 6
iwlwifi0: WRT: Overriding region id 8
iwlwifi0: WRT: Overriding region id 9
iwlwifi0: WRT: Overriding region id 10
iwlwifi0: WRT: Overriding region id 11
iwlwifi0: WRT: Overriding region id 15
iwlwifi0: WRT: Overriding region id 16
iwlwifi0: WRT: Overriding region id 18
iwlwifi0: WRT: Overriding region id 19
iwlwifi0: WRT: Overriding region id 20
iwlwifi0: WRT: Overriding region id 21
iwlwifi0: WRT: Overriding region id 28
iwl-debug-yoyo.bin: could not load binary firmware 
/boot/firmware/iwl-debug-yoyo.bin either
iwl-debug-yoyo.bin: could not load binary firmware 
/boot/firmware/iwl-debug-yoyo.bin either
iwl-debug-yoyo_bin: could not load binary firmware 
/boot/firmware/iwl-debug-yoyo_bin either
iwl_debug_yoyo_bin: could not load binary firmware 
/boot/firmware/iwl_debug_yoyo_bin either
iwlwifi0: loaded firmware version 46.7e3e4b69.0 
9000-pu-b0-jf-b0-46.ucode op_mode iwlmvm
iwlwifi0: base HW address: 20:1e:88:78:ac:3a, OTP minor version: 0x4



> The problem with the older cards is that there's
> 
> % wc -l drivers/net/wireless/intel/iwlwifi/mvm/rs.[ch]
>      4344 drivers/net/wireless/intel/iwlwifi/mvm/rs.c
>       457 drivers/net/wireless/intel/iwlwifi/mvm/rs.h
>      4801 total
> 
> lines of GPL-only code, which we never imported and where the firmware
> does not do the job as it does for modern chipsets utilizing BSD
> licensed code to drive it:
> 
> % wc -l sys/contrib/dev/iwlwifi/mvm/rs-fw.c
>       758 sys/contrib/dev/iwlwifi/mvm/rs-fw.c
> 
> While it is possible to fill the gaps that the 4.8 kloc leave (and I 
> thought
> for a longer while we should do it) and integrate the KPIs natively with
> net80211 it's questinable how much sense it makes to spend the time on
> that.  We have so much other fish to fry still.
> 
> A user made the experiment to make the GPL code compile and hook it up
> but not "drive" the Linux KPI bits for rate control.  It compiled but
> wasn't any gain.
> 
> If someone wants to do it I won't say "no" and will be willing to help.

I might invest into this, but I'd need some guidance.
If you are willing to suggest how to start, I'd be very grateful.



> The alternative likely is to swap the card for a, say, AX210 which sells
> for less than 10 EUR (or 12-15 from a decent retailer) and be good for
> the next year(s).

I would... if only it was possible :(
AFAICT it's integrated into the CPU itself (Intel(R) Pentium(R) Silver 
N5030)... or possibly half on the MB... in any case it's not swappable.









> Most likely it is supported and you will need to install the> Then do a (the 0.4 from the ugen):
> # usbconfig -d 0.4 dump_device_desc

# usbconfig -d 0.4 dump_device_desc
ugen0.4: <Bluetooth 9460/9560 Jefferson Peak (JfP) Intel Corp.> at 
usbus0, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON (100mA)

   bLength = 0x0012
   bDescriptorType = 0x0001
   bcdUSB = 0x0200
   bDeviceClass = 0x00e0  <Wireless controller>
   bDeviceSubClass = 0x0001
   bDeviceProtocol = 0x0001
   bMaxPacketSize0 = 0x0040
   idVendor = 0x8087
   idProduct = 0x0aaa
   bcdDevice = 0x0002
   iManufacturer = 0x0000  <no string>
   iProduct = 0x0000  <no string>
   iSerialNumber = 0x0000  <no string>
   bNumConfigurations = 0x0001

> You could also try and see after installing the firmware and a reboot:
> % grep ubt /var/run/dmesg.boot
> 
> [254.710465] ubt0 on uhub0
> [254.710479] ubt0: <vendor 0x8087 product 0x0032, class 224/1, rev 
> 2.01/0.00, addr 2> on usbus0
> 

Now I get it... I'll have to experiment and see if it works, but that's 
low priority.


  bye & Thanks
	av.