The EMMC_MODE case set bootseq from dev_seq(dev) without ever assigning dev, so it used an uninitialized pointer and produced a bogus device sequence in boot_targets.
eMMC is wired to the SD1 controller (mmc@f1050000, see versal-net-mini-emmc.dts). Look that device up like the SD cases do before using its sequence number. Signed-off-by: Michal Simek <[email protected]> --- board/xilinx/versal-net/board.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/board/xilinx/versal-net/board.c b/board/xilinx/versal-net/board.c index 687d042d1062..9c0490cba980 100644 --- a/board/xilinx/versal-net/board.c +++ b/board/xilinx/versal-net/board.c @@ -145,6 +145,11 @@ static int boot_targets_setup(void) break; case EMMC_MODE: puts("EMMC_MODE\n"); + if (uclass_get_device_by_name(UCLASS_MMC, + "mmc@f1050000", &dev)) { + debug("eMMC driver for eMMC device is not present\n"); + break; + } mode = "mmc"; bootseq = dev_seq(dev); break; -- 2.43.0

