47 lines
1.5 KiB
ReStructuredText
47 lines
1.5 KiB
ReStructuredText
************************
|
|
Using U-Boot as Firmware
|
|
************************
|
|
|
|
U-boot can be configured to support the EBBR specification. This can be
|
|
enabled by enabling both `CONFIG_EFI_LOADER` and
|
|
`CONFIG_EFI_EBBR_2_0_CONFORMANCE`.
|
|
|
|
As UEFI Secure Boot is optional in EBBR, that has to be activated seperatly with
|
|
`CONFIG_EFI_SECURE_BOOT`
|
|
|
|
.. graphviz:: bootflow-uboot.dot
|
|
|
|
UEFI Secure Boot
|
|
================
|
|
|
|
CoreOS build system bundle all the needed public key for secure boot inside the
|
|
u-boot binary at buildtime. UEFI variables needed by secure boot are not allowed
|
|
to be changed at runtime.
|
|
|
|
Device tree handling
|
|
====================
|
|
|
|
As per the EBBR specification, the firmware is responsible to provide a
|
|
device tree to the kernel. Not that it's OK to export the device tree used by
|
|
U-Boot internally as it will be replaced by a propper device tree at a later
|
|
stage. This avoid the need to load the device tree from a boot partition.
|
|
|
|
Features to implement per machine
|
|
=================================
|
|
|
|
The u-boot provided by CoreOS should implement the following features for each
|
|
supported machine:
|
|
|
|
extension_board_scan
|
|
--------------------
|
|
|
|
The extension_board_scan function has to be implemented. This function should
|
|
return the list of add-ons board detected.
|
|
|
|
DT Fixup
|
|
--------
|
|
|
|
U-Boot can create, modify and remove node from the device tree dynamically
|
|
before starting the kernel. This can be used to pass dynamic information stored
|
|
inside a "board descriptor" eeprom or CPLD to the Kernel.
|