
On Tue, 20 Mar 2018 10:54:51 +0100 Patrick Delaunay patrick.delaunay@st.com wrote:
The spl_boot_partition function has been added in order to have the possibility to boot on a same binary from different mmc devices with different partitions.
By default keep the current behavior, SPL use the partition defined by CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_PARTITION.
Signed-off-by: Patrick Delaunay patrick.delaunay@st.com Signed-off-by: Christophe KERELLO christophe.kerello@st.com
common/spl/spl_mmc.c | 15 +++++++++++++-- include/spl.h | 1 + 2 files changed, 14 insertions(+), 2 deletions(-)
diff --git a/common/spl/spl_mmc.c b/common/spl/spl_mmc.c index 351f4ed..4aa0b2c 100644 --- a/common/spl/spl_mmc.c +++ b/common/spl/spl_mmc.c @@ -292,6 +292,14 @@ u32 __weak spl_boot_mode(const u32 boot_device) #endif }
+#ifdef CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION +__weak +int spl_boot_partition(const u32 boot_device) +{
- return CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_PARTITION;
+} +#endif
int spl_mmc_load_image(struct spl_image_info *spl_image, struct spl_boot_device *bootdev) { @@ -347,8 +355,11 @@ int spl_mmc_load_image(struct spl_image_info *spl_image, return err; } #ifdef CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION
err = mmc_load_image_raw_partition(spl_image, mmc,
CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_PARTITION);
err = spl_boot_partition(bootdev->boot_device);
if (!err)
return err;
err = mmc_load_image_raw_partition(spl_image, mmc,
err); if (!err) return err; #endif diff --git a/include/spl.h b/include/spl.h index c14448b..5754012 100644 --- a/include/spl.h +++ b/include/spl.h @@ -82,6 +82,7 @@ int spl_load_simple_fit(struct spl_image_info *spl_image, void preloader_console_init(void); u32 spl_boot_device(void); u32 spl_boot_mode(const u32 boot_device); +int spl_boot_partition(const u32 boot_device); void spl_set_bd(void);
/**
Reviewed-by: Lukasz Majewski lukma@denx.de
Best regards,
Lukasz Majewski
--
DENX Software Engineering GmbH, Managing Director: Wolfgang Denk HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd@denx.de