Build Guide

Since you're reading the 15h.org build guide, we'll assume you're interested in building a fully-FOSS-firmware-compatible AMD system to run coreboot-15h. This guide assumes you're looking to build a new desktop, server, or workstation system from separately-purchased components.
If you are not building from separate components (such as for the various prebuilt Supermicro servers which included compatible motherboards), head over to the Motherboards page and look for your board's model. For laptops, see the Laptops page.
Choosing a Platform
coreboot-15h is available for many motherboards, across several different AMD sockets - which one you should choose depends on
Choose AM3+ if you are looking for higher single-thread performance in a desktop or gaming system with up to 8 cores and 64GB of memory. Desktop users will generally find high-clocking AM3+ systems "feel" faster than lower-clocking server platforms, and they are likely to perform better in gaming and web browsing.
Choose G34 if you are building a server or workstation system requiring higher multicore performance (at the cost of lower single-thread performance). Most G34 motherboards are dual-socket (up to 32 cores, 512GB RAM), but boards with 1 (up to 16 cores, 256 GB RAM) and 4 (up to 64 cores, 1TB RAM) sockets are also available.
Choose C32 for a middle-ground between these - 1 or 2 sockets, up to 16 cores, clockspeeds in between AM3+ and G34, and up to 512GB of RAM.
All of these platforms support ECC memory, IOMMU, SLAT, PCI-e ACS and are based on Orochi - AMD's high-power, high-performance platform for Family 15h systems. If you're looking to build a lower-power quad-core system (such as for an efficient router or media player machine), you may be interested in a Trinity/Richland or Kabini APU instead. For these, choose an FM2 board for midrange desktop systems, or AM1 for low-power systems with lightweight applications although please note that the AM1 currently lacks a functional IOMMU.
It is recommended to purchase later revision boards without visible dust buildup as they will likely be in better condition.
Building with AM3+
coreboot-15h supports Socket AM3+ on the ASUS Sabertooth 990FX R2.0 and Crosshair V Formula-Z. The fastest AM3+ is the 8-core FX-9590. This platform uses DDR3 UDIMM (ordinary desktop RAM) in the usual dual-channel, 2-DIMM-per-channel configuration, and also optionally supports (UDIMM) ECC memory - DIMMs up to 16GB each are supported, for up to 64GB total.
As a consumer gaming platform, CPU coolers for AM3+ are common and still widely-available.
Unlike modern desktop CPUs (and other CPUs of its time), AM3+ is PGA socket, with pins on the CPU and holes in the socket. Be careful to avoid bending pins on the CPU during installation and removal. The socket on the motherboard is typically harder to damage.
AM3+ is currently the best option if you desire a comparatively fast libre firmware system for playing your proprietary games or 3D applications.
Building with G34

Socket G34, usually on the ASUS KGPE-D16, is probably the most popular and best-known platform for FOSS firmware on AMD systems. G34 motherboards were made with 1, 2, and 4 sockets, and coreboot-15h supports boards covering all of these configurations. The fastest G34 CPU is the 16-core Opteron 6386 SE, and UDIMM, RDIMM, and LRDIMM memory are all supported. Each CPU supports 4 memory channels, and all coreboot-15h-supported boards are 2-DIMM-per-channel. RDIMMs up to 32GB, or LRDIMMs up to 64GB each, are both supported. Despite this, two 32GB RDIMMs can be used per channel, versus only one 64GB LRDIMM - this means that the memory limit is 256 GB per socket, whether you use RDIMM or LRDIMM memory. RDIMM is generally the fastest, least-expensive and most-compatible option.
Good G34 CPU coolers can be difficult to find - many G34 servers used passive CPU coolers reliant on specific fan and baffle arrangements, which are not easily adapted for standard PC cases in custom-built systems. A list of relevant CPU coolers is available on the Coolers page - the rare Noctua G34 coolers are well-regarded and highly-prized, while Dynatron active server coolers are sometimes still available used. Depending on what you can find, it may be easier to adapt a modern CPU cooler to fit instead.
G34 CPUs use LGA sockets, like Intel or newer AMD CPUs. This generally makes the CPU less fragile, but the socket on the motherboard more so. As with modern PC hardware, if you purchase a G34 motherboard without CPUs installed, inspect its sockets closely for bent, damaged, or dirty pins and the CPU for damage to the components or contacts on the bottom.
There are several pre-built KGPE-D16 systems commonly available with low wear such as the Barracuda Opteron G34 which may be a good choice as they already come with the hard to find heatsinks and 16 core CPU's.
Building with C32
Socket C32 motherboards covering both 1 and 2 socket configurations are supported. The fastest C32 CPU is the 8-core Opteron 4386, and UDIMM, RDIMM, and LRDIMM memory are all supported. Each CPU supports 2 memory channels, and all coreboot-15h-supported boards are 2-DIMM-per-channel. Unlike with G34, C32 CPUs support 64GB LRDIMMs in all slots - this means that, despite having half as many slots, C32 motherboards surprisingly support the same 256 GB per socket as G34, albeit with fewer channels.
C32 CPUs use LGA sockets, like Intel or newer AMD CPUs. This generally makes the CPU less fragile, but the socket on the motherboard more so. As with modern PC hardware, if you purchase a C32 motherboard without CPUs installed, inspect its sockets closely for bent, damaged, or dirty pins.
Socket F 3.5 pitch coolers can be used for C32 and can be far more affordable and more widely available new, see the Coolers page for more information.
Some early revision Socket C32 motherboards only support the 41xx CPU and should be avoided.
PCI Express Devices

The Family 15h and Family 16h platforms supported by coreboot-15h support up to PCI Express 2.0 ("Gen2") - a single Gen2 x16 slot delivers 8 GB/s of bandwidth. Compared to newer platforms, this can be a notable limitation for bandwidth-intensive devices such as GPUs or NVMe storage. For this reason, it's a good idea to select PCIe devices with more lanes whenever possible.
| Version | Year introduced | Line code | Transfer rate (per lane) |
Throughput (GB/s) | |||||
|---|---|---|---|---|---|---|---|---|---|
| x1 | x2 | x4 | x8 | x16 | |||||
| 1.0 | 2003 | NRZ | 8b/10b | 2.5 GT/s | 0.25 | 0.5 | 1 | 2 | 4 |
| 2.0 | 2007 | 5.0 GT/s | 0.5 | 1 | 2 | 4 | 8 | ||
| 3.0 | 2010 | 128b/130b | 8.0 GT/s | 0.985 | 1.969 | 3.938 | 7.877 | 15.754 | |
| 4.0 | 2017 | 16.0 GT/s | 1.969 | 3.938 | 7.877 | 15.754 | 31.508 | ||
| 5.0 | 2019 | 32.0 GT/s | 3.938 | 7.877 | 15.754 | 31.508 | 63.015 | ||
This table shows the throughput of all PCIe lane widths, from Gen1 through Gen5. The advantages of additional PCIe lanes on a Gen2 chipset should be clear - a Gen2 x16 link provides comparable bandwidth to a Gen3 x8, or a Gen4 x4.
Extended PCI-e features such as Above 4G Decoding, Large/Resizable BAR, SR-IOV and ATS are currently not supported by 15h coreboot but could potentially be added in the future as the chipset should support them.
PCI-e ACS is fully supported with the excellent IOMMU groups required by Qubes/Xen and VFIO device assignment.
Networking Cards:
Almost any modern networking device should be compatible if it doesn't require large BAR support:
Most 15h workstation/server boards come with dual onboard Intel 82574L interfaces, since they do not feature an on-board flash chip they are safer for direct device assignment performed without the use of SR-IOV. Not assigning the ROM BAR to the guest may improve security for direct-attach.
1Gbps:
Intel i350:
This bridgeless and switchless PCI-e device is available used and new in a variety of different configurations if you desire additional 1Gbps ports or the use of SR-IOV when it is eventually added.
The dual port i350 may be able to enable SR-IOV with 15h coreboots outdated "resource allocater v3" as the BAR fits inside the small provided host bus window.
It is advised to use an intel firmware tool to ensure that iPXE/iSCSI is disabled on the re-writable ROM.
Broadcom BCM5719:
Considered a more free device than the i350 as substantially more logic is performed by the host loaded firmware instead of the card ROM. FOSS firmware has been developed for the RaptorCS Talos 2 LOM's which should also work in independent 5719 PCI-e cards for iPXE or BMC communication.
Removing the firmware from the card and locking the flash is considered best for security as the Linux drivers should provide general functionality without it and would likely make this the most secure option.
https://github.com/meklort/bcm5719-fw
https://github.com/meklort/bcm5719-fw/issues/232 (includes a list of card part numbers)
Intel 82576:
The quad port 82576 supports SR-IOV but it is a switched design and thus requires larger amounts of resources, their use could result in your graphics devices not receiving the proper BAR's. Security and flexibility is also reduced as each pair of ports shares an IOMMU group.
10Gbps:
(10/40 Cards without large BAR requirements, binary blobs or re-writable on-board firmware required for basic functionality should be listed here.)
TBD
25/40Gbps:
TBD
GPUs
Most high-end PCIe GPUs (old and new) support using all 16 lanes, but certain newer midrange cards are x8 or x4 and could potentially limit your 3D performance when limited to PCI-e 2.0
Newer cards will likely be highly CPU limited on the fastest available 15h CPU's.
Recommended cards:
AMD Polaris as the last generation of graphics cards without the vPSP, such as the Radeon RX590 8GB, the single slot Radeon Pro WX 7100 8GB or the low profile WX 4100.
Although the vPSP is restricted by the IOMMU and has nowhere near the level of access of it's mainboard counterparts it does prevent the theoretical development of owner controlled firmware for a video card which is already considered a very complex undertaking.
If you do not care about that or consider the claim of the vPSP theoretically preventing hostile internal firmware re-writes as a benefit then potentially a newer x16 card could be purchased.
NVMe SSDs

Few motherboards supported by coreboot-15h have built-in M.2 slots. However, a PCIe M.2 SSD can be used in a PCIe slot using a common NVMe-to-x4 adapter card (many also allow an additional M.2 SATA SSD to be connected to a SATA port). A Gen2 x4 slot provides 2 GB/s of PCIe bandwidth - if your SSD's sequential read and write speeds are below 2000 MB/s, PCIe 2.0 will not bottleneck it. However, many NVMe SSDs are capable of more.
The D16 systems support PCI-e Bifurcation via the staging branch with an x16 slot convertible to x8/x8 in menuconfig thus making a four slot NVMe Cassette able to use two cards in position one and three.
It has yet to be added to the D8 but it should also work on this platform or any other with an electrical x16 slot.
Higher NVMe bandwidth on these platforms requires a directly attached SSD with more than 4 PCIe lanes - since the M.2 connector is only x4, this means using an AIC (Add-In Card)-format SSD, which installs directly in a PCIe slot. The following AIC SSDs are known to be capable of more than 2000 MB/s sequential throughput over at least 8 PCIe lanes:
| Model | Capacity | PCIe Width | Sequential Read (MB/s) | Sequential Write (MB/s) | Random Read IOPS | Random Write IOPS |
|---|---|---|---|---|---|---|
| Samsung PM1725a HHHL | 1.6/3.2/6.4 TB | x8 (up to Gen3) | 6200 (~3600 on Gen2) | 2600 | 1,000,000 | 180,000 |
| Samsung PM1735a HHHL | 1.6/3.2/6.4/12.8 TB | x8 (up to Gen4) | 7000 (~3600 on Gen2) | 3200 | 800,000 | 135,000 |
Another choice is a four slot switched NVMe PCI-e x16 card as this would enable the full usage of multiple modern PCI-e x4 SSD's with an oversubscribed PCI-e 2.0 x16 uplink if the switch supports lane rate conversion on the uplink. If you wish to assign NVMe devices to virtual machines one at a time the switch must also support ACS.
Northbridge adapters can also be used and in a single oversubscribed x4 link could add both NVMe holders and several of the controllers that you may be missing such as USB 3.0 and SATA 6Gbps at a more affordable price than purchasing separate expansion cards.