Xeon Scalable processor coreboot Community Preview Guide
Background
Sapphire Rapids coreboot was already merged into coreboot mainline. Granite Rapids coreboot upstreaming is coming.
For Granite Rapids coreboot, we are going to perform a phased upstreaming strategy according to the maturity of the code. A community preview branch is opensource at: https://review.coreboot.org/plugins/gitiles/intel-dev-pub/.
The community preview branch initially contains codes on legacy feature enabling and matured patch set for platform support. More platform support code will come with the platform development. The subsequent upstreaming work will be based on this branch. It provides 2 board targets,
Avenue City CRB (Granite Rapids-AP)
Beechnut City CRB (Granite Rapids-SP)
The above targets can pass build with Granite Rapids n-1 FSP headers, which is a set of stub FSP headers used for compilation sanity check.
Build steps
Prepare workspace
# Create workspace
mkdir workspace && cd workspace
# Prepare coreboot codebase
git clone https://review.coreboot.org/intel-dev-pub ln -s intel-dev-pub/
coreboot
# Prepare stub binaries and update their path in
# configs/builder/config.intel.crb.avc.n-1
# Granite Rapids coreboot uses FSP 2.4, where FSP-I is newly introduced
# as an optional module to provide FSP based SMM capability. For FSP 2.4
# and FSP-I, please further refer to:
# https://cdrdv2-public.intel.com/736809/736809_FSP_EAS_v2.4_Errata_A.pdf
CONFIG_IFD_BIN_PATH=<path of intel flash descriptor blob>
CONFIG_CPU_UCODE_BINARIES=<path of ucode>
CONFIG_FSP_T_FILE=<path of FSP-T binary>
CONFIG_FSP_M_FILE=<path of FSP-M binary>
CONFIG_FSP_S_FILE=<path of FSP-S binary>
CONFIG_FSP_I_FILE=<path of FSP-I binary>
CONFIG_PAYLOAD_FILE=<path of payload binary>
Download necessary submodules
git submodule update --init --checkout 3rdparty/vboot
Or take below alternative if the network connection is not good
git clone https://github.com/coreboot/vboot.git 3rdparty/vboot/
Build toolchain
make crossgcc-i386 CPUS=$(nproc)
Build BIOS (Avenue City CRB)
make distclean
make defconfig KBUILD_DEFCONFIG=configs/builder/config.intel.crb.avc.n-1
make olddefconfig
make clean
make UPDATED_SUBMODULES=1 -j`nproc`
Build BIOS (Beechnut City CRB)
make distclean
make defconfig KBUILD_DEFCONFIG=configs/builder/config.intel.crb.bnc.n-1
make olddefconfig
make clean
make UPDATED_SUBMODULES=1 -j`nproc`
Obtain the preview patch list
# The tag ‘upstream’ points to the upstream commit that the preview
# branch is based on.
git format-patch upstream..HEAD
About Granite Rapids n-1 FSP Headers
This is a set of stub FSP headers for Granite Rapids server, which will
be forward compatible with the formal Granite Rapids FSP headers which
will be opensource at a later stage. For the n-1 FSP headers, there are
no corresponding n-1 FSP binaries. To pass build, users need to use stub
binaries which could be generated in arbitrary ways. Granite Rapids n-1
FSP headers are at: src/vendorcode/intel/fsp/fsp2_0/graniterapids_n-1
.
For the formal Granite Rapids FSP headers and binaries, they will be published at in https://github.com/coreboot/coreboot/tree/main/src/vendorcode/intel/fsp/fsp2_0 (headers only) and https://github.com/intel/FSP (headers and binaries) at a later stage.