1Xeon Scalable processor coreboot Community Preview Guide 2================================================ 3 4## Background 5 6Sapphire Rapids coreboot was already merged into coreboot mainline. 7Granite Rapids coreboot upstreaming is coming. 8 9For Granite Rapids coreboot, we are going to perform a phased 10upstreaming strategy according to the maturity of the code. A community 11preview branch is opensource at: 12https://review.coreboot.org/plugins/gitiles/intel-dev-pub/. 13 14The community preview branch initially contains codes on legacy feature 15enabling and matured patch set for platform support. More platform 16support code will come with the platform development. The subsequent 17upstreaming work will be based on this branch. It provides 2 board 18targets, 19 201. Avenue City CRB (Granite Rapids-AP) 212. Beechnut City CRB (Granite Rapids-SP) 22 23The above targets can pass build with Granite Rapids n-1 FSP headers, 24which is a set of stub FSP headers used for compilation sanity check. 25 26## Build steps 27 28### Prepare workspace 29 30``` 31# Create workspace 32 33mkdir workspace && cd workspace 34 35# Prepare coreboot codebase 36 37git clone https://review.coreboot.org/intel-dev-pub ln -s intel-dev-pub/ 38coreboot 39 40# Prepare stub binaries and update their path in 41# configs/builder/config.intel.crb.avc.n-1 42 43# Granite Rapids coreboot uses FSP 2.4, where FSP-I is newly introduced 44# as an optional module to provide FSP based SMM capability. For FSP 2.4 45# and FSP-I, please further refer to: 46# https://cdrdv2-public.intel.com/736809/736809_FSP_EAS_v2.4_Errata_A.pdf 47 48CONFIG_IFD_BIN_PATH=<path of intel flash descriptor blob> 49CONFIG_CPU_UCODE_BINARIES=<path of ucode> 50CONFIG_FSP_T_FILE=<path of FSP-T binary> 51CONFIG_FSP_M_FILE=<path of FSP-M binary> 52CONFIG_FSP_S_FILE=<path of FSP-S binary> 53CONFIG_FSP_I_FILE=<path of FSP-I binary> 54CONFIG_PAYLOAD_FILE=<path of payload binary> 55``` 56 57### Download necessary submodules 58``` 59git submodule update --init --checkout 3rdparty/vboot 60``` 61 62### Or take below alternative if the network connection is not good 63``` 64git clone https://github.com/coreboot/vboot.git 3rdparty/vboot/ 65``` 66 67### Build toolchain 68``` 69make crossgcc-i386 CPUS=$(nproc) 70``` 71 72### Build BIOS (Avenue City CRB) 73``` 74make distclean 75 76make defconfig KBUILD_DEFCONFIG=configs/builder/config.intel.crb.avc.n-1 77 78make olddefconfig 79 80make clean 81 82make UPDATED_SUBMODULES=1 -j`nproc` 83``` 84 85### Build BIOS (Beechnut City CRB) 86``` 87make distclean 88 89make defconfig KBUILD_DEFCONFIG=configs/builder/config.intel.crb.bnc.n-1 90 91make olddefconfig 92 93make clean 94 95make UPDATED_SUBMODULES=1 -j`nproc` 96``` 97 98### Obtain the preview patch list 99 100``` 101# The tag ‘upstream’ points to the upstream commit that the preview 102# branch is based on. 103 104git format-patch upstream..HEAD 105``` 106 107## About Granite Rapids n-1 FSP Headers 108 109This is a set of stub FSP headers for Granite Rapids server, which will 110be forward compatible with the formal Granite Rapids FSP headers which 111will be opensource at a later stage. For the n-1 FSP headers, there are 112no corresponding n-1 FSP binaries. To pass build, users need to use stub 113binaries which could be generated in arbitrary ways. Granite Rapids n-1 114FSP headers are at: `src/vendorcode/intel/fsp/fsp2_0/graniterapids_n-1`. 115 116For the formal Granite Rapids FSP headers and binaries, they will be 117published at in 118https://github.com/coreboot/coreboot/tree/main/src/vendorcode/intel/fsp/fsp2_0 119(headers only) and https://github.com/intel/FSP (headers and binaries) 120at a later stage.