Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Test Intel AX210NGW WiFi 6E M.2 card #120

Closed
geerlingguy opened this issue Apr 26, 2021 · 85 comments
Closed

Test Intel AX210NGW WiFi 6E M.2 card #120

geerlingguy opened this issue Apr 26, 2021 · 85 comments

Comments

@geerlingguy
Copy link
Owner

geerlingguy commented Apr 26, 2021

I just ordered a WISE TIGER AX210NGW WiFi Card, Wi-Fi 6E 11AX card, and I'm going to see if I can get it working using a similar layout as what I used for the AX200.

intel-ax210-wifi-6e

The other thing I'd like to see is if I can set it up as an access point and how well it handles that. Apparently the AX200 didn't handle AP mode that well (though I didn't test it at all), and this chipset should handle it better... according to random commenters :)

The WiFi Wiki says the AX210 is supported as of kernel 5.10: https://wireless.wiki.kernel.org/en/users/drivers/iwlwifisupposedly I could get 2+ Gbps through this chipset. We'll see if that's true with the other hardware I have.

Maybe combine this testing with #56?

@paulwratt
Copy link

make sure you get the latest kernel fixes for (all) wifi 6 devices

@bcliu430
Copy link

bcliu430 commented Aug 5, 2021

I have tried the raspberry pi 5.10.y kernel. I can get it working with the commit (6495fa3) when I tried on 7/28. I just enabled iwlwifi and copied the latest ucode to /lib/firmware.

BTW, thanks for the ax200 video, it helps a lot for me to make progress on ax210 card.

@angelia-gt
Copy link

Thanks for your sharing.

melanj pushed a commit to melanj/raspberry-pi-pcie-devices that referenced this issue Nov 10, 2021
@geerlingguy
Copy link
Owner Author

It looks like the AX210 firmware requires kernel 5.10+ (which we have), and is available for download here: https://www.intel.com/content/www/us/en/support/articles/000005511/wireless.html

I downloaded iwlwifi-ty-59.601f3a66.0.tgz and ran:

$ tar -xvzf iwlwifi-ty-59.601f3a66.0.tgz
$ cd iwlwifi-ty-59.601f3a66.0/
$ sudo cp iwlwifi-*.ucode /lib/firmware
$ sudo reboot

For the driver, it looks like it'll need a recompile.

@bcliu430
Copy link

It looks like the AX210 firmware requires kernel 5.10+ (which we have), and is available for download here: https://www.intel.com/content/www/us/en/support/articles/000005511/wireless.html

I downloaded iwlwifi-ty-59.601f3a66.0.tgz and ran:

$ tar -xvzf iwlwifi-ty-59.601f3a66.0.tgz
$ cd iwlwifi-ty-59.601f3a66.0/
$ sudo cp iwlwifi-*.ucode /lib/firmware
$ sudo reboot

For the driver, it looks like it'll need a recompile.

Check and see if you have iwlwifi and mvm checked in kernel config. When I did some testing before, not all functionalities are fully implemented, i.e. wifi scanning is working but it does not always scan 6GHz channels. It is not fully supported until kernel 5.13.

@geerlingguy
Copy link
Owner Author

Using my cross-compile environment, I recompiled enabling iwlwifi in menuconfig:

Device Drivers
  > Network device support
    > Wireless LAN
      > Intel Wireless WiFi Next Gen AGN - Wireless-N/Advanced-N/Ultimate-N (iwlwifi)
        > Intel Wireless WiFi MVM Firmware support

(I had to check the iwlwifi support to reveal the MVM option).

Also, regarding AP mode for 5/6 Ghz: https://bugzilla.kernel.org/show_bug.cgi?id=206469#c2

@geerlingguy
Copy link
Owner Author

Before custom kernel:

pi@seaberry:~ $ uname -a
Linux seaberry 5.10.63-v8+ #1459 SMP PREEMPT Wed Oct 6 16:42:49 BST 2021 aarch64 GNU/Linux

After custom kernel:

pi@seaberry:~ $ uname -a
Linux seaberry 5.10.79-v8+ #1 SMP PREEMPT Thu Nov 18 21:53:24 UTC 2021 aarch64 GNU/Linux

And driver loads:

[   10.878198] iwlwifi 0000:12:00.0: enabling device (0000 -> 0002)
[   10.909737] iwlwifi 0000:10:00.0: api flags index 2 larger than supported by driver
[   10.909878] iwlwifi 0000:10:00.0: TLV_FW_FSEQ_VERSION: FSEQ Version: 93.8.63.28
[   10.913151] iwlwifi 0000:10:00.0: loaded firmware version 59.601f3a66.0 ty-a0-gf-a0-59.ucode op_mode iwlmvm
[   11.176677] iwlwifi 0000:10:00.0: Detected Intel(R) Wi-Fi 6 AX210 160MHz, REV=0x420
[   11.494958] iwlwifi 0000:10:00.0: base HW address: 84:5c:f3:f6:e9:29

@geerlingguy
Copy link
Owner Author

Wrote up a guide since I do this a lot and confuse myself often: Working with multiple WiFi interfaces on a Raspberry Pi.

And dang... I just realized I don't have any external antennae with the plug size for the AX210. I only have the very-slightly-larger size suitable for things like the U.FL antenna connector on the CM4 itself, or larger WiFi cards.

@geerlingguy
Copy link
Owner Author

Just ordered a pair of NGFF / IPEX4 / MHF4 antennae for next-day shipping. Hope they come quickly!

@angelia-gt
Copy link

angelia-gt commented Nov 19, 2021 via email

@geerlingguy
Copy link
Owner Author

@angelia-gt - See the link — that's the exact part I ordered from Amazon (mostly because it should ship next day :).

@angelia-gt

This comment was marked as off-topic.

@geerlingguy
Copy link
Owner Author

$ iwconfig
lo        no wireless extensions.

eth0      no wireless extensions.

wlan0     IEEE 802.11  ESSID:off/any  
          Mode:Managed  Access Point: Not-Associated   Tx-Power=31 dBm   
          Retry short limit:7   RTS thr:off   Fragment thr:off
          Power Management:on
          
wlan1     IEEE 802.11  ESSID:"geerling-acn"  
          Mode:Managed  Frequency:5.18 GHz  Access Point: 3C:7C:3F:6A:FA:C4   
          Bit Rate=1.7296 Gb/s   Tx-Power=22 dBm   
          Retry short limit:7   RTS thr:off   Fragment thr:off
          Power Management:on
          Link Quality=67/70  Signal level=-43 dBm  
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:77   Missed beacon:0

And iperf in both directions—Mac (10G wired) to seaberry (AX210):

$ iperf3 -c 10.0.100.27
Connecting to host 10.0.100.27, port 5201
[  5] local 10.0.100.100 port 64950 connected to 10.0.100.27 port 5201
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-1.00   sec  29.3 MBytes   246 Mbits/sec                  
[  5]   1.00-2.00   sec  30.0 MBytes   251 Mbits/sec                  
[  5]   2.00-3.00   sec  18.3 MBytes   153 Mbits/sec                  
[  5]   3.00-4.00   sec  29.4 MBytes   247 Mbits/sec                  
[  5]   4.00-5.00   sec  30.1 MBytes   252 Mbits/sec                  
[  5]   5.00-6.00   sec  31.7 MBytes   266 Mbits/sec                  
[  5]   6.00-7.00   sec  31.5 MBytes   264 Mbits/sec                  
[  5]   7.00-8.00   sec  32.2 MBytes   270 Mbits/sec                  
[  5]   8.00-9.00   sec  32.5 MBytes   273 Mbits/sec                  
[  5]   9.00-10.00  sec  30.4 MBytes   255 Mbits/sec                  
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-10.00  sec   295 MBytes   248 Mbits/sec                  sender
[  5]   0.00-10.00  sec   295 MBytes   248 Mbits/sec                  receiver

iperf Done.

And seaberry (AX210) to Mac (10G wired):

$ iperf3 -c 10.0.100.100
Connecting to host 10.0.100.100, port 5201
[  5] local 10.0.100.27 port 39026 connected to 10.0.100.100 port 5201
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec   120 MBytes  1.01 Gbits/sec    0   3.29 MBytes       
[  5]   1.00-2.00   sec   148 MBytes  1.23 Gbits/sec    0   3.51 MBytes       
[  5]   2.00-3.00   sec   144 MBytes  1.21 Gbits/sec    0   3.90 MBytes       
[  5]   3.00-4.00   sec   144 MBytes  1.21 Gbits/sec    0   3.90 MBytes       
[  5]   4.00-5.00   sec   145 MBytes  1.22 Gbits/sec    0   3.90 MBytes       
[  5]   5.00-6.00   sec   144 MBytes  1.21 Gbits/sec    0   3.90 MBytes       
[  5]   6.00-7.00   sec   139 MBytes  1.16 Gbits/sec    0   3.90 MBytes       
[  5]   7.00-8.00   sec   136 MBytes  1.14 Gbits/sec    0   3.90 MBytes       
[  5]   8.00-9.00   sec   138 MBytes  1.15 Gbits/sec    0   3.90 MBytes       
[  5]   9.00-10.00  sec   138 MBytes  1.15 Gbits/sec    0   3.90 MBytes       
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec  1.36 GBytes  1.17 Gbits/sec    0             sender
[  5]   0.00-10.01  sec  1.36 GBytes  1.17 Gbits/sec                  receiver

iperf Done.

I was hoping it would've stayed at 1.21 Gbps, since that sounds similar to 1.21 gigawatts, which would've made a great scifi reference.

Anyways, so it seems I can get a lot better TX performance than RX, with a couple mobile antenna and 67/70 link quality.

@geerlingguy
Copy link
Owner Author

(Also noting this is through my ASUS RT-AX86U router, which is WiFi 6, but not 6e.)

@geerlingguy
Copy link
Owner Author

Need to summarize my findings on the page on the site before closing out this issue.

@lealog
Copy link

lealog commented Nov 23, 2021

What is the hardware that you are using to connect ax210 into cm4? Can you please show me the full list of hardware that you are using? I'm assuming you have several pieces (cm4, PCI adapter, etc)?

@angelia-gt

This comment was marked as off-topic.

@geerlingguy

This comment was marked as off-topic.

@geerlingguy
Copy link
Owner Author

@lealog - I've been testing through Alftel's Seaberry board, and through their 12-slot M.2 A+E key carrier on a CM4 IO Board as well.

@lu-zero
Copy link

lu-zero commented Dec 30, 2021

Did you try with smaller carrier board as well? (do a A+E M.2 carrier exists?)

@chris78123
Copy link

Hi Jeff and everyone else,

I am trying to use the AX210 on a CM4 (rpi 64bit). The CM4 has only eMMC (32G) no SD card.
I want to use the kernel rpi-5.15.y and I compiled the iwlwifi modules on the pi (quick test), directly into the kernel (not as a module) and load the firmware from https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git to /lib/firmware/iwlwifi-xxx .

The new kernel will boot without errors even with the iwlwifi.

BUT the iwlwifi does not find any firmware:

iwlwifi: .... Direct loading of the firmware for xxx fails with error -2 .

this happens with all iwlwifi-ty-xxxx

but the firmware is absolutely copied to /lib/firmware/ iwlwify-ty-xxxx, and also the permissions are standard.

Any idea why the kernel can't find the firmware?

Thanks for any help!

BR Chris

@Roman124K5
Copy link

Hi Jeff and everyone else,

I am trying to use the AX210 on a CM4 (rpi 64bit). The CM4 has only eMMC (32G) no SD card. I want to use the kernel rpi-5.15.y ....

Hi Chris and everyone,

Did you resolve this issue??
I have same problem with 5.15 kernel.

iwlwifi: .... Direct loading of the firmware for xxx fails with error -2
both IWLWIFI=y and IWLMVM=y are enabled

Thanks,
Roman

@scrappylabs
Copy link

scrappylabs commented Apr 9, 2024 via email

@scrappylabs
Copy link

Hi Jeff and everyone else,
I am trying to use the AX210 on a CM4 (rpi 64bit). The CM4 has only eMMC (32G) no SD card. I want to use the kernel rpi-5.15.y ....

Hi Chris and everyone,

Did you resolve this issue?? I have same problem with 5.15 kernel.

iwlwifi: .... Direct loading of the firmware for xxx fails with error -2 both IWLWIFI=y and IWLMVM=y are enabled

Thanks, Roman

See above: #120 (comment)

@thewade
Copy link

thewade commented Apr 16, 2024

I was able to get both the Intel AX210 (Wifi6E) and Intel BE200 (Wifi7) to work with Ubuntu 24.04 beta (kernel 6.8.0) with the Mcuzone E-key hat (#599) and the Raspberry Pi 5.

Everything worked out of the box without any configuration. Ubuntu you have iwlwifi compiled as part of the default kernel, and the linux-firmware package provided working firmware. The AX210 loaded iwlwifi-ty-a0-gf-a0-86.ucode and the BE200 loaded iwlwifi-gl-c0-fm-c0-86.ucode.

I had some issues with Raspbian when testing a few weeks ago but I will retest by compiling iwlwifi with the same kernel and loading the same firmware.

Did not test 6GHz or Wifi 7 functionality yet. If you want a separate issue open for Intel BE200 I can open one.

@wdebowski
Copy link

wdebowski commented Apr 20, 2024

@thewade I have managed to get AX200 working on Raspbian, if you are interested here are the details:

  • Flashed newest Raspberry Pi OS Desktop 64-bit;
  • Recompiled kernel 6.6.26 with iwlwifi and mvm;
  • Manually extracted iwlwifi-cc-a0-77.ucode from linux-firmware into /lib/firmware - if you know how to wget this single file instead of entire 300 MB zip, please let me know;
  • Added "pcie_aspm=off" to /boot/firmware/cmdline.txt - otherwise the card will not run.

At this point the card should run and show up as wlan1 in ifconfig, but it will likely bail on slightest provocation on power management grounds, including inserting a pendrive.

To prevent that, I have added this to /etc/modprobe.d/iwl.conf
options iwlwifi 11n_disable=1 swcrypto=0 bt_coex_active=0 power_save=0
options iwlmvm power_scheme=1
options iwlwifi d0i3_disable=1
options iwlwifi uapsd_disable=1
options iwlwifi lar_disable=1
...and if a different PSU is used, i. e. 5A-capable but not advertising it on USB-C, it's important to disable power limits in "Performance" tab of raspi-config.

Also, Bluetooth probably doesn't work, since it complains all over dmesg. Now, should I try and get myself an AX210 (since it seems to be the topic rather than AX200), or will You take this over?

@thewade
Copy link

thewade commented Apr 21, 2024

Not sure when I am going to come back to Raspbian. If I do it would probably be focused on the Intel BE200 as it is Wifi7.

To your question about getting the firmware directly, you can visit:
https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tree/

When you see the file you want, copy the link for 'plain' in the far right column.

@gdcrocx
Copy link

gdcrocx commented Apr 22, 2024

Thanks @geerlingguy! Love the videos.

I am researching on a project to build a travel size VPN router/repeater with 2 Intel AX210NGW (chose Intel for wide firmware compatibility) with external antennae and something like the Pineberry HatDrive! Dual similar to your YouTube video but the E-key and M-key compatibility issues are killing me.

Would love to hear if someone else on the thread is working on this or something similar.

@thewade
Copy link

thewade commented Apr 22, 2024

@gdcrocx there are M key to A/E key adapters.

e.g.
https://www.aliexpress.com/item/1005005440925118.html (A/E adapter)
https://www.waveshare.com/m.2-m-key-to-m.2-a-key.htm (E key adapter)

The AX210 is A/E key and should work with both.

I have used adapters that appear identical as the Aliexpress product with laptops in the past and have not had issues.

I purchased the Waveshare PCIe To M.2 Adapter (#595) to use with their M.2 M key to E key adapter, but have not retested since getting it to work with the Mcuzone E-key hat.

@thewade
Copy link

thewade commented Apr 22, 2024

@wdebowski what hardware are you using? CM4/Pi5? What adapter cards are you using?

Regarding you issue with Bluetooth, it is actually over USB. So if the adapter you are using has a connector for USB make sure you also plug it in.

@wdebowski
Copy link

I'm using Raspberry Pi 5 with M.2 HAT from MCUzone (#599 ) and Intel AX200. I have bluetooth extension of the hat plugged into USB, but I have not tested it - it might actually work, all I know is that dmesg says:

Bluetooth: hci0: Failed to load Intel firmware file intel/ibt-20-1-3.sfi (-2)
Bluetooth: hci0: Reading supported features failed (-56)

...oh. I will be honest, at the moment I saw "Bluetooth" and red color, my brain just turned off. Now when I actually have read the message, the fix seems obvious. Not professional from me, I know.

@wdebowski
Copy link

Update regarding Bluetooth: after copying ibt-20-1-3.ddc and .sfi into /lib/firmware/intel, it still throws some errors on dmesg:

[   56.160355] Bluetooth: hci1: Failed to send firmware data (-38)
[   56.160375] Bluetooth: hci1: Intel reset sent to retry FW download
[   56.165769] usb 1-2: USB disconnect, device number 13
[   56.319916] Bluetooth: hci1: sending frame failed (-19)
[   56.319924] Bluetooth: hci1: Reading supported features failed (-19)

But it seems that it works now (both Broadcom built-in and Intel onboard):

pi@raspberrypi:~ $ sudo hcitool -i hci0 scan
Scanning ...
	C8:2B:6B:0E:19:B9	JBL TUNE510BT
pi@raspberrypi:~ $ sudo hcitool -i hci1 scan
Scanning ...
	C8:2B:6B:0E:19:B9	JBL TUNE510BT

Also, it seems I have just leaked MAC of my headphones, pls no hack.

I think next I'm going to get BE200, test it and add pull request for it to be added into database along with all patches needed to get it working on Raspberry Pi OS.

@wdebowski
Copy link

Update: I have tested Intel BE200 with Rasberry Pi OS on RPi 5. What I've found out:

  • Default 6.6.26 kernel does not load any available driver for BE200, which is iwlwifi-gl-c0-fm-c0-XX.ucode. Recompiled with 6.6.29 instead and it loaded;
  • After recompilation I have tried all the tricks I did with AX200, along with different driver versions, but I'm always getting an error "WRT: Invalid buffer destination". None of the workarounds I've checked worked.

For now I temporarily don't have access to the adapter board, another one should arrive at May 14, but I don't expect much progress. It seems viable to try out Ubuntu 24.04 (which @thewade mentioned works) and look for differences.

@oldium
Copy link

oldium commented May 20, 2024

Regarding AX200 on RPi 5 (maybe it would be better to create another issue, this one is closed...).

@thewade I have managed to get AX200 working on Raspbian, if you are interested here are the details:

  • Added "pcie_aspm=off" to /boot/firmware/cmdline.txt - otherwise the card will not run.

To prevent that, I have added this to /etc/modprobe.d/iwl.conf
options iwlwifi 11n_disable=1 swcrypto=0 bt_coex_active=0 power_save=0
options iwlmvm power_scheme=1
options iwlwifi d0i3_disable=1
options iwlwifi uapsd_disable=1
options iwlwifi lar_disable=1
...and if a different PSU is used, i. e. 5A-capable but not advertising it on USB-C, it's important to disable power limits in "Performance" tab of raspi-config.

Thanks, that made it work for me. The d0i3_disable and lar_disable are unknown parameters for 6.6 kernel iwlwifi, so can be removed, some other parameters seems unnecessary too. I had to add dtparam=pciex1_tperst_clk_ms=5 (not tested with different delays) to config.txt to prevent startup issues after power-up, sometimes the card did not come up.

Currently I am using to get AX200 on RPi 5 working:

cmdline.txt:

... pcie_aspm=off ...

config.txt:

...
dtparam=pciex1=on
dtparam=pciex1_tperst_clk_ms=5
...

/etc/modprobe.d/iwl.conf:

options iwlwifi power_save=0
options iwlmvm power_scheme=1

I am not sure whether uapsd_disable is necessary, probably not. I will try it without it.

Edit: Omitting options iwlwifi uapsd_disable=1 seems stable.

@oldium
Copy link

oldium commented May 20, 2024

I am currently running trimmed-down version of config and it seems to work fine for 2 hours now. It looks like when pcie_aspm is turned off, there are no power-saving related issues and the parameters are unnecessary. This is my current config for AX200 on RPi 5:

cmdline.txt:

... pcie_aspm=off ...

config.txt:

...
dtparam=pciex1=on
dtparam=pciex1_tperst_clk_ms=5
...

No special modprobe params. My RPi works as 802.11ac client.

@wdebowski
Copy link

As I said, it does work without any modprobe parameters, until you do anything that changes power consumption, like connecting USB device or Ethernet cable. If you do exactly that, it will print an entire apocalyptic log in dmesg, and then disappear - at least in my experience.

You were right about actually unnecessary modprobe parameters, half of them can be safely dropped.

@oldium
Copy link

oldium commented May 20, 2024

I connected Ethernet cable and nothing happened in dmesg 😊 Your symptoms look like a weak power adapter more than a PCIe issue. Anyway, your configuration is a good start for anybody who has AX200.

@wdebowski
Copy link

Nope, this was happening even with official Raspberry Pi 5 PSU, albeit not every time. I don't exclude possibility of faulty component, misconfiguration or bad luck. Note that I didn't make any changes to dtparam - that might have made all the difference and I will certainly add that to my project.

@oldium
Copy link

oldium commented May 22, 2024

FYI, I just tested AX210 on RPi5 (same HW as for my AX200 tests - Mcuzone MPW7, kernel 6.6.28 with iwlwifi compiled from Debian sources with dpkg-buildpackage) and I had to use the same pcie_aspm=off workaround. I am basically using the same config as for AX200, including dtparam=pciex1_tperst_clk_ms=5 (untested without this). Now running without any dmesg noise for 9 hours.

@artroup
Copy link

artroup commented May 22, 2024

I am trying to run an AX210 behind a pcie switch for the raspberry pi 5. Either with the Pineboard's Hatdrive AI or a combination of Pineboards commander hat running HatDrive and mPICE board. I am unable to have the card stand up a wireless interface. It appears to be some time out issue loading firmware when booting from SSD. However if I remove the SSD form both set ups and boot from SD, the WiFi interface will stand up.

I have tried this with Ubuntu 23.10, 24.04 and Raspberry Pi OS bookworm with kernel recompiled.

Does anyone have thoughts to run into a similar issue?

iwlwifi 0000:04:00.0: Detected Intel(R) Wi-Fi 6 AX210 160MHz, REV=0x420 [ 7.652956] iwlwifi 0000:04:00.0: WFPM_UMAC_PD_NOTIFICATION: 0x1f [ 7.652971] iwlwifi 0000:04:00.0: WFPM_LMAC2_PD_NOTIFICATION: 0x1f [ 7.652985] iwlwifi 0000:04:00.0: WFPM_AUTH_KEY_0: 0x90 [ 7.652997] iwlwifi 0000:04:00.0: CNVI_SCU_SEQ_DATA_DW9: 0x0 [ 7.904149] iwlwifi 0000:04:00.0: Timeout waiting for PNVM load! [ 7.904151] iwlwifi 0000:04:00.0: Failed to start RT ucode: -110 [ 7.904155] iwlwifi 0000:04:00.0: WRT: Collecting data: ini trigger 13 fired (delay=0ms). [ 7.906343] iwlwifi 0000:04:00.0: Start IWL Error Log Dump:

@oldium
Copy link

oldium commented May 24, 2024

If the error is connected to the startup, then the dtparam=pciex1_tperst_clk_ms=<n> might help like in my case (but with a completely different HW). Otherwise, I have no clue.

@artroup
Copy link

artroup commented May 25, 2024

That does not appear to have helped solve the issues. What is really throwing me off is, if I boot from an SD card and just have the WiFi card behind a PCIe switch, it works perfectly. Just when I have a boot drive and the WiFi card behind the Switch I get the iwlwifi errors. So Im not sure if its really a PI/OS issue but more a driver issue.

@oldium
Copy link

oldium commented May 25, 2024

I found this thread raspberrypi/firmware#1833 - check the config if it helps

@josephrhobbs
Copy link

josephrhobbs commented Jun 20, 2024

@geerlingguy I had a question about the AX210 (and forgive me if I'm asking in the wrong place)!

It appears the Intel microcode firmware has a bug, or I've configured it incorrectly.

Setup

I'm on a Raspberry Pi CM4 running a custom Linux kernel 6.6.33 with iwlwifi and mvm.

I've connected the AX210 to the RPi CM4 I/O board using a PCIe x1 to M.2 Key A adapter.

I've installed iwlwifi-ty-59.601f3a66.0.tgz from kernel.org to /lib/firmware.

I'm using NetworkManager.

Problem

The kernel log keeps giving me something like this:

Microcode SW error detected. Restarting 0x0.
Start IWL Error Log Dump:
Transport status: 0x0000004A, valid: 6
Loaded firmware version: 59.601f3a66.0 ty-a0-gf-a0-59.ucode
0x00000071 | NMI_INTERRUPT_UMAC_FATAL
<snip>

I've done some research and it seems other people experience this. Is there a bug in the microcode?

Thank you for your help!

@josephrhobbs
Copy link

Posting again because I found the answer to my own question, thanks to the help of a coworker!

Problem

The microcode firmware isn't compatible with 6.6.33. This is a known & documented issue

Solution

Don't use iwlwifi-ty-a0-gf-a0-59.ucode, it's outdated and throws that nasty NMI_INTERRUPT_UMAC_FATAL when you try to load it.

Instead:

  1. Download the most recent linux-firmware tarball from kernel.org.

  2. Extract the iwlwifi-ty-a0-gf-a0-83.ucode file. This is the newest iwlwifi firmware version compatible with 6.6.33 according to dmesg | grep iwlwifi. You will also need to extract iwlwifi-ty-a0-gf-a0.pnvm.

  3. Install both extracted files to /lib/firmware.

  4. Reboot.

Thanks again and I hope this helps somebody else!

@wdebowski
Copy link

@hobbsbros There is easier way mentioned before to obtain the drivers, without downloading all of linux-firmware, with a command:
wget https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/plain/iwlwifi-ty-a0-gf-a0-83.ucode
wget https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/plain/iwlwifi-ty-a0-gf-a0.pnvm
Hope that helps.

@josephrhobbs
Copy link

@wdebowski I didn't see that and so I was not aware! Thank you for sharing that!

That will save me some time in the future, the linux-firmware tarball was in the hundreds of MB...

Thanks again!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests