I want to put this on the record for anyone researching the Framework 16 for a multi-monitor setup and to ask Framework to correct what the product page implies.
I bought a Framework 16 (AMD Ryzen AI 300 mainboard, discrete graphics module, four HDMI Expansion Cards) to drive four external 4K displays at 60 Hz. Out of the box on Linux (Ubuntu 24.04), it would not do it – I could get three externals running, and only after dropping resolution, while the fourth was recognized but would not light. After several weeks, I did get all four external panels running at full 3840x2160 @ 60 Hz, but only by finding two undocumented fixes myself and running into one hard hardware limit that no amount of configuration gets past.
What it actually takes (reproduction)
- Raise the **BIOS UMA Frame Buffer Size** well above the ~512 MB default.
- Boot Linux with **`amdgpu.sg_display=0`** on the kernel command line.
- Connect four HDMI Expansion Cards in slots 1, 2, 4, 5 – the four bays nearest the display hinge (the bezel side) – and drive four 4K panels. In my testing, two of the six expansion bays (the two nearest me) would not drive an HDMI card at all, so all four HDMI cards have to cluster on the bezel side; those two front bays hold the Ethernet card and a USB-C card (feeding a USB-C hub) instead.
With both changes in place, it is reliable, every boot: four external 4K displays at 60 Hz.
The two blockers, neither documented anywhere a buyer would look
- **UMA is too small to pin four 4K framebuffers.** Against the stock ~512 MB UMA, amdgpu failed with `Failed to pin framebuffer error -12` (ENOMEM) – in one ~3.5-minute window, I logged 926 of these while trying to light four panels. Raising the BIOS UMA eliminated them.
- **A scatter-gather display crash in amdgpu** (`amdgpu_dm_plane_helper_prepare_fb bind failed`), triggered by ordinary Chromium/Electron apps, which needs `amdgpu.sg_display=0` to stop.
The variability people report – a card or slot “working sometimes” – lines up with these two failures plus the display-controller limit below, not flaky cards or slots. With both fixes in place, there is no variability.
The hard limit: four displays total
The AMD iGPU caps out at **four simultaneous displays**. So it is four externals, OR three externals plus the built-in laptop panel - never five. If you read “four monitors” as four externals while still using the laptop’s own screen (a reasonable reading), that combination does not exist on this machine. Four externals mean the internal panel is off.
What I’m asking from Framework
I raised this privately first (case **7S7Y65UI**). Over several weeks, I was asked to run test after test – two operating systems, a Live USB, port-by-port matrices – and in the end, root-caused it myself. My last two messages, including the full evidence and a direct set of questions, have gone unanswered. So I am asking here, in the open:
- **Has Framework validated that four 4K external displays work with the internal display on this exact configuration on Linux?** If yes, please share the reference slot config and settings. If no, please say so plainly.
- **Correct the product page** (and the expansion-card compatibility docs) to state the real limits: that four 4K external displays require a BIOS UMA change and, on Linux, a kernel parameter; which expansion bays actually drive a display (in my testing, two of the six would not drive an HDMI card at all, so the four HDMI cards must cluster on the bezel-side bays); and that the machine drives four displays total, so four externals means the built-in display is off.
- **Fix the default for this configuration** – a sane default UMA (and/or finer-grained UMA steps), plus getting the `sg_display` workaround in front of the AMD display team – so the next customer is not debugging “error -12” against a 512 MB default to get a capability they were sold.
I like the machine, and I am glad to have it working. What I want is for the next buyer to get the real story up front, and for the advertised capability to work as shipped. Happy to share the full logs and diagnosis with anyone from Framework who wants them.
