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 -vvshowsLnkSta: Speed 8GT/sinstead of16GT/sfor 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
-
Check PCIe link speed for the device:
sudo lspci -vv | grep -A 20 '<device description>'Look for
LnkCap(capabilities) andLnkSta(status). IfLnkCapshowsSpeed 16GT/sbutLnkStashowsSpeed 8GT/s, the link trained at Gen3. -
Identify the slot:
lspci -tThe expansion slot is at
00:03.2. -
Verify BIOS setting: Enter BIOS → Advanced → PCIe Configuration → ensure the slot is set to "Gen4" (not "Auto" or "Gen3").
-
Check dmesg for link training messages:
sudo dmesg | grep -i 'pcie\|link.*train\|aer'
Workarounds & Fixes
| Solution | Effectiveness | Notes |
|---|---|---|
Move card to M.2 slot (00:03.1) via M.2-to-MCIO adapter1 | Most effective | The 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 help | The bug occurs regardless of BIOS setting |
| Update to BIOS 3.05 or 3.06 | Not confirmed to fix | BIOS 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.
Related
- GitHub Issue #180 — Desktop PCIe slot Gen3 training — GitHub
- Framework Desktop — Known Issues
- Framework Desktop BIOS 3.05 Release STABLE — Framework Community
- Framework Desktop BIOS 3.06 Release STABLE — Framework Community