[U-Boot] [PATCH v2 2/2] efi_loader: device_path: show a host device in understandable form
Heinrich Schuchardt
xypron.glpk at gmx.de
Thu Sep 12 09:50:04 UTC 2019
On 9/12/19 11:07 AM, AKASHI Takahiro wrote:
> On Thu, Sep 12, 2019 at 09:59:01AM +0200, Heinrich Schuchardt wrote:
>> On 9/12/19 6:52 AM, AKASHI Takahiro wrote:
>>> It would be better to give a user-friendly text to a host device
>>> on sandbox instead of just dumping its guid.
>>>
>>> => host bind 0 /opt/disk/uboot_sandbox_fat.img
>>> => efi devices
>>> Device Device Path
>>> ================ ====================
>>> 0000000015c1f3a0 /VenHw(e61d73b9-a384-4acc-aeab-82e828f3628b)
>>> 0000000015c20f00 /VenHw(e61d73b9-a384-4acc-aeab-82e828f3628b)/Hostdev(0)
>>>
>>> Signed-off-by: AKASHI Takahiro <takahiro.akashi at linaro.org>
>>> ---
>>> lib/efi_loader/efi_device_path_to_text.c | 5 +++++
>>> 1 file changed, 5 insertions(+)
>>>
>>> diff --git a/lib/efi_loader/efi_device_path_to_text.c b/lib/efi_loader/efi_device_path_to_text.c
>>> index 96fd08971b73..40a06b70e08a 100644
>>> --- a/lib/efi_loader/efi_device_path_to_text.c
>>> +++ b/lib/efi_loader/efi_device_path_to_text.c
>>> @@ -62,6 +62,11 @@ static char *dp_hardware(char *s, struct efi_device_path *dp)
>>> case DEVICE_PATH_SUB_TYPE_VENDOR: {
>>> struct efi_device_path_vendor *vdp =
>>> (struct efi_device_path_vendor *)dp;
>>> +#ifdef CONFIG_SANDBOX
>>> + if (!guidcmp(&vdp->guid, &efi_guid_host_dev))
>>> + s += sprintf(s, "Hostdev(%d)", vdp->vendor_data[0]);
>>
>> This does not conform to the UEFI spec.
>
> Okay, so I'd like to change the format again.
> Instead of 'Vendor' subtype, use 'Controller' subtype.
> This way, the example above can be seen as:
>
> 0000000015c1f3a0 /VenHw(e61d73b9-a384-4acc-aeab-82e828f3628b)
> 0000000015c20f00 /VenHw(e61d73b9-a384-4acc-aeab-82e828f3628b)/Ctrl(0)
>
> Looks nice, doesn't it?
A controller is a handle that bears the EFI_DRIVER_BINDING_PROTOCOL.
Best regards
Heinrich
>
> -Takahiro Akashi
>
>> The purpose of the sandbox is testing. What would make sense to me is
>> checking in a Python test that The VenHw() output contains the GUID and
>> the drive number.
>>
>> Best regards
>>
>> Heinrich
>>
>>> + else
>>> +#endif
>>> s += sprintf(s, "VenHw(%pUl)", &vdp->guid);
>>> break;
>>> }
>>>
>>
>
More information about the U-Boot
mailing list