[RFC 1/1] efi_loader: fix open protocol information for block device

Heinrich Schuchardt heinrich.schuchardt at canonical.com
Wed Oct 5 09:48:00 CEST 2022



On 10/4/22 21:31, Heinrich Schuchardt wrote:
> If OpenProtocol() is called without an agent handle, no open protocol
> information is generated. With the patch we actually see the link between
> partition an its block device when printing the open protocol information:
> 
>    000000001b2452f0 (host0)
>      protocol: 964e5b21-6459-11d2-8e39-00a0c969723b - Block IO
>        AgentHandle - 000000001b027eb0 - /VenHw(e61d73b9-a384-4acc-aeab-82e828f3628b)
>        ControllerHandle - 000000001b245460 (host0:1)
>        Attributes - EFI_OPEN_PROTOCOL_BY_CHILD_CONTROLLER
>        OpenCount - 1
> 
> Fixes: 264485131c59 ("efi_loader: link partition to block device")
> Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt at canonical.com>
> ---
> The EFI/DM integration needs some rework. In future efi_disk_add_dev() will
> have to use a real driver handle as agent handle.
> 
> So this change is more for demonstration than actually required now.
> ---
>   lib/efi_loader/efi_disk.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/lib/efi_loader/efi_disk.c b/lib/efi_loader/efi_disk.c
> index 39ea1a68a6..5f1717eda4 100644
> --- a/lib/efi_loader/efi_disk.c
> +++ b/lib/efi_loader/efi_disk.c
> @@ -424,7 +424,7 @@ static efi_status_t efi_disk_add_dev(
>   		 * Link the partition (child controller) to the block device
>   		 * (controller).
>   		 */
> -		ret = efi_protocol_open(handler, &protocol_interface, NULL,
> +		ret = efi_protocol_open(handler, &protocol_interface, efi_root,
>   					&diskobj->header,
>   					EFI_OPEN_PROTOCOL_BY_CHILD_CONTROLLER);
>   		if (ret != EFI_SUCCESS)

This patch is not compatible with the teardown function in 
efi_selftest_block_device.c as we have not implemented a driver binding 
protocol on the root handle.

So this is nice for testing. But we shall not merge the patch.

Best regards

Heinrich


More information about the U-Boot mailing list