Coreboot-15h

From 15h.org
Jump to navigation Jump to search

Coreboot-15h, also known as Mike's Coreboot, is a distribution of Coreboot for the ASUS KGPE-D16, developed by 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.

History

As coreboot-D16, coreboot-15h was previously provided in two versions - coreboot-4.11 and coreboot-4.15. 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 coreboot-4.15 version can be found in the old GitHub repo.

coreboot-D16 also includes a modified version of fand.cpp, 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.

Building on Debian 12

Instructions for KGPE-D16

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

### Fetch coreboot-15h source
git clone https://git.15h.org/mrothfuss/coreboot-15h.git
cd coreboot-15h

### Optional: Fetch blobs (AMD microcode and the AST2050 VGABIOS)
### Both can be explicitly excluded from the build by menuconfig
git submodule update --init --checkout 3rdparty/blobs

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

### Load a config file (select one).
### There are three default configs provided, each with 2MB and 16MB variants.
###
### 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_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
make menuconfig

### Build coreboot, your ROM will be at ./build/coreboot.rom
make

Instructions for cleaning your build environment (necessary when switching motherboards)

make distclean

Releases

For source, see our Git forge

KGPE-D16

Release
Notes
Downloads
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