1 // SPDX-License-Identifier: GPL-2.0+
10 static int do_lsblk(struct cmd_tbl *cmdtp, int flag, int argc, char * const argv[])
12 struct driver *d = ll_entry_start(struct driver, driver);
13 const int n_ents = ll_entry_count(struct driver, driver);
17 struct blk_desc *desc;
20 ret = uclass_get(UCLASS_BLK, &uc);
22 puts("Could not get BLK uclass.\n");
23 return CMD_RET_FAILURE;
25 puts("Block Driver Devices\n");
26 puts("-----------------------------\n");
27 for (entry = d; entry < d + n_ents; entry++) {
28 if (entry->id != UCLASS_BLK)
31 printf("%-20.20s", entry->name);
32 uclass_foreach_dev(udev, uc) {
33 if (udev->driver != entry)
35 desc = dev_get_uclass_platdata(udev);
36 printf("%c %s %u", i ? ',' : ':',
37 blk_get_if_type_name(desc->if_type),
46 return CMD_RET_SUCCESS;
49 U_BOOT_CMD(lsblk, 1, 0, do_lsblk, "list block drivers and devices",
50 "- display list of block device drivers and attached block devices"