coreboot/src/soc
Sean Rhodes 138402e7ff soc/intel/apollolake: Create IBB, IBBL and OBB
coreboot's method of creating IFWI is to modify an existing IFWI
images by deleting the IBB, replacing the IBBL with the bootblock
and everything else is put in the OBB.

This poses a problem when using Intel's FIT or technologies such
as Boot Guard. The main problem is that the IBB is never verified by
the CSE or copied from SRAM to CAR, so the CSE cannot complete BUP
and stays in recovery mode. The vast majority of the stages in
Apollolake's Secure Boot flow is not met using this method (Intel
document number 597827 summarizes these steps).

This patch series is based on the principles of a patch from Brenton
Dong (CB:17064) creates an IBBL, IBB and OBB binaries with the
correct functions to complete the Secure Boot flow. This is to copy
the IBB from SRAM using the CSE's Ring Buffer Protocol.

These binaries can then be used by FIT or coreboot's existing
method of hacking IFWI together (IFWI_STITCH) via IFWITOOL. If it is
the latter and Boot Guard is enabled, the hashes for IFWI and "ibb+obb"
must be recreated.

Whilst this option doesn't form a complete image, the components it
builds will work as Intel intended them to once stitched correctly into
an IFWI image.

Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Change-Id: I0deebf04f22f3017ee0c13bf1ca7f6dcc0d458b5
Reviewed-on: https://review.coreboot.org/c/coreboot/+/65680
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-07-17 17:44:11 +00:00
..
amd soc/amd/glinda: Don't let OS put debug UART into D3 2025-06-04 18:00:06 +00:00
cavium soc/cavium: Fix non matching types 2024-08-30 07:34:47 +00:00
example/min86 soc: Add SPDX license headers to Kconfig files 2024-02-18 02:03:37 +00:00
ibm/power9 3rdparty/open-power-signing-utils: add SecureBoot utility for OpenPOWER 2024-09-06 13:55:50 +00:00
intel soc/intel/apollolake: Create IBB, IBBL and OBB 2025-07-17 17:44:11 +00:00
mediatek soc/mediatek/mt8189: Specify MTKLIB_PATH for building BL31 2025-07-17 13:36:17 +00:00
nvidia arch/arm: Add a few ARM targets as supported by CLANG 2024-08-23 10:40:01 +00:00
qualcomm soc/qualcomm/x1p42100: Update boot critical firmware memory layout 2025-07-15 07:31:39 +00:00
rockchip arch/arm: Add a few ARM targets as supported by CLANG 2024-08-23 10:40:01 +00:00
samsung samsung/exynos5250: Replace 'unsigned long int' by 'unsigned long' 2025-01-15 08:32:16 +00:00
sifive tree: Remove unused <assert.h> 2024-11-19 00:40:04 +00:00
ti soc/ti/am335x: Remove superfluous formats 2024-08-02 14:45:13 +00:00
ucb/riscv soc/riscv/ucb: Switch to FDT parsing to get memory size 2025-02-26 17:11:09 +00:00
xilinx soc/xilinx/zynq7000: Initial Xilinx Zynq 7000 SoC bringup 2025-01-23 00:41:01 +00:00