]> git.dujemihanovic.xyz Git - u-boot.git/commit
bootstd: Skip over bad device during bootflows scanning
authorTony Dinh <mibodhi@gmail.com>
Thu, 2 Nov 2023 18:51:15 +0000 (11:51 -0700)
committerTom Rini <trini@konsulko.com>
Fri, 10 Nov 2023 16:01:50 +0000 (11:01 -0500)
commitee2ce29223c594d5c3f2f7743fb88a8d05e9918b
treea158a2588aafc13a72ae05270af06ed23e693002
parenta94a4071d449e12c9fb5ac37d6362d22efcb27da
bootstd: Skip over bad device during bootflows scanning

During bootstd scanning for bootdevs, if bootdev_hunt_drv() encounters
a device not found error (e.g. ENOENT), let it return a successful status
so that bootstd will continue scanning the next devices, not stopping
prematurely.

Background:

During scanning for bootflows, it's possible for bootstd to encounter a
faulty device controller. Also when the same u-boot is used for another
variant of the same board, some device controller such as SATA might
not exist.

I've found this issue while converting the Marvell Sheevaplug board to
use bootstd. This board has 2 variants, the original Sheevaplug has MMC and
USB only, but the later variant comes with USB, MMC, and eSATA ports. We
have been using the same u-boot (starting with CONFIG_IDE and later with DM
CONFIG_SATA) for both variants. This worked well with the old
envs-scripting booting scheme.

Signed-off-by: Tony Dinh <mibodhi@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
boot/bootdev-uclass.c
drivers/ata/sata.c
include/bootdev.h