All of lore.kernel.org
 help / color / mirror / Atom feed
* [U-Boot] [PATCH v2 1/2] env_mmc: make board configurable the partition for the environment
@ 2014-01-17  9:14 Hector Palacios
  2014-01-17  9:14 ` [U-Boot] [PATCH v2 2/2] env_mmc: default to 0 if CONFIG_SYS_MMC_ENV_DEV not defined Hector Palacios
                   ` (2 more replies)
  0 siblings, 3 replies; 6+ messages in thread
From: Hector Palacios @ 2014-01-17  9:14 UTC (permalink / raw)
  To: u-boot

This complements commit 9404a5fc7cb58 "env_mmc: allow environment to be
in an eMMC partition" by allowing boards to accommodate the partition
to use for the environment in different scenarios (similarly to what is
done with the mmc dev number). Depending on the detected boot media,
boards may decide to store the environment in a different partition.

The __weak function also allows to remove some ifdefs from the code.
If CONFIG_SYS_MMC_ENV_PART is not defined, partition 0 is assumed
(default value for U-Boot when a partition is not provided).

Signed-off-by: Hector Palacios <hector.palacios@digi.com>
---

Notes:
    Changes since v1:
    - Use default define if not set

 common/env_mmc.c | 28 ++++++++++++++++------------
 1 file changed, 16 insertions(+), 12 deletions(-)

diff --git a/common/env_mmc.c b/common/env_mmc.c
index 78c2bc7a1f08..570caf63aeae 100644
--- a/common/env_mmc.c
+++ b/common/env_mmc.c
@@ -64,6 +64,14 @@ __weak int mmc_get_env_addr(struct mmc *mmc, int copy, u32 *env_addr)
 __weak int mmc_get_env_devno(void)
 {
 	return CONFIG_SYS_MMC_ENV_DEV;
+
+#if !defined(CONFIG_SYS_MMC_ENV_PART)
+#define CONFIG_SYS_MMC_ENV_PART 0
+#endif
+
+__weak int mmc_get_env_partno(void)
+{
+	return CONFIG_SYS_MMC_ENV_PART;
 }
 
 int env_init(void)
@@ -77,6 +85,9 @@ int env_init(void)
 
 static int init_mmc_for_env(struct mmc *mmc)
 {
+	int mmc_env_devno = mmc_get_env_devno();
+	int mmc_env_partno = mmc_get_env_partno();
+
 	if (!mmc) {
 		puts("No MMC card found\n");
 		return -1;
@@ -87,30 +98,23 @@ static int init_mmc_for_env(struct mmc *mmc)
 		return -1;
 	}
 
-#ifdef CONFIG_SYS_MMC_ENV_PART
-	if (CONFIG_SYS_MMC_ENV_PART != mmc->part_num) {
-		int mmc_env_devno = mmc_get_env_devno();
-
-		if (mmc_switch_part(mmc_env_devno,
-				    CONFIG_SYS_MMC_ENV_PART)) {
+	if (mmc_env_partno != mmc->part_num) {
+		if (mmc_switch_part(mmc_env_devno, mmc_env_partno)) {
 			puts("MMC partition switch failed\n");
 			return -1;
 		}
 	}
-#endif
 
 	return 0;
 }
 
 static void fini_mmc_for_env(struct mmc *mmc)
 {
-#ifdef CONFIG_SYS_MMC_ENV_PART
 	int mmc_env_devno = mmc_get_env_devno();
+	int mmc_env_partno = mmc_get_env_partno();
 
-	if (CONFIG_SYS_MMC_ENV_PART != mmc->part_num)
-		mmc_switch_part(mmc_env_devno,
-				mmc->part_num);
-#endif
+	if (mmc_env_partno != mmc->part_num)
+		mmc_switch_part(mmc_env_devno, mmc->part_num);
 }
 
 #ifdef CONFIG_CMD_SAVEENV

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [U-Boot] [PATCH v2 2/2] env_mmc: default to 0 if CONFIG_SYS_MMC_ENV_DEV not defined
  2014-01-17  9:14 [U-Boot] [PATCH v2 1/2] env_mmc: make board configurable the partition for the environment Hector Palacios
@ 2014-01-17  9:14 ` Hector Palacios
  2014-01-17 10:51   ` Otavio Salvador
  2014-01-17 19:35   ` Stephen Warren
  2014-01-17 10:50 ` [U-Boot] [PATCH v2 1/2] env_mmc: make board configurable the partition for the environment Otavio Salvador
  2014-01-17 19:34 ` Stephen Warren
  2 siblings, 2 replies; 6+ messages in thread
From: Hector Palacios @ 2014-01-17  9:14 UTC (permalink / raw)
  To: u-boot

Since function mmc_get_env_devno is __weak and can be overridden by
board code, boards do not need to mandatory define
CONFIG_SYS_MMC_ENV_DEV.
If the constant is not defined, define it to 0 by default.

Signed-off-by: Hector Palacios <hector.palacios@digi.com>
---

Notes:
    Changes since v1:
    - Use default define if not set

 common/env_mmc.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/common/env_mmc.c b/common/env_mmc.c
index 570caf63aeae..c9df4c49e2b8 100644
--- a/common/env_mmc.c
+++ b/common/env_mmc.c
@@ -61,9 +61,14 @@ __weak int mmc_get_env_addr(struct mmc *mmc, int copy, u32 *env_addr)
 	return 0;
 }
 
+#if !defined(CONFIG_SYS_MMC_ENV_DEV)
+#define CONFIG_SYS_MMC_ENV_DEV 0
+#endif
+
 __weak int mmc_get_env_devno(void)
 {
 	return CONFIG_SYS_MMC_ENV_DEV;
+}
 
 #if !defined(CONFIG_SYS_MMC_ENV_PART)
 #define CONFIG_SYS_MMC_ENV_PART 0

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [U-Boot] [PATCH v2 1/2] env_mmc: make board configurable the partition for the environment
  2014-01-17  9:14 [U-Boot] [PATCH v2 1/2] env_mmc: make board configurable the partition for the environment Hector Palacios
  2014-01-17  9:14 ` [U-Boot] [PATCH v2 2/2] env_mmc: default to 0 if CONFIG_SYS_MMC_ENV_DEV not defined Hector Palacios
@ 2014-01-17 10:50 ` Otavio Salvador
  2014-01-17 19:34 ` Stephen Warren
  2 siblings, 0 replies; 6+ messages in thread
From: Otavio Salvador @ 2014-01-17 10:50 UTC (permalink / raw)
  To: u-boot

Hello Hector,

On Fri, Jan 17, 2014 at 7:14 AM, Hector Palacios
<hector.palacios@digi.com>wrote:

> This complements commit 9404a5fc7cb58 "env_mmc: allow environment to be
> in an eMMC partition" by allowing boards to accommodate the partition
> to use for the environment in different scenarios (similarly to what is
> done with the mmc dev number). Depending on the detected boot media,
> boards may decide to store the environment in a different partition.
>
> The __weak function also allows to remove some ifdefs from the code.
> If CONFIG_SYS_MMC_ENV_PART is not defined, partition 0 is assumed
> (default value for U-Boot when a partition is not provided).
>
> Signed-off-by: Hector Palacios <hector.palacios@digi.com>
> ---
>
> Notes:
>     Changes since v1:
>     - Use default define if not set
>
>  common/env_mmc.c | 28 ++++++++++++++++------------
>  1 file changed, 16 insertions(+), 12 deletions(-)
>
> diff --git a/common/env_mmc.c b/common/env_mmc.c
> index 78c2bc7a1f08..570caf63aeae 100644
> --- a/common/env_mmc.c
> +++ b/common/env_mmc.c
> @@ -64,6 +64,14 @@ __weak int mmc_get_env_addr(struct mmc *mmc, int copy,
> u32 *env_addr)
>  __weak int mmc_get_env_devno(void)
>  {
>         return CONFIG_SYS_MMC_ENV_DEV;
> +
> +#if !defined(CONFIG_SYS_MMC_ENV_PART)
> +#define CONFIG_SYS_MMC_ENV_PART 0
> +#endif
>

This should be in include/config_fallbacks.h

-- 
Otavio Salvador                             O.S. Systems
http://www.ossystems.com.br        http://code.ossystems.com.br
Mobile: +55 (53) 9981-7854            Mobile: +1 (347) 903-9750

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [U-Boot] [PATCH v2 2/2] env_mmc: default to 0 if CONFIG_SYS_MMC_ENV_DEV not defined
  2014-01-17  9:14 ` [U-Boot] [PATCH v2 2/2] env_mmc: default to 0 if CONFIG_SYS_MMC_ENV_DEV not defined Hector Palacios
@ 2014-01-17 10:51   ` Otavio Salvador
  2014-01-17 19:35   ` Stephen Warren
  1 sibling, 0 replies; 6+ messages in thread
From: Otavio Salvador @ 2014-01-17 10:51 UTC (permalink / raw)
  To: u-boot

Hello Hector,

On Fri, Jan 17, 2014 at 7:14 AM, Hector Palacios
<hector.palacios@digi.com>wrote:

> Since function mmc_get_env_devno is __weak and can be overridden by
> board code, boards do not need to mandatory define
> CONFIG_SYS_MMC_ENV_DEV.
> If the constant is not defined, define it to 0 by default.
>
> Signed-off-by: Hector Palacios <hector.palacios@digi.com>
> ---
>
> Notes:
>     Changes since v1:
>     - Use default define if not set
>
>  common/env_mmc.c | 5 +++++
>  1 file changed, 5 insertions(+)
>
> diff --git a/common/env_mmc.c b/common/env_mmc.c
> index 570caf63aeae..c9df4c49e2b8 100644
> --- a/common/env_mmc.c
> +++ b/common/env_mmc.c
> @@ -61,9 +61,14 @@ __weak int mmc_get_env_addr(struct mmc *mmc, int copy,
> u32 *env_addr)
>         return 0;
>  }
>
> +#if !defined(CONFIG_SYS_MMC_ENV_DEV)
> +#define CONFIG_SYS_MMC_ENV_DEV 0
> +#endif
> +
>

Please move this to include/config_fallbacks.h


>  __weak int mmc_get_env_devno(void)
>  {
>         return CONFIG_SYS_MMC_ENV_DEV;
> +}
>
>  #if !defined(CONFIG_SYS_MMC_ENV_PART)
>  #define CONFIG_SYS_MMC_ENV_PART 0
>



-- 
Otavio Salvador                             O.S. Systems
http://www.ossystems.com.br        http://code.ossystems.com.br
Mobile: +55 (53) 9981-7854            Mobile: +1 (347) 903-9750

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [U-Boot] [PATCH v2 1/2] env_mmc: make board configurable the partition for the environment
  2014-01-17  9:14 [U-Boot] [PATCH v2 1/2] env_mmc: make board configurable the partition for the environment Hector Palacios
  2014-01-17  9:14 ` [U-Boot] [PATCH v2 2/2] env_mmc: default to 0 if CONFIG_SYS_MMC_ENV_DEV not defined Hector Palacios
  2014-01-17 10:50 ` [U-Boot] [PATCH v2 1/2] env_mmc: make board configurable the partition for the environment Otavio Salvador
@ 2014-01-17 19:34 ` Stephen Warren
  2 siblings, 0 replies; 6+ messages in thread
From: Stephen Warren @ 2014-01-17 19:34 UTC (permalink / raw)
  To: u-boot

On 01/17/2014 02:14 AM, Hector Palacios wrote:
> This complements commit 9404a5fc7cb58 "env_mmc: allow environment to be
> in an eMMC partition" by allowing boards to accommodate the partition
> to use for the environment in different scenarios (similarly to what is
> done with the mmc dev number). Depending on the detected boot media,
> boards may decide to store the environment in a different partition.
> 
> The __weak function also allows to remove some ifdefs from the code.
> If CONFIG_SYS_MMC_ENV_PART is not defined, partition 0 is assumed
> (default value for U-Boot when a partition is not provided).

> diff --git a/common/env_mmc.c b/common/env_mmc.c

>  __weak int mmc_get_env_devno(void)
>  {
>  	return CONFIG_SYS_MMC_ENV_DEV;
> +
> +#if !defined(CONFIG_SYS_MMC_ENV_PART)

Isn't the trailing } for that function missing?

> +#define CONFIG_SYS_MMC_ENV_PART 0
> +#endif
> +
> +__weak int mmc_get_env_partno(void)
> +{
> +	return CONFIG_SYS_MMC_ENV_PART;
>  }

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [U-Boot] [PATCH v2 2/2] env_mmc: default to 0 if CONFIG_SYS_MMC_ENV_DEV not defined
  2014-01-17  9:14 ` [U-Boot] [PATCH v2 2/2] env_mmc: default to 0 if CONFIG_SYS_MMC_ENV_DEV not defined Hector Palacios
  2014-01-17 10:51   ` Otavio Salvador
@ 2014-01-17 19:35   ` Stephen Warren
  1 sibling, 0 replies; 6+ messages in thread
From: Stephen Warren @ 2014-01-17 19:35 UTC (permalink / raw)
  To: u-boot

On 01/17/2014 02:14 AM, Hector Palacios wrote:
> Since function mmc_get_env_devno is __weak and can be overridden by
> board code, boards do not need to mandatory define
> CONFIG_SYS_MMC_ENV_DEV.
> If the constant is not defined, define it to 0 by default.

> diff --git a/common/env_mmc.c b/common/env_mmc.c

> +#if !defined(CONFIG_SYS_MMC_ENV_DEV)
> +#define CONFIG_SYS_MMC_ENV_DEV 0
> +#endif
> +
>  __weak int mmc_get_env_devno(void)
>  {
>  	return CONFIG_SYS_MMC_ENV_DEV;
> +}

Oh, I guess your fixup got squashed into the wrong patch?

Aside from that issue, and those Otavio raised, the series,
Reviewed-by: Stephen Warren <swarren@nvidia.com>

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2014-01-17 19:35 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-01-17  9:14 [U-Boot] [PATCH v2 1/2] env_mmc: make board configurable the partition for the environment Hector Palacios
2014-01-17  9:14 ` [U-Boot] [PATCH v2 2/2] env_mmc: default to 0 if CONFIG_SYS_MMC_ENV_DEV not defined Hector Palacios
2014-01-17 10:51   ` Otavio Salvador
2014-01-17 19:35   ` Stephen Warren
2014-01-17 10:50 ` [U-Boot] [PATCH v2 1/2] env_mmc: make board configurable the partition for the environment Otavio Salvador
2014-01-17 19:34 ` Stephen Warren

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.