From: Simon Glass <sjg@chromium.org>
Date: Fri, 28 Apr 2023 19:18:09 +0000 (-0600)
Subject: bootstd: Work around missing partition 1
X-Git-Tag: v2025.01-rc5-pxa1908~996^2~7
X-Git-Url: http://git.dujemihanovic.xyz/img/html/static/login.html?a=commitdiff_plain;h=76afc8457eb2f55771d9c9e2ba6106bac43a166b;p=u-boot.git

bootstd: Work around missing partition 1

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@chromium.org>
---

diff --git a/boot/bootdev-uclass.c b/boot/bootdev-uclass.c
index 57d2944647..9660ff7567 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