[U-Boot] [PATCH] env_nand: use nand_spl_load_image for readenv if SPL

Tim Harvey
2015-05-14T18:48:04Z

The readenv() implementation of env_nand uses the mtd layer which is
unnecessary overhead in SPL when we already have a nand_spl_load_image()
function that doesn't need it. Using this instead eliminates the need
to provide a mtd_read for SPL env as well as reduces code (4KB savings in IMX6
SPL).

Signed-off-by: Tim Harvey <tharvey@gateworks.com>
---
common/env_nand.c | 7 +++++++
1 file changed, 7 insertions(+)

diff --git a/common/env_nand.c b/common/env_nand.c
index 7fc7558..bab89fd 100644
--- a/common/env_nand.c
+++ b/common/env_nand.c
@@ -260,6 +260,12 @@ int saveenv(void)
}
#endif /* CMD_SAVEENV */

+#if defined(CONFIG_SPL_BUILD)
+static int readenv(size_t offset, u_char *buf)
+{
+ return nand_spl_load_image(offset, CONFIG_ENV_SIZE, buf);
+}
+#else
static int readenv(size_t offset, u_char *buf)
{
size_t end = offset + CONFIG_ENV_RANGE;
@@ -295,6 +301,7 @@ static int readenv(size_t offset, u_char *buf)

return 0;
}
+#endif /* #if defined(CONFIG_SPL_BUILD) */

#ifdef CONFIG_ENV_OFFSET_OOB
int get_nand_env_oob(nand_info_t *nand, unsigned long *result)
--
1.9.1