[PATCH 1/4] arm: mach-k3: Fix MMC macros

Moteen Shah m-shah at ti.com
Mon Sep 15 13:35:41 CEST 2025


Hey Judith,

On 11/09/25 20:18, Judith Mendez wrote:
> Hi Udit, Moteen,
>
> On 9/10/25 11:38 PM, Kumar, Udit wrote:
>>
>> On 9/11/2025 3:15 AM, Judith Mendez wrote:
>>> For all K3 SoC's eMMC boot and MMCSD boot modes are supported. The 
>>> macros
>>> however, mix MMC device with the two bootmodes. Decouple the two types
>>> of macros so that bootmodes can be identified with:
>>> - BOOT_DEVICE_MMCSD
>>> - BOOT_DEVICE_EMMC
>>
>> Few devices already (kind of have this )
>>
>> arch/arm/mach-k3/include/mach/j722s_spl.h
>>
>> #define BOOT_DEVICE_MMC                 0x08
>> #define BOOT_DEVICE_EMMC                0x09
>>
>> can we use in same way, BOOT_DEVICE_MMC  as SD instead of adding SD 
>> as postfix and
>>
>> and add BOOT_DEVICE_EMMC, on devices where this is missing
>
> No, there are two boot modes. MMCSD boot and EMMC boot. That is what I
> am trying to make clear with switching:
>
> > #define BOOT_DEVICE_MMC                 0x08
> > #define BOOT_DEVICE_EMMC                0x09
> To:
>
> > #define BOOT_DEVICE_MMCSD                 0x08
> > #define BOOT_DEVICE_EMMC                0x09
>
> When we say: BOOT_DEVICE_MMC, it is not obvious it is from am62x/j722s
> TRM:
>
> MMCSD Boot (SD Card Boot or eMMC Boot using UDA). The goal of these
> two specific macros is to mimic the supported boot modes.
>
>>
>>
>>> according to devstat parsed boot mode values and on-board devices 
>>> can be
>>> identified with:
>>> - BOOT_DEVICE_MMC1
>>> - BOOT_DEVICE_MMC2
>>> - BOOT_DEVICE_MMC2_2
>>
>> Why you need to change
>>
>> #define for BOOT_DEVICE_MMC1 and and BOOT_DEVICE_MMC2
>
> Because the goals is to decouple the bootmodes from the macros used to
> distinguish eMMC and SD card devices.

Isn't MMC1=eMMC and MMC2=MMCSD u-boot's own notation? In which case 
there already is a clear distinction.
With the case with am62x/j722s, I agree that there needs to be a clarity 
with the modes, BOOT_DEVICE_MMC is vague.

>
>>
>>
>>
>>> according to arbitrary numbers mainly used to differentiate between 
>>> eMMC
>>> and SD card.
>>
>> Please check subject line, this is not a fix
>>
>>> Signed-off-by: Judith Mendez <jm at ti.com>
>>> ---
>>>   arch/arm/mach-k3/am62ax/am62a7_init.c          |  4 ++--
>>>   arch/arm/mach-k3/am62ax/boot.c                 |  8 ++++----
>>>   arch/arm/mach-k3/am62px/am62p5_init.c          | 12 ++++++------
>>>   arch/arm/mach-k3/am62x/am625_init.c            |  4 ++--
>>>   arch/arm/mach-k3/am62x/boot.c                  |  8 ++++----
>>>   arch/arm/mach-k3/am64x/boot.c                  |  8 ++++----
>>>   arch/arm/mach-k3/am65x/am654_init.c            | 18 
>>> ++++++++++--------
>>>   arch/arm/mach-k3/include/mach/am62_hardware.h  |  8 ++++----
>>>   arch/arm/mach-k3/include/mach/am62_spl.h       | 10 +++++-----
>>>   arch/arm/mach-k3/include/mach/am62a_hardware.h |  8 ++++----
>>>   arch/arm/mach-k3/include/mach/am62a_spl.h      | 10 +++++-----
>>>   arch/arm/mach-k3/include/mach/am62p_hardware.h |  8 ++++----
>>>   arch/arm/mach-k3/include/mach/am62p_spl.h      | 10 +++++-----
>>>   arch/arm/mach-k3/include/mach/am64_hardware.h  |  4 ++--
>>>   arch/arm/mach-k3/include/mach/am64_spl.h       | 13 +++++++------
>>>   arch/arm/mach-k3/include/mach/am6_hardware.h   |  8 ++++----
>>>   arch/arm/mach-k3/include/mach/am6_spl.h        | 13 +++++++++----
>>>   arch/arm/mach-k3/include/mach/j721e_hardware.h |  6 +++---
>>>   arch/arm/mach-k3/include/mach/j721e_spl.h      | 14 ++++++++++----
>>>   .../arm/mach-k3/include/mach/j721s2_hardware.h |  6 +++---
>>>   arch/arm/mach-k3/include/mach/j721s2_spl.h     | 13 +++++++++----
>>>   arch/arm/mach-k3/include/mach/j722s_hardware.h |  8 ++++----
>>>   arch/arm/mach-k3/include/mach/j722s_spl.h      | 10 +++++-----
>>>   .../arm/mach-k3/include/mach/j784s4_hardware.h |  6 +++---
>>>   arch/arm/mach-k3/include/mach/j784s4_spl.h     | 13 +++++++++----
>>>   arch/arm/mach-k3/j721e/j721e_init.c            | 14 +++++++++-----
>>>   arch/arm/mach-k3/j721s2/j721s2_init.c          | 14 +++++++++-----
>>>   arch/arm/mach-k3/j722s/j722s_init.c            | 12 ++++++------
>>>   arch/arm/mach-k3/j784s4/j784s4_init.c          | 14 +++++++++-----
>>>   29 files changed, 160 insertions(+), 124 deletions(-)
>>>
>>> diff --git a/arch/arm/mach-k3/am62ax/am62a7_init.c 
>>> b/arch/arm/mach-k3/ am62ax/am62a7_init.c
>>> index 00173e6836b..1fd466bbdfc 100644
>>> --- a/arch/arm/mach-k3/am62ax/am62a7_init.c
>>> +++ b/arch/arm/mach-k3/am62ax/am62a7_init.c
>>> @@ -225,8 +225,8 @@ u32 spl_mmc_boot_mode(struct mmc *mmc, const u32 
>>> boot_device)
>>>           if (IS_ENABLED(CONFIG_SPL_FS_FAT) || 
>>> IS_ENABLED(CONFIG_SPL_FS_EXT4))
>>>               return MMCSD_MODE_FS;
>>>           return MMCSD_MODE_EMMCBOOT;
>>> [..]
>>> +    if (bootmode == BOOT_DEVICE_EMMC)
>>> +        bootmode = BOOT_DEVICE_MMC1;
>>> +
>>
>> Could you test once, eMMC on J784s4
>
> I do not have J784s4, Moteen, would you be able to test?

I tested this series on J784s4, MMCSD boot and eMMC boot 0 boot works fine.

Regards,
Moteen

>
> ~ Judith


More information about the U-Boot mailing list