I’m currently trying to get coreboot working on an Intel Leaf Hill development board, we
are using U-Boot as a payload.
I have managed to create a bootable image using an out of date copy of coreboot and
U-Boot, provided by Intel under NDA.
The stitching process used to generate the image is a little ugly: a set of Windows tools
are provided (or pointed at) by Intel to stitch the various blobs together to create an
We would like to move away from this process. Using the cbfs tool it looks like we are
getting a legacy image composed entirely of a single CBFS.
However, as far as I understand, the latest coreboot release (v4.6) should be capable of
producing a 16MB working image without the use of external tools.
This is of course dependent on the provision of the correct binary blobs such as the FSP,
flash descriptor and IFWI.
I have attached the descriptor of the IFWI image being used.
This is the process I have followed in order to generate a coreboot image:
1. Clone coreboot (v4.6)
2. Obtain Apollo Lake FSP from Intel (https://github.com/IntelFSP/FSP
3. Split FSP into its constituent parts
4. Extract Flash Descriptor from an existing Leaf Hill UEFI image (./ifdtool
5. Obtain IFWI image from Intel (Apollo Lake Technical Library)
6. make menuconfig (config file is attached)
i. Mainboard vendor
ii. Mainboard model
iii. [*] Use IFWI
iv. (IFWI) section in .fmd
file to place IFWI blob
v. (IFWI_SPI.bin) Path
to image coming from FIT Tool
vi. (descriptor.bin) path
vii. (Fsp_M.fd) path to
viii. (Fsp_S.fd) path to
i. Add a payload
ii. U-Boot version
(coreboot-x86_defconfig) U-Boot config file
c. The rest are at Leaf Hill defaults.
8. Flash image to Leaf Hill SPI flash
As far as I can tell, this process should produce a working image.
However it does not. My most recent attempt has managed to blink the PWR_OK LED,
suggesting the PMIC/PMC is working, but no serial messages.
Other than that, I currently have no working theories as to what the root cause is ☹
Is there anything obviously wrong with this process?
Are there any bugs that I should be aware of relating to coreboot on an Apollo Lake
I haven’t found a lot of documentation online to describe the exact configuration and blob
usage, are there any relevant sources of documentation you could point me towards?
Any help to answer the above, or any other advice would be greatly appreciated.
Cameron Craig | Graduate Software Engineer | Exterity Limited
tel: +44 1383 828 250 | fax:
e: Cameron.Craig(a)exterity.com | w: www.exterity.com
Exterity is a leading provider of IP Video and Digital Signage solutions that helps
organizations to harness the power of video to communicate, educate and entertain. Our
end-to-end solutions enable you to take TV and video content directly from any source and
manage its delivery, live or on demand, to any connected device via your existing network.
For more information or to schedule a product demonstration, contact Exterity on
+44(0)1383 828 250 or visit www.exterity.com
Unless expressly stated otherwise, this message is confidential and may be privileged. It
is intended for the addressee(s) only. Access to this e-mail by anyone else is
unauthorized. If you are not an addressee, any disclosure or copying of the contents of
this e-mail or any action taken (or not taken) in reliance on it is unauthorized and may
be unlawful. If you are not an addressee, please inform the sender immediately.
Exterity Limited is registered in Scotland under No. 225313 with its registered office at
St Davids House, St Davids Drive, Dalgety Bay, KY11 9NB
This email has been scanned by the Symantec Email Security.cloud service.
For more information please visit http://www.symanteccloud.com