efi: Add a uclass column to efidebug media command

Add a new column to the 'efidebug media' command that shows the likely
uclass for each EFI media device based on its device path.

This uses the new efi_dp_guess_uclass() function which looks through an
EFI device-path to determine the corresponding uclass.

Co-developed-by: Claude <noreply@anthropic.com>
Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
Simon Glass
2025-08-20 15:02:33 -06:00
parent af0299b9de
commit 9390344c35
2 changed files with 19 additions and 12 deletions

View File

@@ -1606,6 +1606,7 @@ static int do_efi_test(struct cmd_tbl *cmdtp, int flag,
return cp->cmd(cmdtp, flag, argc, argv);
}
/**
* do_efi_show_media() - show EFI media devices
*
@@ -1631,13 +1632,16 @@ static int do_efi_show_media(struct cmd_tbl *cmdtp, int flag,
return CMD_RET_FAILURE;
}
printf("Device Device Path\n");
printf("------------------- -----------\n");
printf("Device Media type Device Path\n");
printf("------------------- --------------- -----------\n");
uclass_foreach_dev(dev, uc) {
struct efi_media_plat *plat = dev_get_plat(dev);
enum uclass_id id;
const char *name = efi_dp_guess_uclass(plat->device_path, &id);
printf("%-20s %pD\n", dev->name, plat->device_path);
printf("%-20s %-15s %pD\n", dev->name, name,
plat->device_path);
}
return CMD_RET_SUCCESS;

View File

@@ -34,11 +34,14 @@ itself has called.
efidebug media
~~~~~~~~~~~~~~
This shows a list of all EFI media devices and their corresponding device paths.
Each EFI media device represents a block device that was discovered through EFI
boot services, such as hard drives, USB storage, or other bootable media. The
device path shows the EFI device path for each device, which can be useful for
debugging boot issues or understanding the system topology.
This shows a list of all EFI media devices, their likely U-Boot uclass, and
their corresponding device paths. Each EFI media device represents a block
device that was discovered through EFI boot services, such as hard drives, USB
storage, or other bootable media. The U-Boot Class column shows which U-Boot
driver subsystem would likely handle the device (e.g., "ahci" for SATA drives,
"usb" for USB storage). The device path shows the EFI device path for each
device, which can be useful for debugging boot issues or understanding the
system topology.
Example
@@ -47,10 +50,10 @@ Example
This shows checking the EFI media devices::
=> efidebug media
Device Device Path
------ -----------
efi_media_1 PciRoot(0x0)/Pci(0x3,0x0)/Sata(0x0,0xFFFF,0x0)
efi_media_2 PciRoot(0x0)/Pci(0x5,0x0)
Device Media type Device Path
------------------- --------------- -----------
efi_media_1 ahci PciRoot(0x0)/Pci(0x3,0x0)/Sata(0x0,0xFFFF,0x0)
efi_media_2 pci PciRoot(0x0)/Pci(0x5,0x0)
This shows checking the log, then using 'efidebug tables' to fully set up the