[RFC 0/7] efi_loader: move device-path node generation to DM

Heinrich Schuchardt heinrich.schuchardt at canonical.com
Sun Mar 26 19:27:36 CEST 2023

UEFI device-paths are used in the EFI world to depict the parent-child
relationship between devices. No two device can have the same device-path.
Currently we fail to generate unique devices-paths.

The nodes in UEFI device paths should match the devices on the path
to the DM root node.

I have started drafting a solution. Several block device classes still need
to be handled (IDE, NVMe, EFI, VirtIO). Also handling of PCI addresses is
missing. But this series contains enough to see the direction of

Heinrich Schuchardt (7):
  dm: add get_dp_node() to struct uclass_driver
  dm: implement uclass_get_dp_node()
  dm: implement get_dp_node for block devices
  dm: implement get_dp_node for USB hub devices
  dm: implement get_dp_node for USB mass storage devices
  dm: implement get_dp_node for MMC devices
  efi_loader: use uclass_get_dp_node

 common/usb_hub.c                 |  33 ++++
 common/usb_storage.c             |  33 ++++
 drivers/block/blk-uclass.c       |  56 ++++++
 drivers/core/uclass.c            |  26 +++
 drivers/mmc/mmc-uclass.c         |  25 +++
 include/dm/uclass.h              |  13 ++
 include/efi_loader.h             |   7 +
 lib/efi_loader/efi_device_path.c | 325 +++----------------------------
 8 files changed, 221 insertions(+), 297 deletions(-)


More information about the U-Boot mailing list