]> git.ipfire.org Git - thirdparty/u-boot.git/commitdiff
rockchip: spl-boot-order: Defer probe of boot device
authorJonas Karlman <jonas@kwiboo.se>
Sat, 12 Jul 2025 21:12:29 +0000 (21:12 +0000)
committerTom Rini <trini@konsulko.com>
Sun, 2 Nov 2025 18:15:23 +0000 (12:15 -0600)
Boot devices are being probed when SPL boot order is determined. This
may delay boot slightly and can prevent booting from SPI Flash on boards
that use same pins for SPI Flash and eMMC due to pinctrl being applied
prior to booting.

Instead defer probe of the boot device until SPL try to load image from
the boot device by using uclass_find_device_by_of_offset() instead of
the get variant.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
arch/arm/mach-rockchip/spl-boot-order.c

index 561bddd12a6d44a7be3d3d7e55b78994cc9c98a9..1ea1033b5eace561d1838656e6e2381579ff1ce0 100644 (file)
@@ -40,7 +40,7 @@ static int spl_node_to_boot_device(int node)
         * aware of the block-device layer.  Until then (and to avoid unneeded
         * delays in getting this feature out), it lives at the board-level.
         */
-       if (!uclass_get_device_by_of_offset(UCLASS_MMC, node, &parent)) {
+       if (!uclass_find_device_by_of_offset(UCLASS_MMC, node, &parent)) {
                struct udevice *dev;
                struct blk_desc *desc = NULL;
 
@@ -72,7 +72,7 @@ static int spl_node_to_boot_device(int node)
         * extended with awareness of the BLK layer (and matching OF_CONTROL)
         * soon.
         */
-       if (!uclass_get_device_by_of_offset(UCLASS_SPI_FLASH, node, &parent))
+       if (!uclass_find_device_by_of_offset(UCLASS_SPI_FLASH, node, &parent))
                return BOOT_DEVICE_SPI;
 
        return -1;