summaryrefslogtreecommitdiff
path: root/boot
diff options
context:
space:
mode:
authorSimon Glass <sjg@chromium.org>2023-01-17 10:47:16 -0700
committerTom Rini <trini@konsulko.com>2023-01-23 18:11:39 -0500
commitcb698b0a3e80eb75941414a1cac75a7c87ab9982 (patch)
tree83f8beb011f0737dfe96e03cdf05d2b9b827d9e4 /boot
parent6a6638f0939dca65c7d1cd0d766957d3d3adc519 (diff)
bootstd: Simplify locating existing bootdevs
There is no point in trying to match the alias order for bootdevs, since build_order() either sorts them by priority, uses the boot_targets environment variable or the bootdev-order property. Just use the iterator instead, to simplify the code. Signed-off-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'boot')
-rw-r--r--boot/bootdev-uclass.c16
1 files changed, 5 insertions, 11 deletions
diff --git a/boot/bootdev-uclass.c b/boot/bootdev-uclass.c
index 696efb4b19..cffa01824c 100644
--- a/boot/bootdev-uclass.c
+++ b/boot/bootdev-uclass.c
@@ -544,8 +544,8 @@ static int build_order(struct udevice *bootstd, struct udevice **order,
int bootdev_setup_iter_order(struct bootflow_iter *iter, struct udevice **devp)
{
struct udevice *bootstd, *dev = *devp, **order;
- int upto, i;
- int count;
+ struct uclass *uc;
+ int count, upto;
int ret;
ret = uclass_first_device_err(UCLASS_BOOTSTD, &bootstd);
@@ -568,15 +568,9 @@ int bootdev_setup_iter_order(struct bootflow_iter *iter, struct udevice **devp)
if (!order)
return log_msg_ret("order", -ENOMEM);
- /*
- * Get a list of bootdevs, in seq order (i.e. using aliases). There may
- * be gaps so try to count up high enough to find them all.
- */
- for (i = 0, upto = 0; upto < count && i < 20 + count * 2; i++) {
- ret = uclass_find_device_by_seq(UCLASS_BOOTDEV, i, &dev);
- if (!ret)
- order[upto++] = dev;
- }
+ /* Get the list of bootdevs */
+ uclass_id_foreach_dev(UCLASS_BOOTDEV, dev, uc)
+ order[upto++] = dev;
log_debug("Found %d bootdevs\n", count);
if (upto != count)
log_debug("Expected %d bootdevs, found %d using aliases\n",