On 12/4/21 07:56, Simon Glass wrote:
These names are better used for access to devices provided by an EFI
layer. Use EFI_LOADER instead here, since these are only available in
U-Boot's EFI_LOADER layer.

Signed-off-by: Simon Glass <s...@chromium.org>
---

Changes in v5:
- Add new patch to resolve EFI/EFI_LOADER conflict

  doc/develop/uefi/uefi.rst         | 8 ++++----
  drivers/block/blk-uclass.c        | 4 ++--
  include/blk.h                     | 2 +-
  include/dm/uclass-id.h            | 2 +-
  lib/efi_driver/efi_block_device.c | 8 ++++----
  lib/efi_driver/efi_uclass.c       | 8 ++++----
  6 files changed, 16 insertions(+), 16 deletions(-)

diff --git a/doc/develop/uefi/uefi.rst b/doc/develop/uefi/uefi.rst
index f17138f5c76..a3e2656ab81 100644
--- a/doc/develop/uefi/uefi.rst
+++ b/doc/develop/uefi/uefi.rst
@@ -620,12 +620,12 @@ EFI_DRIVER_BINDING_PROTOCOL implementation for the UEFI 
drivers.

  A linker created list is used to keep track of the UEFI drivers. To create an
  entry in the list the UEFI driver uses the U_BOOT_DRIVER macro specifying
-UCLASS_EFI as the ID of its uclass, e.g::
+UCLASS_EFI_LOADER as the ID of its uclass, e.g::

      /* Identify as UEFI driver */
      U_BOOT_DRIVER(efi_block) = {
          .name  = "EFI block driver",
-        .id    = UCLASS_EFI,
+        .id    = UCLASS_EFI_LOADER,
          .ops   = &driver_ops,
      };

@@ -651,8 +651,8 @@ UEFI block IO driver
  The UEFI block IO driver supports devices exposing the EFI_BLOCK_IO_PROTOCOL.

  When connected it creates a new U-Boot block IO device with interface type
-IF_TYPE_EFI, adds child controllers mapping the partitions, and installs the
-EFI_SIMPLE_FILE_SYSTEM_PROTOCOL on these. This can be used together with the
+IF_TYPE_EFI_LOADER, adds child controllers mapping the partitions, and installs
+the EFI_SIMPLE_FILE_SYSTEM_PROTOCOL on these. This can be used together with 
the
  software iPXE to boot from iSCSI network drives [4].

  This driver is only available if U-Boot is configured with::
diff --git a/drivers/block/blk-uclass.c b/drivers/block/blk-uclass.c
index 83682dcc181..a7470ae28d5 100644
--- a/drivers/block/blk-uclass.c
+++ b/drivers/block/blk-uclass.c
@@ -28,7 +28,7 @@ static const char *if_typename_str[IF_TYPE_COUNT] = {
        [IF_TYPE_SATA]          = "sata",
        [IF_TYPE_HOST]          = "host",
        [IF_TYPE_NVME]          = "nvme",
-       [IF_TYPE_EFI]           = "efi",
+       [IF_TYPE_EFI_LOADER]    = "efiloader",
        [IF_TYPE_VIRTIO]        = "virtio",
        [IF_TYPE_PVBLOCK]       = "pvblock",
  };
@@ -44,7 +44,7 @@ static enum uclass_id if_type_uclass_id[IF_TYPE_COUNT] = {
        [IF_TYPE_SATA]          = UCLASS_AHCI,
        [IF_TYPE_HOST]          = UCLASS_ROOT,
        [IF_TYPE_NVME]          = UCLASS_NVME,
-       [IF_TYPE_EFI]           = UCLASS_EFI,
+       [IF_TYPE_EFI_LOADER]    = UCLASS_EFI_LOADER,
        [IF_TYPE_VIRTIO]        = UCLASS_VIRTIO,
        [IF_TYPE_PVBLOCK]       = UCLASS_PVBLOCK,
  };
diff --git a/include/blk.h b/include/blk.h
index f0cc7ca1a28..f0835c3fed5 100644
--- a/include/blk.h
+++ b/include/blk.h
@@ -34,7 +34,7 @@ enum if_type {
        IF_TYPE_SATA,
        IF_TYPE_HOST,
        IF_TYPE_NVME,
-       IF_TYPE_EFI,
+       IF_TYPE_EFI_LOADER,
        IF_TYPE_PVBLOCK,
        IF_TYPE_VIRTIO,

diff --git a/include/dm/uclass-id.h b/include/dm/uclass-id.h
index fd139b9b2a0..5e503960aa7 100644
--- a/include/dm/uclass-id.h
+++ b/include/dm/uclass-id.h
@@ -48,7 +48,7 @@ enum uclass_id {
        UCLASS_DMA,             /* Direct Memory Access */
        UCLASS_DSA,             /* Distributed (Ethernet) Switch Architecture */
        UCLASS_ECDSA,           /* Elliptic curve cryptographic device */
-       UCLASS_EFI,             /* EFI managed devices */
+       UCLASS_EFI_LOADER,      /* Devices managed by EFI_LOADER */

"managed by EFI_LOADER" does not catch it. I will change this to
"devices created by UEFI applications and drivers" when merging.

Reviewed-by: Heinrich Schuchardt <xypron.g...@gmx.de>

        UCLASS_ETH,             /* Ethernet device */
        UCLASS_ETH_PHY,         /* Ethernet PHY device */
        UCLASS_FIRMWARE,        /* Firmware */
diff --git a/lib/efi_driver/efi_block_device.c 
b/lib/efi_driver/efi_block_device.c
index 0937e3595a4..04cb3ef0d4e 100644
--- a/lib/efi_driver/efi_block_device.c
+++ b/lib/efi_driver/efi_block_device.c
@@ -147,7 +147,7 @@ static int efi_bl_bind(efi_handle_t handle, void *interface)
        if (!obj)
                return -ENOENT;

-       devnum = blk_find_max_devnum(IF_TYPE_EFI);
+       devnum = blk_find_max_devnum(IF_TYPE_EFI_LOADER);
        if (devnum == -ENODEV)
                devnum = 0;
        else if (devnum < 0)
@@ -159,8 +159,8 @@ static int efi_bl_bind(efi_handle_t handle, void *interface)
        sprintf(name, "efiblk#%d", devnum);

        /* Create driver model udevice for the EFI block io device */
-       ret = blk_create_device(parent, "efi_blk", name, IF_TYPE_EFI, devnum,
-                               io->media->block_size,
+       ret = blk_create_device(parent, "efi_blk", name, IF_TYPE_EFI_LOADER,
+                               devnum, io->media->block_size,
                                (lbaint_t)io->media->last_block, &bdev);
        if (ret)
                return ret;
@@ -209,6 +209,6 @@ static const struct efi_driver_ops driver_ops = {
  /* Identify as EFI driver */
  U_BOOT_DRIVER(efi_block) = {
        .name           = "EFI block driver",
-       .id             = UCLASS_EFI,
+       .id             = UCLASS_EFI_LOADER,
        .ops            = &driver_ops,
  };
diff --git a/lib/efi_driver/efi_uclass.c b/lib/efi_driver/efi_uclass.c
index 382c2b477f4..b01ce89c84e 100644
--- a/lib/efi_driver/efi_uclass.c
+++ b/lib/efi_driver/efi_uclass.c
@@ -308,7 +308,7 @@ efi_status_t efi_driver_init(void)
        log_debug("Initializing EFI driver framework\n");
        for (drv = ll_entry_start(struct driver, driver);
             drv < ll_entry_end(struct driver, driver); ++drv) {
-               if (drv->id == UCLASS_EFI) {
+               if (drv->id == UCLASS_EFI_LOADER) {
                        ret = efi_add_driver(drv);
                        if (ret != EFI_SUCCESS) {
                                log_err("Failed to add EFI driver %s\n",
@@ -328,7 +328,7 @@ efi_status_t efi_driver_init(void)
   */
  static int efi_uc_init(struct uclass *class)
  {
-       log_debug("Initializing UCLASS_EFI\n");
+       log_debug("Initializing UCLASS_EFI_LOADER\n");
        return 0;
  }

@@ -340,13 +340,13 @@ static int efi_uc_init(struct uclass *class)
   */
  static int efi_uc_destroy(struct uclass *class)
  {
-       log_debug("Destroying UCLASS_EFI\n");
+       log_debug("Destroying UCLASS_EFI_LOADER\n");
        return 0;
  }

  UCLASS_DRIVER(efi) = {
        .name           = "efi",
-       .id             = UCLASS_EFI,
+       .id             = UCLASS_EFI_LOADER,
        .init           = efi_uc_init,
        .destroy        = efi_uc_destroy,
  };


Reply via email to