boot: fix bootdev_list()

uclass_get_device_by_name() is meant to return 0 or a negative error code.
simple_itoa() cannot handle negative numbers.

This leads to output like:

    => bootdev list -p

    Seq  Probed  Status  Uclass    Name
    ---  ------  ------  --------  ------------------
      c   [   ]  18446744073709551614  spi_flash spi.bin@0.bootdev

Convert the status to a positive number. Now we get

    Seq  Probed  Status  Uclass    Name
    ---  ------  ------  --------  ------------------
      c   [   ]       2  spi_flash spi.bin@0.bootdev

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
This commit is contained in:
Heinrich Schuchardt
2023-07-30 16:29:25 +02:00
committed by Simon Glass
parent d4d97661d2
commit ca9d9263e5

View File

@@ -216,7 +216,7 @@ void bootdev_list(bool probe)
for (i = 0; dev; i++) { for (i = 0; dev; i++) {
printf("%3x [ %c ] %6s %-9.9s %s\n", dev_seq(dev), printf("%3x [ %c ] %6s %-9.9s %s\n", dev_seq(dev),
device_active(dev) ? '+' : ' ', device_active(dev) ? '+' : ' ',
ret ? simple_itoa(ret) : "OK", ret ? simple_itoa(-ret) : "OK",
dev_get_uclass_name(dev_get_parent(dev)), dev->name); dev_get_uclass_name(dev_get_parent(dev)), dev->name);
if (probe) if (probe)
ret = uclass_next_device_check(&dev); ret = uclass_next_device_check(&dev);