On Tue, Mar 05, 2019 at 08:48:37PM +0100, Heinrich Schuchardt wrote: > On 3/5/19 6:53 AM, AKASHI Takahiro wrote: > > It is just wrong to add devcie path protocol to image handle. > > > > Signed-off-by: AKASHI Takahiro <takahiro.aka...@linaro.org> > > --- > > lib/efi_loader/efi_boottime.c | 11 +---------- > > 1 file changed, 1 insertion(+), 10 deletions(-) > > > > diff --git a/lib/efi_loader/efi_boottime.c b/lib/efi_loader/efi_boottime.c > > index bd8b8a17ae71..7bd9c0a952d4 100644 > > --- a/lib/efi_loader/efi_boottime.c > > +++ b/lib/efi_loader/efi_boottime.c > > @@ -1540,17 +1540,8 @@ efi_status_t efi_setup_loaded_image(struct > > efi_device_path *device_path, > > info->file_path = file_path; > > info->system_table = &systab; > > > > - if (device_path) { > > + if (device_path) > > info->device_handle = efi_dp_find_obj(device_path, NULL); > > - /* > > - * When asking for the device path interface, return > > - * bootefi_device_path > > - */ > > - ret = efi_add_protocol(&obj->header, > > - &efi_guid_device_path, device_path); > > Installing the device path is not the problem. It is the GUID that is > wrong. Use EFI_LOADED_IMAGE_DEVICE_PATH_PROTOCOL_GUID here.
Okay, but I believe that we need duplicate device_path here before installing it as EFI_LOADED_IMAGE_DEVICE_PATH_PROTOCOL_GUID. See this line: > > info->device_handle = efi_dp_find_obj(device_path, NULL); Normally, device_path is expected to be already associated with another handle. We should not allow two handles to share one protocol(data). That is also why I initially believed that add_protocol() should be removed. Thanks, -Takahiro Akashi > UEFI Spec 2.7: > > "The Loaded Image Device Path Protocol must be installed onto the image > handle of a PE/COFF image loaded through the EFI Boot Service LoadImage()." > > Best regards > > Heinrich > > > - if (ret != EFI_SUCCESS) > > - goto failure; > > - } > > > > /* > > * When asking for the loaded_image interface, just > > > _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot