diff mbox series

[U-Boot,1/4] spl: spl_mmc: provide one weak function spl_boot_partition

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

Commit Message

Patrick DELAUNAY March 20, 2018, 9:54 a.m. UTC
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(-)

Comments

Tom Rini March 20, 2018, 1:24 p.m. UTC | #1
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>
Lukasz Majewski March 20, 2018, 2:10 p.m. UTC | #2
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
Tom Rini April 7, 2018, 1:24 p.m. UTC | #3
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 mbox series

Patch

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);
 
 /**