8. Scalable FSP

The scalable FSP is an evolution of the Intel Firmware Support Package detailed at www.intel.com/fsp.

8.1. Interfaces

There are a plurality of interfaces to the FSP, including C and RUST-based.
These interfaces allow for the POL to have a generic means by which to interface with the scalable FSP.

C API’s include

For EDKII -

https://github.com/tianocore/edk2/tree/master/IntelFsp2WrapperPkg/Include/Library

FspMeasurementLib.h

FspWrapperApiLib.h

FspWrapperApiTestLib.h

FspWrapperHobProcessLib.h

FspWrapperPlatformLib.h

Details of some of the interfaces can be found in https://www.intel.com/content/dam/develop/external/us/en/documents/a-tour-beyond-bios-using-the-intel-firmware-support-package-with-the-efi-developer-kit-ii-fsp2-0-820293.pdf.

RUST variants include

https://github.com/jyao1/rust-firmware/tree/master/rust-fsp-wrapper

coreboot FSP

https://github.com/coreboot/coreboot/tree/master/src/drivers/intel/fsp2_0

api.h

debug.h

graphics.h

info_header.h

soc_binding.h

upd.h

util.h

Additional details can be found in https://github.com/coreboot/coreboot/tree/master/Documentation/soc/intel/fsp and https://link.springer.com/chapter/10.1007/978-1-4842-0070-4_4

8.2. sFSP interactions

The Intel Firmware Support Package has various evolutions for the Next Generation Firmware program. These are tentatively described by the specification evolution.

Since the POL uses FSP as its SOC abstraction, the POL considerations for the various permutations of the FSP are described below.

8.2.1. FSP 2.2

Multiple notifications, bootloader debug/status code + FSP 2.1

8.2.2. FSP 2.3

FSP 2.2, large HOB support, versioning update

8.2.3. FSP 2.next.next

FSP2.3, SOC ACPI Abstraction, FSP-V, 64-bit, SMM loading

8.2.4. FSP 3.0 or FSP2.next.next

FSP-at-Reset (“bootable FSP”), FSP-R (FSP-Runtime)