[PATCH v3 4/5] arch: arm: mach-socfpga: Adjust a raw sectors for MMC loading of U-Boot from SPL

Chee, Tien Fong tienfong.chee at altera.com
Mon Dec 15 06:04:13 CET 2025


On 12/12/2025 12:34 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 <jan.kiszka at siemens.com>
>
> If U-Boot is located on MMC, SPL and U-Boot proper are glued together.
> More precisely, SPL is stored 4 times. Take this and its padding into
> account and adjust sector number via board_spl_mmc_get_uboot_raw_sector.
> This allows loading from a partition, without the need to hard-code the
> offset via SYS_MMCSD_RAW_MODE_U_BOOT_USE_SECTOR
>
> Signed-off-by: Jan Kiszka <jan.kiszka at siemens.com>
> ---
>   arch/arm/mach-socfpga/board.c | 11 +++++++++++
>   1 file changed, 11 insertions(+)
>
> diff --git a/arch/arm/mach-socfpga/board.c b/arch/arm/mach-socfpga/board.c
> index 28554b7a109..7f65aed4540 100644
> --- a/arch/arm/mach-socfpga/board.c
> +++ b/arch/arm/mach-socfpga/board.c
> @@ -14,6 +14,7 @@
>   #include <hang.h>
>   #include <handoff.h>
>   #include <image.h>
> +#include <spl.h>
>   #include <usb.h>
>   #include <usb/dwc2_udc.h>
>   #include <asm/global_data.h>
> @@ -209,3 +210,13 @@ void lmb_arch_add_memory(void)
>          }
>   }
>   #endif
> +
> +#if (defined(CONFIG_TARGET_SOCFPGA_ARRIA10) || \
> +     defined(CONFIG_TARGET_SOCFPGA_GEN5)) && defined(CONFIG_XPL_BUILD)
> +unsigned long board_spl_mmc_get_uboot_raw_sector(struct mmc *mmc,
> +                                                unsigned long raw_sect)
> +{
> +       /* offset of u-boot proper inside u-boot-with-spl.sfp image */
> +       return (CONFIG_SPL_PAD_TO * 4) / 512 + raw_sect;
> +}
> +#endif
> --
> 2.51.0


Reviewed-by: Tien Fong Chee <tien.fong.chee at altera.com>

Best regards,
Tien Fong



More information about the U-Boot mailing list