News & Commentary

AM5 Gets Its First Open-Source Firmware, and Zen 6 Starts Landing in Linux

One retail B850 board now boots on coreboot and openSIL, with a very short CPU list, while Zen 6's per-core performance floors are already merged in mainline Linux.

AM5 firmware has been a closed box since the socket launched: AGESA arrives from AMD as a binary, the board vendor wraps it, and the owner gets whatever that vendor chose to expose. One retail motherboard now has an alternative. Separately, the earliest Zen 6 enablement is turning up in mainline Linux, well ahead of any desktop part.

Open firmware boots a B850 board, on a very short CPU list

Dasharo v0.9.0 boots the MSI PRO B850-P WIFI on coreboot 25.12 and AMD openSIL, which makes it the first open-source firmware for a modern AM5 board. Support stops at Phoenix silicon: Ryzen 8000G parts up to the 8700G, validated on an 8600G. Raphael (Ryzen 7000) and Granite Ridge (Ryzen 9000) do not boot, because AMD has not published openSIL branches for them. A 9800X3D build cannot run this.

The 3mdeb release notes put this well past a proof of concept: a UEFI boot menu, UEFI Secure Boot, fTPM 2.0 with Measured Boot and no discrete TPM module, SMM write protection, capsule updates, and fast boot through AMD memory context save and restore. Ubuntu 26.04 LTS and Windows 11 25H2 both boot. 3mdeb puts the reduction in closed-source code at about 79.1 percent against the stock MSI image, with AMD PSP blobs making up most of what remains, and Igor's Lab reports the same figure. The known-issue list is short and stated plainly: UEFI capsule updates do not survive a reset, power-state restore from S5 does not work, serial console output can hang an Ubuntu boot, and the WiFi card occasionally disappears, which happens on the vendor BIOS too.

3mdeb's Michał Żygowski has posted pull requests to coreboot and openSIL covering the AM5 and Phoenix work, including Promontory21 chipset support, MMIO handling, and SMU, USB and graphics initialization, and reports bringing up the B850 platform under coreboot with both Ubuntu 26.04 and Windows 11 booting. Those are under review rather than merged, so mainline support should be treated as pending.

The payoff is not performance. It is firmware that can be read, rebuilt, and audited, and that can keep getting fixes after the vendor stops shipping BIOS updates. Whether that reaches the rest of AM5 depends on AMD publishing openSIL branches for Raphael and Granite Ridge, and no date for that has been announced.

Zen 6's per-core performance floors are already merged

AMD's CPPC Performance Priority lets user space set a different minimum performance level for each core, with platform firmware taking those floors into account when it throttles under power or thermal limits. Gautham Shenoy of AMD posted the patches for "future AMD processors", adding floor_freq and floor_count under sysfs in the amd_pstate driver, and the feature shipped in Linux 7.1.

The gaming reading of it arrived separately. Tom's Hardware frames the mechanism as a fix for microstutter and weak 1% lows, on the logic that a game's render thread holds its floor while background work absorbs the frequency cut. That is the shape of the feature, but the floors do not set themselves: it takes the latency-sensitive thread pinned to known cores and something in user space writing the values, and whether Windows will expose an equivalent control is not established. Expect it in tuning tools and scheduling daemons first, not as a default.

Zen 6 enablement is early enough that the kernel is still sorting out which chip is which. Linux 7.2-rc6 corrected family 1Ah model IDs 0xd0 through 0xd7, which were being classified as Zen 6 when they belong to Zen 5.

None of this changes an AM5 buying decision today. Dasharo is worth a look on an 8600G or 8700G machine where auditable firmware is the actual goal, and it is not a BIOS upgrade for a gaming build. The floor mechanism is worth filing away for when Zen 6 desktop reviews start: the question to ask is whether anything in the test setup was setting per-core floors, because by default nothing is.

Sources