AMD Ryzen AI 300 not fully supported by Linux yet?

I don’t have the Framework Laptop 13", AMD AI 300 Series, so take this with a grain of salt. I actually saw improvement with upstream stable 6.14.3 kernel compared to upstream stable 6.14.2.

Testing info below, but generally, performance seemed to improve with successive kernel versions (yay, stabilizing!). 6.15.2 with May firmware performed the best, so hopefully this improvement translates to the Framework platforms as well :slight_smile:

My testing scenario includes the following:

  • mt7925 radio in an Intel-based CPU system
  • mt7996-based WiFi 7 AP (no MLO)
  • AP configured to 40MHz at channel 36 (surprisingly unused where I’m at)
  • Station configured to WPA2, no PMF (802.11w)
  • Kernels built from tagged versions in the Linux stable tree
  • Single-direction, 1Gbps-configured iperf3 UDP traffic with 10 parallel streams (iperf3 --bind-dev wlan0 -b 1G -P 10 -u, add -R to do opposite direction)

I tested each of the following kernels with mt7925 firmware from March, April, and May (available in the Linux firmware repo on kernel.org). I skipped over a few 6.14 kernels, as there really aren’t many ‘mt76’ or ‘mt7925’ driver fixes/updates until 6.14.8 and 6.14.9 and none after.

  • 6.14.2
  • 6.14.3 (includes successive connection failing fix)
  • 6.14.9 (includes IPv6 and multicast traffic drop fix)
  • 6.15.2

For folks looking to reproduce or especially detailed info:

  • Query driver and firmware information with ethtool -i wlan0 command (use -S instead for interface statistics)
  • Link rate and related information (MCS, NSS) can be queried using the iw wlan0 link command. Note that you’ll need to get a recent version to display EHT (WiFi 7) information. I like running it in a loop like watch -n .1 "iw wlan0 link"
  • wpa_supplicant config below (wpa_supplicant -c wlan0.conf -i wlan0)
  • Using a secondary sniffer radio, saw that 6.14.2 would not do upload traffic with block ACKs (frame aggregation) with all firmware versions. 6.14.3 did, though, which seemingly explains the substantial increase in upload throughput.
# Only used if you're also using 'wpa_cli'
ctrl_interface=/var/run/wpa_supplicant

network={
    # Need to use 'wpa_passphrase' to generate WPA2 'psk'
    # e.g. 'wpa_passphrase ssid password'
    ssid="ssid"
    psk=XXXXXXX

    # Can force to specific band using BSSID
    #bssid=xx:xx:xx:xx:xx:xx

    pairwise=CCMP
    key_mgmt=WPA-PSK
    ieee80211w=0
}