On 06/07/2018 14:03, Alexander Graf wrote:


On 06.07.18 14:57, Grant Likely wrote:
Dong,

Looking at the current state of EBBR, Appendix A contains a big list of
boot/runtime services and protocols that are required to be implemented.
However, I don't think this list has been audited, and I'm not sure how
much of it is actually needed. Some of these things (like the list of
boot/runtime services) seem to be required by the UEFI spec, so it is
redundant to list them here.

I'm also unsure on the list of protocols. Some I'm sure are already
required by the UEFI spec. e.g., UEFI section 2.6.1 requires
EFI_LOADED_IMAGE_PROTOCOL, EFI_LOADED_IMAGE_DEVICE_PATH,
EFI_DEVICE_PATH_PROTOCOL, EFI_DECOMPRESS_PROTOCOL, and
EFI_DEVICE_PATH_UTILITIES_PROTOCOL, so is it necessary to list them in
EBBR?

Looking at the current U-Boot implementation, only the following
protocols are implemented:

include/efi_api.h|277| #define LOADED_IMAGE_PROTOCOL_GUID \
include/efi_api.h|519| #define EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL_GUID \
include/efi_api.h|590| #define EFI_SIMPLE_TEXT_INPUT_PROTOCOL_GUID \
include/efi_api.h|603| #define EFI_DEVICE_PATH_TO_TEXT_PROTOCOL_GUID \
include/efi_api.h|619| #define EFI_DEVICE_PATH_UTILITIES_PROTOCOL_GUID \
include/efi_api.h|853| #define EFI_SIMPLE_FILE_SYSTEM_PROTOCOL_GUID \
include/efi_api.h|882| #define EFI_SIMPLE_FILE_SYSTEM_PROTOCOL_GUID \
include/efi_api.h|933| #define EFI_DRIVER_BINDING_PROTOCOL_GUID \

I think this list is missing a few protocols we do implement. Here's a
list of the current efi-next tree:

$ git grep -e '^const efi_gui' lib/efi_loader | cut -d ' ' -f 3
efi_guid_fdt
efi_guid_driver_binding_protocol
efi_guid_event_group_exit_boot_services
efi_guid_event_group_virtual_address_change
efi_guid_event_group_memory_map_change
efi_guid_event_group_ready_to_boot
efi_guid_event_group_reset_system
efi_guid_text_output_protocol
efi_guid_text_input_protocol
efi_guid_device_path_to_text_protocol
efi_guid_device_path_utilities_protocol
efi_block_io_guid
efi_file_system_info_guid
efi_global_variable_guid
efi_guid_device_path
efi_guid_loaded_image
efi_simple_file_system_protocol_guid
efi_file_info_guid

True. I did a very quick search and I definitely missed stuff. The GUID
#defines are not uniformly named (It would be nice if they were
collected in the same place, or all followed the EFI_*_PROTOCOL_GUID
convention). Also, a bunch of the items listed here are events which I
left out of my list.

Still, the main question remains: For EBBR to be useful and avoid being
redundant, does EBBR need to make optional particular protocols that are
required in UEFI? Does EBBR need to require particular protocols that
are optional in UEFI?

g.



Alex


IMPORTANT NOTICE: The contents of this email and any attachments are 
confidential and may also be privileged. If you are not the intended recipient, 
please notify the sender immediately and do not disclose the contents to any 
other person, use it for any purpose, or store or copy the information in any 
medium. Thank you.
_______________________________________________
boot-architecture mailing list
boot-architecture@lists.linaro.org
https://lists.linaro.org/mailman/listinfo/boot-architecture

Reply via email to