Resources
Manual
Coreboot
Issues

Apparently Coreboot dropped support for this motherboard in
master after 2019
When booting Ubuntu 18.10+, there's a gfx error; type
help and press
Enter to boot
1)
Jumpers seem to act slightly different with Coreboot
2)
Windows 10's installer can't start
3)
For unknown reasons, some builds of Coreboot from master have unreliable POST; using the release tar of 4.9 works fine though, and from master, 2019/07/06 is the last known-good version too
TianoCore payload compiles, but didn't boot as of 2019/07/17
4)
RAM
Incompatible
Compatible
Nanya NT2GC64B88B0NF-CG
8)
Micron 16JTF25664AZ-1G4F1
9)
Samsung M378B5273CH0-CK0
10)
Dependencies
Ubuntu Server
sudo apt-get install -y bison build-essential curl flex git gnat libncurses5-dev m4 zlib1g-dev python-minimal
TianoCore
Download Source
cd ~ && mkdir -p ~/'Projects' && rm -Rf ~/'Projects/coreboot/src' && sync && git clone --branch 'master' --depth '1' --recurse-submodules 'https://review.coreboot.org/coreboot.git' ~/'Projects/coreboot/src' && sync
cd ~/'Projects/coreboot/src' && make 'crossgcc-clean' && make 'crossgcc-i386' CPUS='16'
Settings
Use CMOS for configuration values speeds up boot significantly

Including CPU microcode caused Linux to kernel panic on 2019/04/16

For some unknown reason, POST randomly fails at times depending on when Coreboot is built, regardless of what config settings are used
Local version string: Nightwane
[*] Use CMOS for configuration values
[*] Load default configuration values into CMOS on each boot
[ ] Compress ramstage with LZMA
[ ] Include the coreboot .config file into the ROM image
[ ] Create a table of timestamps collected during boot
[ ] Send console output to a CBMEM buffer
Default console log level: 0: EMERG
[*] Don't show any POST codes
cd ~/'Projects/coreboot/src' && make 'distclean' && make 'nconfig' && sync
Query
cd ~/'Projects/coreboot/src' && make 'savedefconfig' && gio open ~/'Projects/coreboot/src/defconfig'
CONFIG_LOCALVERSION="Nightwane"
CONFIG_USE_OPTION_TABLE=y
CONFIG_STATIC_OPTION_TABLE=y
# CONFIG_COMPRESS_RAMSTAGE is not set
# CONFIG_INCLUDE_CONFIG_FILE is not set
# CONFIG_COLLECT_TIMESTAMPS is not set
CONFIG_VENDOR_ASUS=y
CONFIG_BOARD_ASUS_KCMA_D8=y
# CONFIG_DRIVERS_UART_8250IO is not set
CONFIG_POWER_STATE_OFF_AFTER_FAILURE=y
# CONFIG_CONSOLE_CBMEM is not set
CONFIG_CPU_MICROCODE_CBFS_NONE=y
CONFIG_SOUTHBRIDGE_AMD_SB700_33MHZ_SPI=y
# CONFIG_DRIVERS_INTEL_WIFI is not set
CONFIG_DEFAULT_CONSOLE_LOGLEVEL_0=y
CONFIG_NO_POST=y
CONFIG_SEABIOS_MASTER=y
CONFIG_SEABIOS_THREAD_OPTIONROMS=y
CONFIG_SEABIOS_DEBUG_LEVEL=0
CMOS Settings
nano ~/'Projects/coreboot/src/src/mainboard/asus/kcma-d8/cmos.default'
l3_cache_partitioning=Enable
experimental_memory_speed_boost=Enable
Make
cd ~/'Projects/coreboot/src' && make clean && make && sync
Finalize
mkdir -p ~/'coreboot-bin' && mv ~/'Projects/coreboot/src/build/coreboot.rom' ~/'coreboot-bin/KCMAD8-coreboot-'$(date +%Y-%m-%d)'.rom' && sync
Virtual Machine

Change
X to the VM instance's IP address
scp 192.168.122.X:~/coreboot-bin/*.rom ~/Downloads
Flash

Add
internal:amd_imc_force=yes after the
--programmer flag if flashing from ASUS proprietary BIOS
11) 12) 13)
sync && sudo flashrom --programmer 'internal' --write ~/'Downloads/KCMAD8-coreboot-'*'.rom'
Fan Control
sudo dnf install 'lm_sensors' && sudo sensors-detect && sudo -e '/etc/fancontrol' && sudo systemctl enable 'fancontrol'
INTERVAL=10
DEVNAME=/sys/class/hwmon/hwmon6=w83795g
FCTEMPS=/sys/class/hwmon/hwmon6/device/pwm2=/sys/class/hwmon/hwmon6/device/temp8_input
FCFANS=/sys/class/hwmon/hwmon6/device/fan1_input+/sys/class/hwmon/hwmon6/device/fan2_input
MINTEMP=/sys/class/hwmon/hwmon6/device/pwm2=50
MAXTEMP=/sys/class/hwmon/hwmon6/device/pwm2=60
MINSTART=/sys/class/hwmon/hwmon6/device/pwm2=4000
MINSTOP=/sys/class/hwmon/hwmon6/device/pwm2=0