
Hi Simon,
On Wed, 14 Nov 2018 at 03:52, Simon Glass sjg@chromium.org wrote:
Hi Akahsi,
On 5 November 2018 at 20:15, AKASHI Takahiro takahiro.akashi@linaro.org wrote:
Hello Simon,
You said, in efi/lib_loader/efi_disk.c,
===8<===
- TODO(sjg@chromium.org): Actually with CONFIG_BLK, U-Boot does have this.
- Consider converting the code to look up devices as needed. The EFI device
- could be a child of the UCLASS_BLK block device, perhaps.
- This gets called from do_bootefi_exec().
*/ efi_status_t efi_disk_register(void) { ===>8===
What do you mean by this statement? Is it different from the code under "#if CONFIG_BLK"?
I guess that you would suggest that some hook function be called in blk_create_device() and blk_unbind_all(). No?
I would actually like EFI to use the U-Boot DM devices directly, with just the minimal amount of plumbing.
Under the current implementation, any u-boot disk device is statically associated with device path proctocol as well as block io protocol & file system protocol only once in efi_init_obj_list(). If I understand you correctly, you're suggesting that, for example, efi_disk_from_path() should directly search for a u-boot device instead of look into a pre-created list of device path protocol objects with efi_search_protocol(). Right?
It sounds reasonable and quite straight forward, but I wonder why Alex and Rob didn't take this approach. Was there any discussion in the past?
Thanks, -Takahiro Akashi
Perhaps an EFI child device that gets created for each block device?
Regards, Simon