[PATCH 09/18] bootstd: Work around missing partition 1

Simon Glass sjg at chromium.org
Fri Apr 28 21:18:09 CEST 2023


If there is no partition numbered 1, we decide that there are no
partitions at all. That may not be correct, since at least one Debian
installed has just a single partition numbered 2.

Continue searching up to partition 3, just in case.

Signed-off-by: Simon Glass <sjg at chromium.org>
---

 boot/bootdev-uclass.c | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/boot/bootdev-uclass.c b/boot/bootdev-uclass.c
index 57d29446476..9660ff75676 100644
--- a/boot/bootdev-uclass.c
+++ b/boot/bootdev-uclass.c
@@ -154,8 +154,15 @@ int bootdev_find_in_blk(struct udevice *dev, struct udevice *blk,
 		ret = -ESHUTDOWN;
 	else
 		bflow->state = BOOTFLOWST_MEDIA;
-	if (ret)
+	if (ret) {
+		/* allow partition 1 to be missing */
+		if (iter->part == 1) {
+			iter->max_part = 3;
+			ret = -ENOENT;
+		}
+
 		return log_msg_ret("part", ret);
+	}
 
 	/*
 	 * Currently we don't get the number of partitions, so just
-- 
2.40.1.495.gc816e09b53d-goog



More information about the U-Boot mailing list