summaryrefslogtreecommitdiff
path: root/common/env_common.c
diff options
context:
space:
mode:
authorEric Sun <jian.sun@freescale.com>2012-02-20 15:24:44 +0800
committerLily Zhang <r58066@freescale.com>2012-02-27 13:01:09 +0800
commit39320e8b20031f7a5f670cf5bd8eeb1a0954eb98 (patch)
treec0c7aaffd5415c67e63d0e757817aa27763fdced /common/env_common.c
parent1f94eca51ded562db2aae2d1d75e3c7a2a1ba71c (diff)
downloadu-boot-imx-39320e8b20031f7a5f670cf5bd8eeb1a0954eb98.zip
u-boot-imx-39320e8b20031f7a5f670cf5bd8eeb1a0954eb98.tar.gz
u-boot-imx-39320e8b20031f7a5f670cf5bd8eeb1a0954eb98.tar.bz2
ENGR00174841 [U-Boot]Add a command to erase any pre-saved environment
A "destroyenv" command is provided to erase any pre-save environment in the boot storage. The command simply add 1 to the CRC section and write it back to the storage. Per the logic of U-Boot, this means after a reset, the software will recognize the stored environment settings as "damaged" and turn to use the default one, which is defined in "default_environment" With this command, platform bring up owner can maintain a "ready-to-use" environment settings in software which others can use very conviniently. U-boot users can also use it to do a environment restore if they want. ----------------------------------- Usage Example: > destroyenv invalidate the CRC write invalidate enviroment data to storage Erasing SPI flash...Erasing SPI NOR flash 0xc0000 [0x2000 bytes] ..SUCCESS Writing to SPI flash...Writing SPI NOR flash 0xc0000 [0x2000 bytes] <- ram 0x276009b8 SUCCESS done > ----------------------------------- Signed-off-by: Eric Sun <jian.sun@freescale.com>
Diffstat (limited to 'common/env_common.c')
-rw-r--r--common/env_common.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/common/env_common.c b/common/env_common.c
index 21ea543..2f7fae6 100644
--- a/common/env_common.c
+++ b/common/env_common.c
@@ -4,7 +4,9 @@
*
* (C) Copyright 2001 Sysgo Real-Time Solutions, GmbH <www.elinos.com>
* Andreas Heppel <aheppel@sysgo.de>
-
+ *
+ * Copyright (C) 2012 Freescale Semiconductor, Inc.
+ *
* See file CREDITS for list of people who contributed to this
* project.
*
@@ -153,6 +155,11 @@ void env_crc_update (void)
env_ptr->crc = crc32(0, env_ptr->data, ENV_SIZE);
}
+void env_crc_destroy(void)
+{
+ env_ptr->crc += 1;
+}
+
static uchar env_get_char_init (int index)
{
uchar c;