Coreboot-15h: Difference between revisions

From 15h.org
Jump to navigation Jump to search
 
(57 intermediate revisions by 2 users not shown)
Line 1: Line 1:
'''Coreboot-15h''', also known as '''Mike's Coreboot''', is a distribution of [[Coreboot]] for the ASUS [[KGPE-D16]], developed by [[User:Mrothfuss|mrothfuss]], focused on improving reliability and hardware compatibility over upstream Coreboot 4.11 and [[Dasharo]] 0.4.0. coreboot-15h includes changes for dramatically more stable memory initialization, significantly improved HyperTransport configuration, support for hardware monitoring and fan control, and patches to the build system to allow building on current Linux distributions. It is, at the time of writing, believed to be the most stable and complete Coreboot variant available for the hardware it targets.
{{lowercase title}}
 
'''coreboot-15h''', also known as '''Mike's coreboot''', is a distribution of [[coreboot]] for various [[Family 15h]] motherboards, developed by [[User:Mrothfuss|mrothfuss]], using AMD's open-source fam15h AGESA and CIMX for initialization. This has allowed for the reintroduction of several boards long-deprecated upstream (such as the [[H8QGi+-F]]), and has allowed several previously-unsupported Family 15h boards (particularly others from [[Supermicro]]) to be ported. On [[ASUS]] boards that were once supported by [[Raptor Engineering]]'s native initialization implementation (removed upstream in coreboot 4.12), coreboot-15h offers improved reliability and hardware compatibility over upstream coreboot 4.11 and [[Dasharo]] 0.4.0. Improvements include dramatically more reliable memory initialization (including support for more memory and denser modules), improved stability once booted, significantly improved HyperTransport configuration, native support for hardware monitoring and fan control, and patches to the build system to allow building on modern platforms. It is, at the time of writing, believed to be the most stable and complete coreboot variant available for the hardware it targets, and it currently appears to be the only actively-developed coreboot variant supporting family 15h.


== History ==
== History ==
As '''coreboot-D16''', coreboot-15h was previously provided in two versions - <code>coreboot-4.11</code> and <code>coreboot-4.15</code>. The former was based on upstream Coreboot 4.11, while the latter is based on Dasharo's KGPE-D16 port (an earlier out-of-tree effort to reintroduce KGPE-D16 support in Coreboot, ultimately not upstreamed), which is itself effectively a fork of Coreboot around the 4.15 release. Despite being based on an older version of Coreboot, the coreboot-4.11 version was more actively developed, was in much more widespread use, has seen significantly more testing, and was generally considered more stable and performant. The older <code>coreboot-4.15</code> version can be found in [https://github.com/mrothfuss/coreboot-D16/ the old GitHub repo].


coreboot-D16 also includes a modified version of <code>fand.cpp</code>, for use with OpenBMC, providing improved BMC-based fan control for KGPE-D16 users running [[OpenBMC]]. At present, you will need to manually replace this file in your OpenBMC source with the coreboot-D16 version before building OpenBMC in order to use it.
Attempts were made in 2022 to complete the [[Raptor Engineering]] port of coreboot for the [[KGPE-D16|ASUS KGPE-D16]] motherboard. This involved an effort by [[User:Mrothfuss|mrothfuss]] to fix bugs in the previous 4.11 codebase<ref>https://github.com/mrothfuss/coreboot-D16 coreboot-D16</ref> and development by [[Dasharo]] to migrate the platform to coreboot 4.15<ref>https://docs.dasharo.com/variants/asus_kgpe_d16/overview/</ref>. Improvements made by [[User:Mrothfuss|mrothfuss]] were upstreamed to [[Dasharo]]'s fork<ref>https://github.com/Dasharo/coreboot/pull/116</ref>. Both efforts ultimately failed to produce reliable firmware for the [[KGPE-D16|ASUS KGPE-D16]] motherboard.
 
Initial testing and development of AMD's open source AGESA/CIMx codebases by [[User:Mrothfuss|mrothfuss]] began in 2023 as a fork of coreboot 4.0 called [https://github.com/mrothfuss/coreboot-agesa coreboot-agesa]. Support for AMD Fam15 on the existing [[Supermicro]] [[H8SCM]] and [[H8QGi%2B-F]] motherboards was confirmed and improved. A new port for the [[H8DGi]] was successfully made using this codebase, providing a reliable and performant dual socket G34 motherboard similar to the [[KGPE-D16|ASUS KGPE-D16]]. Compilation of this old source code, however, required an inconvenient Debian 6 environment.
 
In early 2025, the AGESA/CIMx codebases were successfully reintegrated into coreboot 4.11 under the [[coreboot-15h]] project. Initially the previous [[Supermicro]] motherboards ([[H8QGi%2B-F]], [[H8DGi]], [[H8SCM]]) were supported. New AGESA/CIMx ports for the [[ASUS]] motherboards, [[KGPE-D16]] and [[KCMA-D8]], were developed and tested by [[User:Mrothfuss|mrothfuss]] and [[User:Rane|rane]]. Integration of the AGESA/CIMx codebase into coreboot was subsequently improved, namely adding IOMMU support for AMD Fam15 motherboards. At this point, [[coreboot-15h]] surpassed all other firmware options for the supported motherboards; providing more features, better multicore performance, better power efficiency, and speculative-execution mitigation support.
 
== Compiling coreboot from source ==
Compilation has been tested on Debian 12 and FreeBSD 14.2. Building on FreeBSD is the same as building on Linux, but 'make' is replaced with 'gmake'.
 
'''Debian 12 Dependencies'''


== Building on Debian 12 ==
Instructions for KGPE-D16
  <nowiki>
  <nowiki>
### Install build dependencies
apt install git build-essential m4 bison flex zlib1g-dev libncurses-dev imagemagick python-is-python3
apt install git build-essential m4 bison flex zlib1g-dev libncurses-dev imagemagick python-is-python3
</nowiki>


'''FreeBSD 14.2 Dependencies'''
<nowiki>
### This list may be incomplete
pkg install git bash gmake gcc12 m4 bison ImageMagick7  python autoconf automake gettext-tools gnu-unifont
</nowiki>
'''Configuring and Compiling'''
<nowiki>
### Fetch coreboot-15h source
### Fetch coreboot-15h source
# Tip: Add the '--depth=1' argument to save bandwidth. You
#      will not be able to checkout previous commits if you
#      use this shallow clone option.
git clone https://git.15h.org/mrothfuss/coreboot-15h.git
git clone https://git.15h.org/mrothfuss/coreboot-15h.git
cd coreboot-15h
cd coreboot-15h


### Optional: Fetch vboot (TPM Measured boot support)
### Optional: Checkout a specific commit to reproduce a release
git submodule update --init --checkout 3rdparty/vboot
# git commit-id's are included at the end of a release name
# Example: 2025.11.09-v4.11-6f1fd5cf220
git checkout 6f1fd5cf220


### Optional: Fetch blobs (AMD microcode and the AST2050 VGABIOS)
### Optional: Fetch blobs (required for VGABIOS ROMs)
### Both can be explicitly excluded from the build by menuconfig
# Blobs can be explicitly excluded from the build by menuconfig
# Tip: Add the '--depth=1' argument to save bandwidth
git submodule update --init --checkout 3rdparty/blobs
git submodule update --init --checkout 3rdparty/blobs


# Build the cross compiler (may take a while)
### Optional: Manually fetch the vboot submodule
# This submodule will be fetched automatically, but needs to be
# manually downloaded if you want to use the 'UPDATED_SUBMODULES=1'
# option during the coreboot.rom compilation (see below).
# Tip: Add the '--depth=1' argument to save bandwidth
git submodule update --init --checkout 3rdparty/vboot
 
### Build the cross compiler (may take a while)
make crossgcc-i386 CPUS=$(nproc)
make crossgcc-i386 CPUS=$(nproc)


### Load a config file (select one).
### Select a config template from ./configs
### There are three default configs provided, each with 2MB and 16MB variants.
# These config files are used to compile the releases distributed on 15h.org
###
# Copy the config you want to start with, you can adjust it in the next step
### coreboot with AMD microcode and the AST2050 VGABIOS (easiest).
### The VGABIOS on any attached GPUs are also executed.
### This config has full graphics support, any PCIe GPU may be easily used with this config.
### Disable the AST2050 via jumper to use a PCIe GPU as the primary display.
###
cp configs/config.asus_kgpe-d16_seabios_ucode_ast2050-oprom_vga-oproms_2mb .config
cp configs/config.asus_kgpe-d16_seabios_ucode_ast2050-oprom_vga-oproms_2mb .config
cp configs/config.asus_kgpe-d16_seabios_ucode_ast2050-oprom_vga-oproms_16mb .config
###
### coreboot with AMD microcode.
### This config has only text-mode support at boot. Full graphics can be setup by the OS after booting.
### The onboard AST2050 or any NVIDIA GTX 700-series (or older) will display SeaBIOS and your OS bootloader in text-mode.
### Disable the AST2050 via jumper to use the NVIDIA card as the primary boot display.
### Newer GPUs will not display SeaBIOS or the OS bootloader, but can be initialized by drivers in your OS.
### To use newer GPUs, it is recommended to use the AST2050 VGA to access SeaBIOS and your OS bootloader.
### The OS can be configured to use the GPU as the primary display with full performance.
###
cp configs/config.asus_kgpe-d16_seabios_ucode_no-oproms_2mb .config
cp configs/config.asus_kgpe-d16_seabios_ucode_no-oproms_16mb .config
###
### coreboot (blob free)
### This config is similar to the previous config, but excludes AMD microcode updates
### Do not use this config with 6300 series Opteron CPUs
###
cp configs/config.asus_kgpe-d16_seabios_no-ucode_no-oproms_2mb .config
cp configs/config.asus_kgpe-d16_seabios_no-ucode_no-oproms_16mb .config


### Optional: Adjust your configuration
### Optional: Review or adjust your configuration
make menuconfig
make menuconfig


### Build coreboot, your ROM will be at ./build/coreboot.rom
### Build coreboot, your ROM will be at ./build/coreboot.rom
make</nowiki>
# Tip: Add the 'UPDATED_SUBMODULES=1' argument to skip fetching/updating all submodules
Instructions for cleaning your build environment (necessary when switching motherboards)
make
</nowiki>
 
'''Listing Source Files'''
 
To review a precise list of files compiled into your ./build/coreboot.rom file, use this command.
<nowiki>
make filelist</nowiki>
 
This command works after a successful 'make' and changes depending on the motherboard and configuration options selected.
 
'''Fetching Updates'''
 
<nowiki>
git pull</nowiki>
 
'''Switching Motherboards'''
 
If you want to switch motherboards, you must first clean the build environment. Afterwards, continue from the config selection step.
  <nowiki>
  <nowiki>
make distclean</nowiki>
make distclean</nowiki>


==Releases==
==Stable==
For source, see [https://git.15h.org/mrothfuss/coreboot-15h our Git forge]
 
=== [[KCMA-D8|ASUS KCMA-D8]] ===
{| class="wikitable"
| {{center|'''Release'''}}
| {{center|'''Notes'''}}
| {{center|'''Download Options'''}}
|-
|2025.11.11-v4.11-61cbef5bdd2
|
* Initial v4.11 AGESA release
|
* SeaBIOS + uCode + VGA-OpROMs
** [https://15h.org/images/4/4f/Coreboot-15h_2025.11.11-v4.11-61cbef5bdd2_asus_kcma-d8_seabios_ucode_ast2050-oprom_vga-oproms_2mb.tar.gz 2MB]
* SeaBIOS + uCode (text-mode)
** [https://15h.org/images/f/f5/Coreboot-15h_2025.11.11-v4.11-61cbef5bdd2_asus_kcma-d8_seabios_ucode_no-oproms_2mb.tar.gz 2MB]
* SeaBIOS (text-mode, blob-free)
** [https://15h.org/images/4/48/Coreboot-15h_2025.11.11-v4.11-61cbef5bdd2_asus_kcma-d8_seabios_no-ucode_no-oproms_2mb.tar.gz 2MB]
|}
 
=== [[KGPE-D16|ASUS KGPE-D16]] ===
{| class="wikitable"
| {{center|'''Release'''}}
| {{center|'''Notes'''}}
| {{center|'''Download Options'''}}
|-
|2025.11.09-v4.11-6f1fd5cf220
|
* Optimized HyperTransport Speed and Deemphasis
* Optimized RAM Power Saving
* Optimized RAM ECC Scrub Rates
* Setup Thermal Throttling
* Enabled Thermal Shutdown
|
* SeaBIOS + uCode + VGA-OpROMs
** [https://15h.org/images/9/9c/Coreboot-15h_2025.11.09-v4.11-6f1fd5cf220_asus_kgpe-d16_seabios_ucode_ast2050-oprom_vga-oproms_2mb.tar.gz 2MB]
* SeaBIOS + uCode (text-mode)
** [https://15h.org/images/8/86/Coreboot-15h_2025.11.09-v4.11-6f1fd5cf220_asus_kgpe-d16_seabios_ucode_no-oproms_2mb.tar.gz 2MB]
* SeaBIOS (text-mode, blob-free)
** [https://15h.org/images/4/4c/Coreboot-15h_2025.11.09-v4.11-6f1fd5cf220_asus_kgpe-d16_seabios_no-ucode_no-oproms_2mb.tar.gz 2MB]
|-
|2025.10.31-v4.11-c71dd7896fe
|
* Enabled the IOMMU
* Enabled the HPET
* Added coreinfo and memtest
|
* SeaBIOS + uCode + VGA-OpROMs
** [https://15h.org/images/0/0b/Coreboot-15h_2025.10.31-v4.11-c71dd7896fe_asus_kgpe-d16_seabios_ucode_ast2050-oprom_vga-oproms_2mb.tar.gz 2MB]
* SeaBIOS + uCode (text-mode)
** [https://15h.org/images/f/f9/Coreboot-15h_2025.10.31-v4.11-c71dd7896fe_asus_kgpe-d16_seabios_ucode_no-oproms_2mb.tar.gz 2MB]
* SeaBIOS (text-mode, blob-free)
** [https://15h.org/images/2/22/Coreboot-15h_2025.10.31-v4.11-c71dd7896fe_asus_kgpe-d16_seabios_no-ucode_no-oproms_2mb.tar.gz 2MB]
|-
|2025.10.11-v4.11-63a34806baf
|
* Added support for microcode removal
* Created configs with blobs removed
|
* SeaBIOS + uCode + VGA-OpROMs
** [https://15h.org/images/1/16/Coreboot-15h_2025.10.11-v4.11-63a34806baf_asus_kgpe-d16_seabios_ucode_ast2050-oprom_vga-oproms_2mb.tar.gz 2MB]
* SeaBIOS + uCode (text-mode)
** [https://15h.org/images/2/27/Coreboot-15h_2025.10.11-v4.11-63a34806baf_asus_kgpe-d16_seabios_ucode_no-oproms_2mb.tar.gz 2MB]
* SeaBIOS (text-mode, blob-free)
** [https://15h.org/images/8/89/Coreboot-15h_2025.10.11-v4.11-63a34806baf_asus_kgpe-d16_seabios_no-ucode_no-oproms_2mb.tar.gz 2MB]
|-
|2025.10.10-v4.11-a99acc20d4a
|
* Initial v4.11 AGESA release
** Robust support for all DIMM slots
*** up to 32GB RDIMMs supported
*** up to 64GB LRDIMMs supported
** Up to 4 PCIe cards supported
** Native fan control
** Latest microcode
** IOMMU is disabled
|
* SeaBIOS + uCode + VGA-OpROMs
** [https://15h.org/images/6/6c/Coreboot-15h_2025.10.10-v4.11-a99acc20d4a_asus_kgpe-d16_seabios_ucode_ast2050-oprom_vga-oproms_2mb.tar.gz 2MB]
|}


=== SuperMicro H8SCM ===
=== [[H8SCM|SuperMicro H8SCM]] ===
{| class="wikitable"
{| class="wikitable"
| {{center|'''Release'''}}
| {{center|'''Release'''}}
| {{center|'''Notes'''}}
| {{center|'''Notes'''}}
| {{center|'''Download Options'''}}
| {{center|'''Download Options'''}}
|-
|2025.11.18-v4.11-4094163932a
|
* Partial UART support
** Requires the BMC to be online
|
* SeaBIOS + uCode + VGA-OpROMs
** [https://15h.org/images/c/c7/Coreboot-15h_2025.11.18-v4.11-4094163932a_supermicro_h8scm_seabios_ucode_matrox-oprom_vga-oproms.tar.gz 2MB]
|-
|2025.11.11-v4.11-61cbef5bdd2
|
* Minor bug fixes relating to the C32 socket
|
* SeaBIOS + uCode + VGA-OpROMs
** [https://15h.org/images/a/ab/Coreboot-15h_2025.11.11-v4.11-61cbef5bdd2_supermicro_h8scm_seabios_ucode_matrox-oprom_vga-oproms.tar.gz 2MB]
|-
|2025.11.09-v4.11-6f1fd5cf220
|
* Optimized HyperTransport Speed and Deemphasis
* Optimized RAM Power Saving
* Optimized RAM ECC Scrub Rates
* Setup Thermal Throttling
* Enabled Thermal Shutdown
|
* SeaBIOS + uCode + VGA-OpROMs
** [https://15h.org/images/2/22/Coreboot-15h_2025.11.09-v4.11-6f1fd5cf220_supermicro_h8scm_seabios_ucode_matrox-oprom_vga-oproms.tar.gz 2MB]
|-
|2025.10.31-v4.11-c71dd7896fe
|
* Enabled the IOMMU
* Enabled the HPET
* Added coreinfo and memtest
|
* SeaBIOS + uCode + VGA-OpROMs
** [https://15h.org/images/3/31/Coreboot-15h_2025.10.31-v4.11-c71dd7896fe_supermicro_h8scm_seabios_ucode_matrox-oprom_vga-oproms.tar.gz 2MB]
|-
|-
|2025.04.28-v4.11-34811b78c48
|2025.04.28-v4.11-34811b78c48
Line 103: Line 241:
|}
|}


=== SuperMicro H8DGi ===
=== [[H8SGL|SuperMicro H8SGL]] ===
{| class="wikitable"
| {{center|'''Release'''}}
| {{center|'''Notes'''}}
| {{center|'''Download Options'''}}
|-
|2025.11.18-v4.11-4094163932a
|
* Partial UART support
** Requires the BMC to be online
|
* SeaBIOS + uCode + VGA-OpROMs
** [https://15h.org/images/2/26/Coreboot-15h_2025.11.18-v4.11-4094163932a_supermicro_h8sgl_seabios_ucode_matrox-oprom_vga-oproms.tar.gz 2MB]
|-
|2025.11.09-v4.11-6f1fd5cf220
|
* Optimized HyperTransport Speed and Deemphasis
* Optimized RAM Power Saving
* Optimized RAM ECC Scrub Rates
* Setup Thermal Throttling
* Enabled Thermal Shutdown
|
* SeaBIOS + uCode + VGA-OpROMs
** [https://15h.org/images/c/cc/Coreboot-15h_2025.11.09-v4.11-6f1fd5cf220_supermicro_h8sgl_seabios_ucode_matrox-oprom_vga-oproms.tar.gz 2MB]
|-
|2025.10.31-v4.11-c71dd7896fe
|
* Enabled the IOMMU
* Enabled the HPET
* Added coreinfo and memtest
|
* SeaBIOS + uCode + VGA-OpROMs
** [https://15h.org/images/5/51/Coreboot-15h_2025.10.31-v4.11-c71dd7896fe_supermicro_h8sgl_seabios_ucode_matrox-oprom_vga-oproms.tar.gz 2MB]
|-
|2025.09.15-v4.11-58cfb23a680
|
* Initial release
** IOMMU is disabled
|
* SeaBIOS + uCode + VGA-OpROMs
** [https://15h.org/images/a/a4/Coreboot-15h_2025.09.15-v4.11-58cfb23a680_supermicro_h8sgl_seabios_ucode_matrox-oprom_vga-oproms.tar.gz 2MB]
|}
 
==Beta==
 
=== [[F2A85-M|ASUS F2A85-M]] ===
{| class="wikitable"
| {{center|'''Release'''}}
| {{center|'''Notes'''}}
| {{center|'''Download Options'''}}
|-
|2025.03.08-v4.11-9f78cb25cd
|
* Initial release
** Uses the existing AGESA 15TN codebase
|
* SeaBIOS + uCode + XHCI-FW + VGA-OpROMs
** [https://15h.org/images/0/03/Coreboot-15h_2025.03.08-v4.11-9f78cb25cd_asus_f2a85-m_seabios_ucode_xhci-fw_vga-oproms_8mb.tar.gz 8MB]
|}
 
=== [[F2A85-M PRO|ASUS F2A85-M PRO]] ===
{| class="wikitable"
| {{center|'''Release'''}}
| {{center|'''Notes'''}}
| {{center|'''Download Options'''}}
|-
|2025.03.09-v4.11-1ca15f788b
|
* Initial release
** Uses the existing AGESA 15TN codebase
|
* SeaBIOS + uCode + XHCI-FW + VGA-OpROMs
** [https://15h.org/images/a/a5/Coreboot-15h_2025.03.09-v4.11-1ca15f788b_asus_f2a85-m-pro_seabios_ucode_xhci-fw_vga-oproms_8mb.tar.gz 8MB-UNTESTED]
|}
 
=== [[F2A85-M LE|ASUS F2A85-M LE]] ===
{| class="wikitable"
| {{center|'''Release'''}}
| {{center|'''Notes'''}}
| {{center|'''Download Options'''}}
|-
|2025.03.09-v4.11-1ca15f788b
|
* Initial release
** Uses the existing AGESA 15TN codebase
|
* SeaBIOS + uCode + XHCI-FW + VGA-OpROMs
** [https://15h.org/images/e/ee/Coreboot-15h_2025.03.09-v4.11-1ca15f788b_asus_f2a85-m-le_seabios_ucode_xhci-fw_vga-oproms_8mb.tar.gz 8MB-UNTESTED]
|}
 
 
=== [[H8DGi|SuperMicro H8DGi]] ===
{| class="wikitable"
{| class="wikitable"
| {{center|'''Release'''}}
| {{center|'''Release'''}}
Line 120: Line 349:
|}
|}


=== SuperMicro H8QGi+-F ===
=== [[H8DG6|SuperMicro H8DG6]] ===
{| class="wikitable"
| {{center|'''Release'''}}
| {{center|'''Notes'''}}
| {{center|'''Download Options'''}}
|-
|2025.05.08-v4.11-7f9e8d15532
|
* Initial support
** Onboard SAS enabled
** No fan control
** Northbridge 2 is offline
** IOMMU is disabled
|
* SeaBIOS + uCode + VGA-OpROMs
** [https://15h.org/images/6/63/Coreboot-15h_2025.05.08-v4.11-7f9e8d15532_supermicro_h8dg6_seabios_ucode_matrox-oprom_vga-oproms.tar.gz 2MB]
|}
 
=== [[H8QGi%2B-F|SuperMicro H8QGi+-F]] ===
{| class="wikitable"
{| class="wikitable"
| {{center|'''Release'''}}
| {{center|'''Release'''}}
| {{center|'''Notes'''}}
| {{center|'''Notes'''}}
| {{center|'''Download Options'''}}
| {{center|'''Download Options'''}}
|-
|2025.10.31-v4.11-c71dd7896fe
|
* Enabled the IOMMU
* Enabled the HPET
* Added coreinfo and memtest
|
* SeaBIOS + uCode + VGA-OpROMs
** [https://15h.org/images/a/a5/Coreboot-15h_2025.10.31-v4.11-c71dd7896fe_supermicro_h8qgi-pm-f_seabios_ucode_matrox-oprom_vga-oproms.tar.gz 2MB]
|-
|-
|2025.04.28-v4.11-34811b78c48
|2025.04.28-v4.11-34811b78c48
Line 155: Line 411:
|}
|}


=== SuperMicro H8QG6+-F ===
=== [[H8QG6%2B-F|SuperMicro H8QG6+-F]] ===
{| class="wikitable"
{| class="wikitable"
| {{center|'''Release'''}}
| {{center|'''Release'''}}
| {{center|'''Notes'''}}
| {{center|'''Notes'''}}
| {{center|'''Download Options'''}}
| {{center|'''Download Options'''}}
|-
|2025.10.31-v4.11-c71dd7896fe
|
* Enabled the IOMMU
* Enabled the HPET
* Added coreinfo and memtest
|
* SeaBIOS + uCode + VGA-OpROMs
** [https://15h.org/images/f/f9/Coreboot-15h_2025.10.31-v4.11-c71dd7896fe_supermicro_h8qg6-pm-f_seabios_ucode_matrox-oprom_vga-oproms.tar.gz 2MB]
|-
|-
|2025.05.03-v4.11-6656887228f
|2025.05.03-v4.11-6656887228f
Line 199: Line 464:
|}
|}


== Deprecated ==


=== ASUS F2A85-M ===
=== [[KGPE-D16 (Raptor)|ASUS KGPE-D16 (Raptor)]] ===
{| class="wikitable"
| {{center|'''Release'''}}
| {{center|'''Notes'''}}
| {{center|'''Download Options'''}}
|-
|2025.03.08-v4.11-9f78cb25cd
|
* Initial release
** Uses the existing AGESA 15TN codebase
|
* SeaBIOS + uCode + XHCI-FW + VGA-OpROMs
** [https://15h.org/images/0/03/Coreboot-15h_2025.03.08-v4.11-9f78cb25cd_asus_f2a85-m_seabios_ucode_xhci-fw_vga-oproms_8mb.tar.gz 8MB]
|}
 
 
=== ASUS F2A85-M PRO ===
{| class="wikitable"
| {{center|'''Release'''}}
| {{center|'''Notes'''}}
| {{center|'''Download Options'''}}
|-
|2025.03.09-v4.11-1ca15f788b
|
* Initial release
** Uses the existing AGESA 15TN codebase
|
* SeaBIOS + uCode + XHCI-FW + VGA-OpROMs
** [https://15h.org/images/a/a5/Coreboot-15h_2025.03.09-v4.11-1ca15f788b_asus_f2a85-m-pro_seabios_ucode_xhci-fw_vga-oproms_8mb.tar.gz 8MB-UNTESTED]
|}
 
 
=== ASUS F2A85-M LE ===
{| class="wikitable"
| {{center|'''Release'''}}
| {{center|'''Notes'''}}
| {{center|'''Download Options'''}}
|-
|2025.03.09-v4.11-1ca15f788b
|
* Initial release
** Uses the existing AGESA 15TN codebase
|
* SeaBIOS + uCode + XHCI-FW + VGA-OpROMs
** [https://15h.org/images/e/ee/Coreboot-15h_2025.03.09-v4.11-1ca15f788b_asus_f2a85-m-le_seabios_ucode_xhci-fw_vga-oproms_8mb.tar.gz 8MB-UNTESTED]
|}
 
===ASUS KGPE-D16===
{| class="wikitable"
{| class="wikitable"
| {{center|'''Release'''}}
| {{center|'''Release'''}}

Latest revision as of 18:17, 19 November 2025

coreboot-15h, also known as Mike's coreboot, is a distribution of coreboot for various Family 15h motherboards, developed by mrothfuss, using AMD's open-source fam15h AGESA and CIMX for initialization. This has allowed for the reintroduction of several boards long-deprecated upstream (such as the H8QGi+-F), and has allowed several previously-unsupported Family 15h boards (particularly others from Supermicro) to be ported. On ASUS boards that were once supported by Raptor Engineering's native initialization implementation (removed upstream in coreboot 4.12), coreboot-15h offers improved reliability and hardware compatibility over upstream coreboot 4.11 and Dasharo 0.4.0. Improvements include dramatically more reliable memory initialization (including support for more memory and denser modules), improved stability once booted, significantly improved HyperTransport configuration, native support for hardware monitoring and fan control, and patches to the build system to allow building on modern platforms. It is, at the time of writing, believed to be the most stable and complete coreboot variant available for the hardware it targets, and it currently appears to be the only actively-developed coreboot variant supporting family 15h.

History

Attempts were made in 2022 to complete the Raptor Engineering port of coreboot for the ASUS KGPE-D16 motherboard. This involved an effort by mrothfuss to fix bugs in the previous 4.11 codebase[1] and development by Dasharo to migrate the platform to coreboot 4.15[2]. Improvements made by mrothfuss were upstreamed to Dasharo's fork[3]. Both efforts ultimately failed to produce reliable firmware for the ASUS KGPE-D16 motherboard.

Initial testing and development of AMD's open source AGESA/CIMx codebases by mrothfuss began in 2023 as a fork of coreboot 4.0 called coreboot-agesa. Support for AMD Fam15 on the existing Supermicro H8SCM and H8QGi+-F motherboards was confirmed and improved. A new port for the H8DGi was successfully made using this codebase, providing a reliable and performant dual socket G34 motherboard similar to the ASUS KGPE-D16. Compilation of this old source code, however, required an inconvenient Debian 6 environment.

In early 2025, the AGESA/CIMx codebases were successfully reintegrated into coreboot 4.11 under the coreboot-15h project. Initially the previous Supermicro motherboards (H8QGi+-F, H8DGi, H8SCM) were supported. New AGESA/CIMx ports for the ASUS motherboards, KGPE-D16 and KCMA-D8, were developed and tested by mrothfuss and rane. Integration of the AGESA/CIMx codebase into coreboot was subsequently improved, namely adding IOMMU support for AMD Fam15 motherboards. At this point, coreboot-15h surpassed all other firmware options for the supported motherboards; providing more features, better multicore performance, better power efficiency, and speculative-execution mitigation support.

Compiling coreboot from source

Compilation has been tested on Debian 12 and FreeBSD 14.2. Building on FreeBSD is the same as building on Linux, but 'make' is replaced with 'gmake'.

Debian 12 Dependencies

apt install git build-essential m4 bison flex zlib1g-dev libncurses-dev imagemagick python-is-python3
 

FreeBSD 14.2 Dependencies

### This list may be incomplete
pkg install git bash gmake gcc12 m4 bison ImageMagick7  python autoconf automake gettext-tools gnu-unifont
 

Configuring and Compiling

### Fetch coreboot-15h source
# Tip: Add the '--depth=1' argument to save bandwidth. You
#      will not be able to checkout previous commits if you
#      use this shallow clone option.
git clone https://git.15h.org/mrothfuss/coreboot-15h.git
cd coreboot-15h

### Optional: Checkout a specific commit to reproduce a release
# git commit-id's are included at the end of a release name
# Example: 2025.11.09-v4.11-6f1fd5cf220
git checkout 6f1fd5cf220

### Optional: Fetch blobs (required for VGABIOS ROMs)
# Blobs can be explicitly excluded from the build by menuconfig
# Tip: Add the '--depth=1' argument to save bandwidth
git submodule update --init --checkout 3rdparty/blobs

### Optional: Manually fetch the vboot submodule
# This submodule will be fetched automatically, but needs to be
# manually downloaded if you want to use the 'UPDATED_SUBMODULES=1'
# option during the coreboot.rom compilation (see below).
# Tip: Add the '--depth=1' argument to save bandwidth
git submodule update --init --checkout 3rdparty/vboot

### Build the cross compiler (may take a while)
make crossgcc-i386 CPUS=$(nproc)

### Select a config template from ./configs
# These config files are used to compile the releases distributed on 15h.org
# Copy the config you want to start with, you can adjust it in the next step
cp configs/config.asus_kgpe-d16_seabios_ucode_ast2050-oprom_vga-oproms_2mb .config

### Optional: Review or adjust your configuration
make menuconfig

### Build coreboot, your ROM will be at ./build/coreboot.rom
# Tip: Add the 'UPDATED_SUBMODULES=1' argument to skip fetching/updating all submodules
make

Listing Source Files

To review a precise list of files compiled into your ./build/coreboot.rom file, use this command.

make filelist

This command works after a successful 'make' and changes depending on the motherboard and configuration options selected.

Fetching Updates

git pull

Switching Motherboards

If you want to switch motherboards, you must first clean the build environment. Afterwards, continue from the config selection step.

make distclean

Stable

Release
Notes
Download Options
2025.11.11-v4.11-61cbef5bdd2
  • Initial v4.11 AGESA release
  • SeaBIOS + uCode + VGA-OpROMs
  • SeaBIOS + uCode (text-mode)
  • SeaBIOS (text-mode, blob-free)
Release
Notes
Download Options
2025.11.09-v4.11-6f1fd5cf220
  • Optimized HyperTransport Speed and Deemphasis
  • Optimized RAM Power Saving
  • Optimized RAM ECC Scrub Rates
  • Setup Thermal Throttling
  • Enabled Thermal Shutdown
  • SeaBIOS + uCode + VGA-OpROMs
  • SeaBIOS + uCode (text-mode)
  • SeaBIOS (text-mode, blob-free)
2025.10.31-v4.11-c71dd7896fe
  • Enabled the IOMMU
  • Enabled the HPET
  • Added coreinfo and memtest
  • SeaBIOS + uCode + VGA-OpROMs
  • SeaBIOS + uCode (text-mode)
  • SeaBIOS (text-mode, blob-free)
2025.10.11-v4.11-63a34806baf
  • Added support for microcode removal
  • Created configs with blobs removed
  • SeaBIOS + uCode + VGA-OpROMs
  • SeaBIOS + uCode (text-mode)
  • SeaBIOS (text-mode, blob-free)
2025.10.10-v4.11-a99acc20d4a
  • Initial v4.11 AGESA release
    • Robust support for all DIMM slots
      • up to 32GB RDIMMs supported
      • up to 64GB LRDIMMs supported
    • Up to 4 PCIe cards supported
    • Native fan control
    • Latest microcode
    • IOMMU is disabled
  • SeaBIOS + uCode + VGA-OpROMs
Release
Notes
Download Options
2025.11.18-v4.11-4094163932a
  • Partial UART support
    • Requires the BMC to be online
  • SeaBIOS + uCode + VGA-OpROMs
2025.11.11-v4.11-61cbef5bdd2
  • Minor bug fixes relating to the C32 socket
  • SeaBIOS + uCode + VGA-OpROMs
2025.11.09-v4.11-6f1fd5cf220
  • Optimized HyperTransport Speed and Deemphasis
  • Optimized RAM Power Saving
  • Optimized RAM ECC Scrub Rates
  • Setup Thermal Throttling
  • Enabled Thermal Shutdown
  • SeaBIOS + uCode + VGA-OpROMs
2025.10.31-v4.11-c71dd7896fe
  • Enabled the IOMMU
  • Enabled the HPET
  • Added coreinfo and memtest
  • SeaBIOS + uCode + VGA-OpROMs
2025.04.28-v4.11-34811b78c48
  • Fixed support for rev 1.02 motherboards
  • Added support for UDIMM and LRDIMM memory
  • Updated config
    • RAM interleaving is only enabled for channels, not bank nor nodes
  • SeaBIOS + uCode + VGA-OpROMs
2025.03.08-v4.11-9f78cb25cd
  • Updated config
    • Onboard VGA is no longer primary by default
  • SeaBIOS + uCode + VGA-OpROMs
2025.02.23-v4.11-583f5e6a34
  • Initial v4.11 AGESA release
    • Microcode Updated
    • Added fan control
    • Various AGESA bugs fixed
    • IOMMU is disabled
  • SeaBIOS + uCode + VGA-OpROMs
Release
Notes
Download Options
2025.11.18-v4.11-4094163932a
  • Partial UART support
    • Requires the BMC to be online
  • SeaBIOS + uCode + VGA-OpROMs
2025.11.09-v4.11-6f1fd5cf220
  • Optimized HyperTransport Speed and Deemphasis
  • Optimized RAM Power Saving
  • Optimized RAM ECC Scrub Rates
  • Setup Thermal Throttling
  • Enabled Thermal Shutdown
  • SeaBIOS + uCode + VGA-OpROMs
2025.10.31-v4.11-c71dd7896fe
  • Enabled the IOMMU
  • Enabled the HPET
  • Added coreinfo and memtest
  • SeaBIOS + uCode + VGA-OpROMs
2025.09.15-v4.11-58cfb23a680
  • Initial release
    • IOMMU is disabled
  • SeaBIOS + uCode + VGA-OpROMs

Beta

Release
Notes
Download Options
2025.03.08-v4.11-9f78cb25cd
  • Initial release
    • Uses the existing AGESA 15TN codebase
  • SeaBIOS + uCode + XHCI-FW + VGA-OpROMs
Release
Notes
Download Options
2025.03.09-v4.11-1ca15f788b
  • Initial release
    • Uses the existing AGESA 15TN codebase
Release
Notes
Download Options
2025.03.09-v4.11-1ca15f788b
  • Initial release
    • Uses the existing AGESA 15TN codebase


Release
Notes
Download Options
2025.05.03-v4.11-6656887228f
  • Initial support
    • No fan control
    • Northbridge 2 is offline
    • IOMMU is disabled
  • SeaBIOS + uCode + VGA-OpROMs
Release
Notes
Download Options
2025.05.08-v4.11-7f9e8d15532
  • Initial support
    • Onboard SAS enabled
    • No fan control
    • Northbridge 2 is offline
    • IOMMU is disabled
  • SeaBIOS + uCode + VGA-OpROMs
Release
Notes
Download Options
2025.10.31-v4.11-c71dd7896fe
  • Enabled the IOMMU
  • Enabled the HPET
  • Added coreinfo and memtest
  • SeaBIOS + uCode + VGA-OpROMs
2025.04.28-v4.11-34811b78c48
  • Added support for UDIMM and LRDIMM memory
  • Updated config
    • RAM interleaving is only enabled for channels, not bank nor nodes
  • SeaBIOS + uCode + VGA-OpROMs
2025.03.08-v4.11-9f78cb25cd
  • Updated config
    • Onboard VGA is no longer primary by default
  • SeaBIOS + uCode + VGA-OpROMs
2025.02.25-v4.11-97011b87c1
  • Initial v4.11 AGESA release
    • Microcode Updated
    • Added fan control
    • Various AGESA bugs fixed
    • IOMMU is disabled
  • SeaBIOS + uCode + VGA-OpROMs
Release
Notes
Download Options
2025.10.31-v4.11-c71dd7896fe
  • Enabled the IOMMU
  • Enabled the HPET
  • Added coreinfo and memtest
  • SeaBIOS + uCode + VGA-OpROMs
2025.05.03-v4.11-6656887228f
  • Activated PCIe slots 1 and 3
  • SeaBIOS + uCode + VGA-OpROMs
2025.04.28-v4.11-34811b78c48
  • Added support for UDIMM and LRDIMM memory
  • Updated config
    • RAM interleaving is only enabled for channels, not bank nor nodes
  • SeaBIOS + uCode + VGA-OpROMs
2025.03.08-v4.11-9f78cb25cd
  • Updated config
    • Onboard VGA is no longer primary by default
  • SeaBIOS + uCode + VGA-OpROMs
2025.02.25-v4.11-97011b87c1
  • Initial v4.11 AGESA release
    • Microcode Updated
    • Added fan control
    • Enabled onboard SAS controller
    • Various AGESA bugs fixed
    • Northbridge 2 is offline
    • IOMMU is disabled
  • SeaBIOS + uCode + VGA-OpROMs

Deprecated

Release
Notes
Download Options
2025.03.08-v4.11-9f78cb25cd
  • Updated configs
    • Sets default CMOS settings each boot
    • Expanded CBFS for 16MB
  • SeaBIOS + uCode + VGA-OpROMs
  • SeaBIOS + uCode
  • SeaBIOS (blob-free)
2025.02.23-v4.11-583f5e6a34
  • Added fan control
2024.09.16-v4.11-d176edf4ae
  • Added more configuration variants
  • Removed coreinfo as a secondary payload
  • coreboot codebase unchanged

2024.09.14-v4.11-065549759c

  • Improved board stability
    • Fixed bugs in RAM initialization code
    • Fixed HyperTransport Deemphasis values
  • SeaBIOS + uCode + VGA-OpROMs