Skip to content

Required EFI protocols

Heinrich Schuchardt edited this page Oct 26, 2020 · 24 revisions

Currently EBBR indicates the mandatory EFI protocols primarily by citing from the UEFI specification (section 2.6 Requirements). This brings in a lot of conditional platform specific requirements that are not approprate for embedded systems (see #60).

What is implemented (today) in u-boot?

Protocol Comment
EFI_DEVICE_PATH_PROTOCOL available
EFI_DEVICE_PATH_TO_TEXT_PROTOCOL Only nodes used in U-Boot supported
EFI_DEVICE_PATH_UTILITIES_PROTOCOL available
EFI_UNICODE_COLLATION_PROTOCOL2 available
EFI_DRIVER_BINDING_PROTOCOL can be consumed by ConnectController()
EFI_SIMPLE_TEXT_INPUT_PROTOCOL available
EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL available, toggle key cannot be set
EFI_SIMPLE_TEXT_OUTPUT available
EFI_BLOCK_IO_PROTOCOL available
EFI_SIMPLE_FILE_SYSTEM_PROTOCOL available, FAT bugs to be resolved, _EX functions not implemented
EFI_LOADED_IMAGE_PROTOCOL available
EFI_GRAPHICS_OUTPUT_PROTOCOL available
EFI_HII_STRING_PROTOCOL available, only needed for SCT
EFI_HII_DATABASE_PROTOCOL available, only needed for SCT
EFI_HII_CONFIG_ROUTING_PROTOCOL stub for SCT
EFI_LOAD_FILE2_PROTOCOL experimental support to provide initrd to Linux
EFI_RNG_PROTOCOL available if DM_RNG driver available
EFI_SIMPLE_NETWORK_PROTOCOL available, only required services
EFI_PXE_BASE_CODE_PROTOCOL stub for old versions of GRUB

What is currently implicitly included via section 2.6?

  • LoadImage() should support EFI_LOAD_FILE2_PROTOCOL and EFI_LOAD_FILE_PROTOCOL
  • ConnectController() should support EFI_DRIVER_FAMILY_OVERRIDE_PROTOCOL, EFI_PLATFORM_DRIVER_OVERRIDE_PROTOCOL, EFI_BUS_SPECIFIC_DRIVER_OVERRIDE_PROTOCOL
Clone this wiki locally