[U-Boot] [PATCH] api_storage: Fix non-first storage device enumeration
Andreas Färber
afaerber at suse.de
Mon Sep 14 12:21:34 CEST 2015
When enabling CONFIG_API and chain-loading GRUB2 on jetson-tk1, only the
eMMC would show up as (hd0), but not the SD card, leading to GRUB not
finding its configuration and modules, falling back to a rescue shell.
This is because enum_ended would get set for !more after returning a
cookie for the first MMC device in group 3.
Fix this by properly setting the "more" argument also in the case of the
first storage device of a group.
Signed-off-by: Andreas Färber <afaerber at suse.de>
---
api/api_storage.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/api/api_storage.c b/api/api_storage.c
index b76b07d..ec92ae4 100644
--- a/api/api_storage.c
+++ b/api/api_storage.c
@@ -112,6 +112,11 @@ static int dev_stor_get(int type, int first, int *more, struct device_info *di)
else
found = 1;
+ /* provide hint if there are more devices in
+ * this group to enumerate */
+ if (1 < specs[type].max_dev)
+ *more = 1;
+
} else {
for (i = 0; i < specs[type].max_dev; i++)
if (di->cookie == (void *)get_dev(specs[type].name, i)) {
--
2.1.4
More information about the U-Boot
mailing list