Sorry, you need to enable JavaScript to visit this website.

Open source platforms - EDKII using Intel FSP

vzimmer's picture

You've seen in the past when I have talked about Intel Firmware Support Package (FSP), hearkening back to 2014 [1][2]. This mirrors some content I posted at [14].

FSP Consumer
We're posting an updated platform using the 1.1 FSP [3][4]. This tree moves beyond the Baytrail work in [2] and includes Braswell [5]. A good overview of porting the tree is provided, too [6]. This shows some of the best practices on building EDKII on top of FSP. Specifically, the only macrocode binary is in the Intel FSP, with the rest of the EDKII code to provide the core UEFI & PI services, along with the platform initialization, in open source.

This is an important step to show how FSP + open source can be used to build a full solution, or EDKII can 'Consume' an FSP binary. This provides parallel work-flows to things like a coreboot Braswell solution [13], for example, that also builds upon Intel FSP. Turing equivalence argues that it is all 'just code', so we want to show a few 'equivalences' here.

This is a work in progress that should eventually migrate to [11], but in the interim take a look and provide feedback on some of the code paritioning and design.

FSP Producer

In addition to the Intel Atom based platform that consumes an Intel FSP binary from [12], there has been a lack of public demonstration of producing an Intel FSP, as described in [2]. This is by design in the sense that the Intel FSP encapsulates matter that does not have public documentation, thus cannot be open sourced. This poses the challenge of how to provide guidance on how to create an Intel FSP. This is where the Intel Quark EDKII code comes into play. Since the low-level silicon initialization, including memory intialization, is already open source, it provide an opportunity to show how to create an Intel FSP [7]. Luckily we now have an early example of this in public view [8].

I look forward to future platforms that move beyond FSP 1.1, too [10].

Good stuff.


[1] Zimmer, "EDKII, FSP, and other topics", blog posting, September, 2014

[2] Zimmer, "Firmware Flexibility using Intel(R) Firmware Support Package," Intel Developer Forum, September 2014

[3] Yao, et al, "A Tour Beyond BIOS Using the Intel(R) Firmware Support Package 1.1 with the EFI Developer Kit II, April 2015

[4] Intel Firmware Support Specification External Architecture Specification (EAS), Version 1.1a, November 2015 

[5] Braswell EDKII project 

[6] Wei, et al, "Open Braswell UEFI Codebase - Design and Porting Guide," February 2016

[7] Yao, et al, "A Tour Beyond BIOS Creating the Intel(R) Firmware Support Package 1.1 with the EFI Developer Kit II, April 2015

[8] Quark FSP 1.1 

[9] Quark SOC code

[10] Intel FSP2.0 consumer code;a=commit;h=b37fd67e8757e2eaf3ae7dd453e9aaa1518e9439

[11] EDKII project 

[12] Intel Firmware Support Package (FSP) 

[13] EDKII Braswell code that consumes Intel FSP 1.1