[PATCH] arm64: versal2: Fix emmc boot mode boot_target issue
Michal Simek
michal.simek at amd.com
Fri Jan 16 08:55:09 CET 2026
On 1/13/26 07:01, Pranav Tilak wrote:
> The eMMC boot device controller on Versal2 requires device pointer
> initialization before accessing its sequence number. The EMMC_MODE case
> was using dev_seq(dev) on an uninitialized pointer, causing corrupted
> boot_targets entries (mmc7f7fbfbf instead of mmc0/mmc1).
>
> Add uclass_get_device_by_name() call to properly initialize the device
> pointer before reading the sequence number. The dev sequence number is
> determined at runtime based on DT aliases.
>
> Fix boot_targets corruption in eMMC boot mode, allowing proper boot
> device selection instead of falling back to JTAG mode.
>
> Signed-off-by: Pranav Tilak <pranav.vinaytilak at amd.com>
> ---
> board/amd/versal2/board.c | 6 ++++++
> 1 file changed, 6 insertions(+)
>
> diff --git a/board/amd/versal2/board.c b/board/amd/versal2/board.c
> index 1fd05a1157a..d8079c1cee0 100644
> --- a/board/amd/versal2/board.c
> +++ b/board/amd/versal2/board.c
> @@ -253,6 +253,12 @@ static int boot_targets_setup(void)
> break;
> case EMMC_MODE:
> puts("EMMC_MODE\n");
> + if (uclass_get_device_by_name(UCLASS_MMC,
> + "mmc at f1050000", &dev)) {
> + debug("SD1 driver for SD1 device is not present\n");
> + break;
> + }
> + debug("mmc1 device found at %p, seq %d\n", dev, dev_seq(dev));
> mode = "mmc";
> bootseq = dev_seq(dev);
> break;
Applied.
M
More information about the U-Boot
mailing list