Skip to content

Instantly share code, notes, and snippets.

@surfaceflinger
Last active December 26, 2023 12:24
Show Gist options
  • Save surfaceflinger/feb4cf486c3c57cea98280781e010778 to your computer and use it in GitHub Desktop.
Save surfaceflinger/feb4cf486c3c57cea98280781e010778 to your computer and use it in GitHub Desktop.
Minimal coreboot+SeaBIOS/EDK2 configs for devices that I own.
# Cherry-pick https://review.coreboot.org/c/coreboot/+/55232
# Display not working on dedicated GPUs, needs working setup IntelGopDriver which I can't figure out :/
# If you need to change bootorder, UEFI settings etc. - connect DisplayPort to the motherboard.
# Internal flashing is available once you short service mode pins near PCIe and boot with iomem=relaxed.
# If you bricked your board then
# 4MB flash is MX25L3273E
# 8MB flash is MX25L6473F
# Base
CONFIG_VENDOR_DELL=y
CONFIG_BOARD_DELL_OPTIPLEX_9020_SFF=y
# Coreboot
CONFIG_TIMESTAMPS_ON_CONSOLE=y
CONFIG_USE_OPTION_TABLE=y
# Preferences
CONFIG_SECURITY_CLEAR_DRAM_ON_REGULAR_BOOT=y
CONFIG_TPM_DEACTIVATE=y
CONFIG_EDK2_DISABLE_TPM=y
# Display
CONFIG_GENERIC_LINEAR_FRAMEBUFFER=y
# Blobs
CONFIG_HAVE_ME_BIN=y
CONFIG_CHECK_ME=y
CONFIG_USE_ME_CLEANER=y
CONFIG_ME_BIN_PATH="/home/nat/Projects/9020/blobs/ime.bin"
CONFIG_HAVE_GBE_BIN=y
CONFIG_GBE_BIN_PATH="/home/nat/Projects/9020/blobs/gbe.bin"
CONFIG_HAVE_IFD_BIN=y
CONFIG_VALIDATE_INTEL_DESCRIPTOR=y
CONFIG_IFD_BIN_PATH="/home/nat/Projects/9020/blobs/ifd.bin"
CONFIG_HAVE_MRC=y
CONFIG_MRC_FILE="/home/nat/Projects/9020/blobs/mrc.bin"
CONFIG_USE_BROADWELL_MRC=y
# UEFI
CONFIG_PAYLOAD_EDK2=y
{
description = ''
A shell for building coreboot sdk, coreboot, seabios, edk2
You can get a hermetic environment with "nix develop -i -c bash --norc"\
To run "make menuconfig" you will need default environemnt with just "nix develop"
'';
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable-small";
flake-utils.url = "github:numtide/flake-utils";
};
outputs = inputs@{ self, ... }: inputs.flake-utils.lib.eachDefaultSystem (system:
let
pkgs = inputs.nixpkgs.legacyPackages.${system};
in
{
devShells.default = pkgs.mkShellNoCC {
buildInputs = with pkgs; [
bison
cbfstool
curl
flex
git
gnat
ifdtool
imagemagick
libuuid
m4
nasm
ncurses
pkg-config
python3
zlib
];
};
});
}
# Base
CONFIG_VENDOR_LENOVO=y
CONFIG_BOARD_LENOVO_THINKPAD_T440P=y
CONFIG_PCIEXP_HOTPLUG=y
CONFIG_H8_SUPPORT_BT_ON_WIFI=y
CONFIG_DRIVERS_PS2_KEYBOARD=y
# Coreboot
CONFIG_TIMESTAMPS_ON_CONSOLE=y
CONFIG_USE_OPTION_TABLE=y
# Preferences
CONFIG_SECURITY_CLEAR_DRAM_ON_REGULAR_BOOT=y
CONFIG_TPM_DEACTIVATE=y
# Display
CONFIG_GENERIC_LINEAR_FRAMEBUFFER=y
# Blobs
CONFIG_HAVE_ME_BIN=y
CONFIG_CHECK_ME=y
CONFIG_USE_ME_CLEANER=y
CONFIG_ME_BIN_PATH="/home/nat/Projects/t440p/blobs/ime.bin"
CONFIG_HAVE_GBE_BIN=y
CONFIG_GBE_BIN_PATH="/home/nat/Projects/t440p/blobs/gbe.bin"
CONFIG_HAVE_IFD_BIN=y
CONFIG_VALIDATE_INTEL_DESCRIPTOR=y
CONFIG_IFD_BIN_PATH="/home/nat/Projects/t440p/blobs/ifd.bin"
CONFIG_HAVE_MRC=y
CONFIG_MRC_FILE="/home/nat/Projects/t440p/blobs/mrc.bin"
# Base
CONFIG_VENDOR_LENOVO=y
CONFIG_BOARD_LENOVO_THINKPAD_T440P=y
CONFIG_PCIEXP_HOTPLUG=y
CONFIG_H8_SUPPORT_BT_ON_WIFI=y
CONFIG_DRIVERS_PS2_KEYBOARD=y
# Coreboot
CONFIG_TIMESTAMPS_ON_CONSOLE=y
CONFIG_USE_OPTION_TABLE=y
# Preferences
CONFIG_SECURITY_CLEAR_DRAM_ON_REGULAR_BOOT=y
CONFIG_TPM_DEACTIVATE=y
CONFIG_EDK2_DISABLE_TPM=y
# Display
CONFIG_GENERIC_LINEAR_FRAMEBUFFER=y
# Blobs
CONFIG_HAVE_ME_BIN=y
CONFIG_CHECK_ME=y
CONFIG_USE_ME_CLEANER=y
CONFIG_ME_BIN_PATH="/home/nat/Projects/t440p/blobs/ime.bin"
CONFIG_HAVE_GBE_BIN=y
CONFIG_GBE_BIN_PATH="/home/nat/Projects/t440p/blobs/gbe.bin"
CONFIG_HAVE_IFD_BIN=y
CONFIG_VALIDATE_INTEL_DESCRIPTOR=y
CONFIG_IFD_BIN_PATH="/home/nat/Projects/t440p/blobs/ifd.bin"
CONFIG_HAVE_MRC=y
CONFIG_MRC_FILE="/home/nat/Projects/t440p/blobs/mrc.bin"
# UEFI
CONFIG_PAYLOAD_EDK2=y
CONFIG_CBFS_SIZE=0x300000
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment