[U-Boot] efi disks in u-boot

AKASHI, Takahiro takahiro.akashi at linaro.org
Thu Nov 15 06:57:42 UTC 2018


Hi Simon,

On Wed, 14 Nov 2018 at 03:52, Simon Glass <sjg at chromium.org> wrote:
>
> Hi Akahsi,
>
> On 5 November 2018 at 20:15, AKASHI Takahiro <takahiro.akashi at linaro.org> wrote:
> > Hello Simon,
> >
> > You said, in efi/lib_loader/efi_disk.c,
> >
> > ===8<===
> >  * TODO(sjg at 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


More information about the U-Boot mailing list