Message ID | 1521539694-16598-1-git-send-email-patrick.delaunay@st.com |
---|---|
State | Accepted |
Commit | 35a66960cd7358588bd678b4b3dfedb27226fe3e |
Delegated to: | Tom Rini |
Headers | show |
Series | [U-Boot,1/4] spl: spl_mmc: provide one weak function spl_boot_partition | expand |
On Tue, Mar 20, 2018 at 10:54:51AM +0100, Patrick Delaunay 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> Reviewed-by: Tom Rini <trini@konsulko.com>
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
On Tue, Mar 20, 2018 at 10:54:51AM +0100, Patrick Delaunay 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> > Reviewed-by: Tom Rini <trini@konsulko.com> > Reviewed-by: Lukasz Majewski <lukma@denx.de> Applied to u-boot/master, thanks!
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); /**