Recent rework introduced a regression for state located in the eMMC user area described by DT fixed partitions. Whereas before, the first device with type "disk" was taken, dt-utils will now iterate over all devices to try to find a matching GPT partition. If it doesn't find any, it will instead take the last device with type "disk", which will be the second boot partition for eMMC devices leading barebox-state to access /dev/mmcblkXboot1 instead of /dev/mmcblkX.
Let's fix this regression by restoring the old behavior of preferring the first disk. This may not be totally future proof, but it worked ok for years and a better solution can always be added later with a regular release. Reported-by: Leonard Göhrs <l.goe...@pengutronix.de> Signed-off-by: Ahmad Fatoum <a.fat...@pengutronix.de> --- src/libdt.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/libdt.c b/src/libdt.c index 650b40467587..72e8ab41e09b 100644 --- a/src/libdt.c +++ b/src/libdt.c @@ -2301,7 +2301,7 @@ static int cdev_from_block_device(struct udev_device *dev, devtype = udev_device_get_devtype(part); if (!devtype) continue; - if (!strcmp(devtype, "disk")) { + if (!strcmp(devtype, "disk") && !best_match) { best_match = part; /* Should we try to find a matching partition first? */ -- 2.39.2