bootdev: scan boot devices at each priority level
Currently, default 'bootflow scan -lb' will stop booting the board if any of higher-priority bootdevs fail to be hunted even if there are bootdevs of lower priority. For example, if the board has both NVMe (priority 4) and USB MSD devices (priority 5), and if NVMe bootdev hunt fails (in the event of a bad NVMe firmware update), USB (which may be a recovery bootdev) is never hunted automatically, leaving the board at the U-Boot prompt (user intervention is needed, e.g. something like 'bootflow scan usb' to hunt USB). Fix bootdev_next_prio() to scan bootdevs at the lower priority level by not exiting the scan loop early. Keep the existing logging verbosity unchanged and rely on the failing subsystem to provide a suitable diagnostic message. Signed-off-by: Denis Mukhin <dmukhin@ford.com> Reviewed-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
@@ -669,8 +669,6 @@ int bootdev_next_prio(struct bootflow_iter *iter, struct udevice **devp)
|
||||
BOOTFLOWIF_SHOW);
|
||||
log_debug("- bootdev_hunt_prio() ret %d\n",
|
||||
ret);
|
||||
if (ret)
|
||||
return log_msg_ret("hun", ret);
|
||||
}
|
||||
} else {
|
||||
ret = device_probe(dev);
|
||||
|
||||
Reference in New Issue
Block a user