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

Judith Mendez jm at ti.com
Thu Sep 11 16:48:38 CEST 2025


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.

> 
> 
> 
>> 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?

~ Judith


More information about the U-Boot mailing list