On 06.07.18 15:10, Grant Likely wrote: > 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
Definitely. I think the current list should be enough for level 0. > are optional in UEFI? I don't know on that side. Can you think of any? Alex _______________________________________________ boot-architecture mailing list [email protected] https://lists.linaro.org/mailman/listinfo/boot-architecture
