[PATCH] mach-k3: am62*: am62*_init: Prohibit boot from UDA w/ eMMC boot

Bryan Brattlof bb at ti.com
Thu Jul 17 18:02:13 CEST 2025


On July 17, 2025 thus sayeth Bryan Brattlof:
> On July 10, 2025 thus sayeth Judith Mendez:
> > This removes support from booting from UDA when in eMMC boot.
> > 
> > When user selects eMMC boot [0], that is, boot from eMMC boot0 or
> > boot1 HW partitions, we should not boot from eMMC UDA. The current
> > logic confuses the end user and mixes two different boot modes.
> > 
> > The logic was added for AM62A/AM62P with commit: 3b7893145e36, but
> 
> If we end up respinning this we should probably use the standard
> 'commit: <sha> "(<msg>)"' syntax.
> 
> > this is not a clean solution and fix will come later for falcon boot.
> > 
> > Logic was also added for AM62X with commit: 664593464634, but this
> > logic is incorrect according to TRM [0] under Primary Boot Mode Selection
> > for 'eMMC Boot'.
> > 
> > Fixes: 3b7893145e36 ("mach-k3: add eMMC FS boot support for am62[ap]")
> > Fixes: 664593464634 ("arm: mach-k3: am625: Relax emmc boot condition")
> > Signed-off-by: Judith Mendez <jm at ti.com>
> > ---
> >  arch/arm/mach-k3/am62ax/am62a7_init.c | 4 ----
> >  arch/arm/mach-k3/am62px/am62p5_init.c | 4 ----
> >  arch/arm/mach-k3/am62x/am625_init.c   | 4 ----
> >  3 files changed, 12 deletions(-)
> > 
> > diff --git a/arch/arm/mach-k3/am62ax/am62a7_init.c b/arch/arm/mach-k3/am62ax/am62a7_init.c
> > index edd43a1d78d..1d8644bd073 100644
> > --- a/arch/arm/mach-k3/am62ax/am62a7_init.c
> > +++ b/arch/arm/mach-k3/am62ax/am62a7_init.c
> > @@ -217,10 +217,6 @@ u32 spl_mmc_boot_mode(struct mmc *mmc, const u32 boot_device)
> >  
> >  	switch (bootmode) {
> >  	case BOOT_DEVICE_EMMC:
> > -		if (IS_ENABLED(CONFIG_SUPPORT_EMMC_BOOT))
> > -			return MMCSD_MODE_EMMCBOOT;
> > -		if (IS_ENABLED(CONFIG_SPL_FS_FAT) || IS_ENABLED(CONFIG_SPL_FS_EXT4))
> > -			return MMCSD_MODE_FS;
> 
> If we're booting from what ROM calls eMMC boot, which ROM has the 
> limitation where we can only boot from MMC0 in 8bit 1v8 and in RAW mode. 
> So I see the need to soften this requirement.
> 
> >  		return MMCSD_MODE_EMMCBOOT;
> >  	case BOOT_DEVICE_MMC:
> 
> But it also has what they call MMC/SD mode which gives us the option of 
> booting from both MMC0 and MMC1 and in RAW or FS mode by setting the 
> PORT and RAW pins which we can read in the WKUP_CTRL_MMR0. And can give 
> us the same configuration as the previous boot mode.
> 

Wait no this is wrong. I think I should point out that this bootmode 
only works in UDA mode. MMC/SD mode can be configured to use RAW offsets 
or a FS to find the binary, but will not look in the boot partitions.

> I agree if we know the next phases of boot won't fit in the boot 
> partition we should be using this bootmode.
> 
> But I know this takes away some functionality after people have 
> already had their boards made and who cannot realistically change 
> their bootmode pins. I wonder if we should mark this as __weak so 
> people can override this in the board/ directory if needed?

I still tend to agree we don't really want to modify the boodmode for 
the next phase but with falcon mode and how massive U-Boot can be 
sometimes. I don't think we can get away from this unless we let 
individual boards modify this for their own need.

~Bryan


More information about the U-Boot mailing list