From: Jan Kiszka <[email protected]> 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 <[email protected]> --- arch/arm/mach-socfpga/board.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/arch/arm/mach-socfpga/board.c b/arch/arm/mach-socfpga/board.c index 28554b7a109..d756f7381fb 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,11 @@ void lmb_arch_add_memory(void) } } #endif + +#ifdef CONFIG_SPL +unsigned long board_spl_mmc_get_uboot_raw_sector(struct mmc *mmc, + unsigned long raw_sect) +{ + return (CONFIG_SPL_PAD_TO * 4) / 512 + raw_sect; +} +#endif -- 2.51.0

