************************ 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.