Skip to main content

Framework Desktop PCIe Slot Trains at Gen3 Instead of Gen4

Summary

The Framework Desktop's PCIe expansion slot (00:03.2) trains at PCIe Gen3 (8 GT/s) instead of the configured Gen4 (16 GT/s), despite the BIOS being set to Gen4. This primarily affects Mellanox ConnectX-5 and ConnectX-6 network cards, which fail to reach Gen4 speeds. The root cause is an AGESA (AMD Generic Encapsulated Software Architecture) bug in the StrixHaloPI-FP11 1.0.0.2 firmware1.

Symptoms

  • PCIe expansion slot (00:03.2) trains at Gen3 (8 GT/s) instead of Gen4 (16 GT/s)1
  • BIOS is set to "Auto" or explicitly "Gen4", but the link still trains at Gen3
  • lspci -vv shows LnkSta: Speed 8GT/s instead of 16GT/s for devices in the expansion slot
  • Mellanox ConnectX-5 and ConnectX-6 cards are most affected — they consistently fail to reach Gen41
  • Intel E810 network cards and Samsung NVMe drives work fine at Gen4 in the same slot1

Affected Models

  • Framework Desktop (all configurations) — AMD Ryzen AI Max 385 and Max+ 395, BIOS 3.04 with AGESA StrixHaloPI-FP11 1.0.0.21

Root Cause

The AGESA firmware (AMD PI StrixHaloPI-FP11 1.0.0.2) has a bug in the PCIe link training sequence for the expansion slot. The training sequence fails to negotiate Gen4 with certain devices — specifically Mellanox ConnectX cards — and falls back to Gen3 instead1.

The issue is device-specific: Intel E810 cards and Samsung NVMe drives successfully train at Gen4 in the same slot, suggesting the AGESA bug is triggered by specific PCIe device behaviors during link negotiation (possibly related to LTSSM state machine timing or equalization)1.

Diagnosis

  1. Check PCIe link speed for the device:

    sudo lspci -vv | grep -A 20 '<device description>'

    Look for LnkCap (capabilities) and LnkSta (status). If LnkCap shows Speed 16GT/s but LnkSta shows Speed 8GT/s, the link trained at Gen3.

  2. Identify the slot:

    lspci -t

    The expansion slot is at 00:03.2.

  3. Verify BIOS setting: Enter BIOS → Advanced → PCIe Configuration → ensure the slot is set to "Gen4" (not "Auto" or "Gen3").

  4. Check dmesg for link training messages:

    sudo dmesg | grep -i 'pcie\|link.*train\|aer'

Workarounds & Fixes

SolutionEffectivenessNotes
Move card to M.2 slot (00:03.1) via M.2-to-MCIO adapter1Most effectiveThe M.2 slot trains Gen4 successfully. Requires an M.2-to-MCIO adapter and a PCIe riser cable
Set BIOS to explicitly "Gen4"Does not helpThe bug occurs regardless of BIOS setting
Update to BIOS 3.05 or 3.06Not confirmed to fixBIOS 3.05 updated AGESA but the fix is not mentioned in release notes. Not yet confirmed by users

Resolution

No official fix confirmed. The issue was reported via GitHub issue #180 in early 20261. BIOS 3.05 (April 27, 2026) updated the AMD PI to a newer version, but the release notes do not mention a PCIe Gen4 training fix. BIOS 3.06 (July 28, 2026) also does not mention it.

The workaround (M.2 slot with adapter) is reliable but requires additional hardware and a PCIe riser cable, which may not fit in the Desktop's compact 4.5 L chassis.

Footnotes

  1. GitHub Issue #180 — Desktop PCIe slot Gen3 training (AGESA bug) — GitHub 2 3 4 5 6 7 8 9