Hi Jan,

On 25/11/2025 2:48 pm, Jan Kiszka wrote:
[CAUTION: This email is from outside your organization. Unless you trust the 
sender, do not click on links or open attachments as it may be a fraudulent 
email attempting to steal your information and/or compromise your computer.]

On 25.11.25 04:58, Chee, Tien Fong wrote:
Hi Jan,

On 15/11/2025 1:13 am, Jan Kiszka wrote:
[CAUTION: This email is from outside your organization. Unless you
trust the sender, do not click on links or open attachments as it may
be a fraudulent email attempting to steal your information and/or
compromise your computer.]

From: Jan Kiszka <[email protected]>

Add SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION_TYPE as condition where so
far SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION was enough - though often
by chance as both options were enabled.

We also need to explicitly select SPL_LOAD_BLOCK when UES_PARTITION_TYPE
is enabled, just like the other choices do.

Fixes: 2a00d73d081a ("spl: mmc: Try to clean up raw-mode options")
Signed-off-by: Jan Kiszka <[email protected]>
---
   common/spl/Kconfig   |  1 +
   common/spl/spl_mmc.c | 16 ++++++++--------
   include/part.h       |  3 ++-
   3 files changed, 11 insertions(+), 9 deletions(-)

diff --git a/common/spl/Kconfig b/common/spl/Kconfig
index 8dade2b501e..d24466b0c66 100644
--- a/common/spl/Kconfig
+++ b/common/spl/Kconfig
@@ -573,6 +573,7 @@ config SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION

   config SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION_TYPE
          bool "MMC raw mode: by partition type"
+       select SPL_LOAD_BLOCK
          depends on DOS_PARTITION
          help
            Use partition type for specifying U-Boot partition on MMC/
SD in
diff --git a/common/spl/spl_mmc.c b/common/spl/spl_mmc.c
index 467114f8d9a..09e881c464c 100644
--- a/common/spl/spl_mmc.c
+++ b/common/spl/spl_mmc.c
@@ -106,7 +106,8 @@ static int spl_mmc_find_device(struct mmc **mmcp,
int mmc_dev)
          return 0;
   }

-#ifdef CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION
+#if defined(CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION) || \
+    defined(CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION_TYPE)
   static int mmc_load_image_raw_partition(struct spl_image_info
*spl_image,
                                          struct spl_boot_device *bootdev,
                                          struct mmc *mmc, int partition,
@@ -415,19 +416,18 @@ int spl_mmc_load(struct spl_image_info *spl_image,

                  raw_sect = spl_mmc_get_uboot_raw_sector(mmc, raw_sect);

-#ifdef CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION
-               ret = mmc_load_image_raw_partition(spl_image, bootdev,
-                                                  mmc, raw_part,
-                                                  raw_sect);
-               if (!ret)
-                       return 0;
-#endif
   #ifdef CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_USE_SECTOR
                  ret = mmc_load_image_raw_sector(spl_image, bootdev, mmc,
                                                  raw_sect +

spl_mmc_raw_uboot_offset(part));
                  if (!ret)
                          return 0;
+#else

There is a build issue when CONFIG_SYS_MMCSD_RAW_MODE is disabled.

Let me check, but if you can disable CONFIG_SYS_MMCSD_RAW_MODE but leave
any of CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_USE_* enabled, we had more
problems here.

We discovered this compilation issue when we disabled CONFIG_SYS_MMCSD_RAW_MODE while testing U-Boot proper loading from FAT32 on Cyclone V. In this setup, none of the sub-options -> _USE_PARTITION, _USE_PARTITION_TYPE, or _USE_SECTOR, should be used or enabled, as SPL simply loads U-Boot proper from FAT32. The raw/partition offsets are not relevant in this case, ensuring a clean, consistent MMC layout across our devkits.


Thanks.

Tien Fong


Reply via email to