Drop this send wrong version....

Regards
Ravi

-----Original Message-----
From: B, Ravi 
Sent: Wednesday, September 28, 2016 2:43 PM
To: u-boot@lists.denx.de
Cc: tr...@konsulko.com; s...@chromium.org; jh80.ch...@samsung.com; Vutla, 
Lokesh; B, Ravi
Subject: [PATCH] spl: saveenv: adding saveenv support in SPL

By default saveenv option is not supported for SPL. This patch enable the 
support for save environment variable for SPL build.

Enable save environment support in SPL after setenv. By default the saveenv 
option is not provided in SPL, but some boards need this support in 'Falcon' 
boot, where SPL need to boot from different images based on environment 
variable set by OS. For example OS may set "reboot_image" environment variable 
to "recovery" inorder to boot recovery image by SPL. The SPL read 
"reboot_image" and act accordingly and change the reboot_image to default mode 
using setenv and save the environemnt.

Signed-off-by: Ravi Babu <ravib...@ti.com>
Reviewed-by: Simon Glass <s...@chromium.org>
---
 common/spl/Kconfig        | 13 +++++++++++++
 drivers/mmc/Makefile      |  1 +
 drivers/mmc/mmc_private.h |  3 +--
 lib/Makefile              |  1 +
 lib/hashtable.c           |  2 +-
 5 files changed, 17 insertions(+), 3 deletions(-)

diff --git a/common/spl/Kconfig b/common/spl/Kconfig index 2a8ddbc..605cf66 
100644
--- a/common/spl/Kconfig
+++ b/common/spl/Kconfig
@@ -163,6 +163,19 @@ config SPL_ENV_SUPPORT
          starting U-Boot first. Enabling this option will make getenv()
          and setenv() available in SPL.
 
+config SPL_SAVEENV
+       bool "Support save environment"
+       depends on SPL && SPL_ENV_SUPPORT
+       help
+         Enable save environment support in SPL after setenv. By default
+         the saveenv option is not provided in SPL, but some boards need
+         this support in 'Falcon' boot, where SPL need to boot from
+         different images based on environment variable set by OS. For
+         example OS may set "reboot_image" environment variable to
+         "recovery" inorder to boot recovery image by SPL. The SPL read
+         "reboot_image" and act accordingly and change the reboot_image
+         to default mode using setenv and save the environemnt.
+
 config SPL_ETH_SUPPORT
        bool "Support Ethernet"
        depends on SPL_ENV_SUPPORT
diff --git a/drivers/mmc/Makefile b/drivers/mmc/Makefile index 18351fb..d850758 
100644
--- a/drivers/mmc/Makefile
+++ b/drivers/mmc/Makefile
@@ -60,6 +60,7 @@ obj-$(CONFIG_ROCKCHIP_SDHCI) += rockchip_sdhci.o
 
 ifdef CONFIG_SPL_BUILD
 obj-$(CONFIG_SPL_MMC_BOOT) += fsl_esdhc_spl.o
+obj-$(CONFIG_SPL_SAVEENV) += mmc_write.o
 else
 obj-$(CONFIG_GENERIC_MMC) += mmc_write.o  endif diff --git 
a/drivers/mmc/mmc_private.h b/drivers/mmc/mmc_private.h index 49ec022..e0c9849 
100644
--- a/drivers/mmc/mmc_private.h
+++ b/drivers/mmc/mmc_private.h
@@ -28,8 +28,7 @@ ulong mmc_bread(struct blk_desc *block_dev, lbaint_t start, 
lbaint_t blkcnt,
                void *dst);
 #endif
 
-#ifndef CONFIG_SPL_BUILD
-
+#if !(defined(CONFIG_SPL_BUILD) && !defined(CONFIG_SPL_SAVEENV))
 unsigned long mmc_berase(struct blk_desc *block_dev, lbaint_t start,
                         lbaint_t blkcnt);
 
diff --git a/lib/Makefile b/lib/Makefile index c81bfeb..e3383f4 100644
--- a/lib/Makefile
+++ b/lib/Makefile
@@ -47,6 +47,7 @@ obj-$(CONFIG_$(SPL_)RSA) += rsa/
 obj-$(CONFIG_$(SPL_)SHA1) += sha1.o
 obj-$(CONFIG_$(SPL_)SHA256) += sha256.o
 
+obj-$(CONFIG_SPL_SAVEENV) += qsort.o
 obj-$(CONFIG_$(SPL_)OF_LIBFDT) += libfdt/  ifneq 
($(CONFIG_SPL_BUILD)$(CONFIG_SPL_OF_PLATDATA),yy)
 obj-$(CONFIG_$(SPL_)OF_CONTROL) += fdtdec_common.o diff --git 
a/lib/hashtable.c b/lib/hashtable.c index 4e52b36..07c437c 100644
--- a/lib/hashtable.c
+++ b/lib/hashtable.c
@@ -477,11 +477,11 @@ int hdelete_r(const char *key, struct hsearch_data *htab, 
int flag)
        return 1;
 }
 
+#if !(defined(CONFIG_SPL_BUILD) && !defined(CONFIG_SPL_SAVEENV))
 /*
  * hexport()
  */
 
-#ifndef CONFIG_SPL_BUILD
 /*
  * Export the data stored in the hash table in linearized form.
  *
--
1.9.1

_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to