On 01/19/2018 09:20 PM, Alexander Graf wrote:


On 19.01.18 20:24, Heinrich Schuchardt wrote:
U-Boot devices and EFI handles can be related, e.g. an
IDE disk relates to a handle with the EFI_BLOCK_IO_PROTOCOL.
Provide a pointer to store this link.

Signed-off-by: Heinrich Schuchardt <xypron.g...@gmx.de>
---
v3
        Don't add an unused handle field to struct udevice.
v2
        no change
---
  include/efi_loader.h          | 2 ++
  lib/efi_loader/efi_boottime.c | 1 +
  2 files changed, 3 insertions(+)

diff --git a/include/efi_loader.h b/include/efi_loader.h
index 188bc06bcc..3579db8b63 100644
--- a/include/efi_loader.h
+++ b/include/efi_loader.h
@@ -139,6 +139,8 @@ struct efi_object {
        struct list_head protocols;
        /* The object spawner can either use this for data or as identifier */
        void *handle;
+       /* Device */
+       struct udevice *dev;

I still don't think you need this.

The stop method of the driver binding protocol we will call the unbind function of the EFI block driver. In the unbind function we need the the reference to delete the driver.

On use case is calling sanunhook for an iSCSI device in the iPXE application.

I must admit that I have not yet implemented the unbinding.

Best regards

Heinrich


  };
/**
diff --git a/lib/efi_loader/efi_boottime.c b/lib/efi_loader/efi_boottime.c
index 324abe4d48..15baeb275f 100644
--- a/lib/efi_loader/efi_boottime.c
+++ b/lib/efi_loader/efi_boottime.c
@@ -361,6 +361,7 @@ efi_status_t efi_create_handle(void **handle)
                              (void **)&obj);
        if (r != EFI_SUCCESS)
                return r;
+       memset(obj, 0, sizeof(struct efi_object));

And without change you don't need the memset either :)


Alex

        efi_add_handle(obj);
        *handle = obj->handle;
        return r;



_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot

Reply via email to