summaryrefslogtreecommitdiff
path: root/env/nand.c
diff options
context:
space:
mode:
authorYaniv Levinsky <yaniv.levinsky@compulab.co.il>2018-06-24 19:16:57 +0300
committerTom Rini <trini@konsulko.com>2018-07-19 16:17:58 -0400
commitc5d548a9f881b2268f1d81dab9cd329ae336607e (patch)
tree5a0e567d718a3d1816ab6ce8145be83067bca46b /env/nand.c
parent5a04264ecf5f0f853f2d562b4c5efb139d3d4a9d (diff)
downloadu-boot-c5d548a9f881b2268f1d81dab9cd329ae336607e.tar.gz
u-boot-c5d548a9f881b2268f1d81dab9cd329ae336607e.tar.bz2
u-boot-c5d548a9f881b2268f1d81dab9cd329ae336607e.zip
env: common: accept flags on reset to default env
The function set_default_env() sets the hashtable flags for import_r(). Formally set_default_env() doesn't accept flags from its callers. In practice the caller can (un)set the H_INTERACTIVE flag, but it has to be done using the first character of the function's string argument. Other flags like H_FORCE can't be set by the caller. Change the function to accept flags argument. The benefits are: 1. The caller will have to explicitly set the H_INTERACTIVE flag, instead of un-setting it using a special char in a string. 2. Add the ability to propagate flags from the caller to himport(), especially the H_FORCE flag from do_env_default() in nvedit.c that currently gets ignored for "env default -a -f" commands. 3. Flags and messages will not be coupled together. A caller will be able to set flags without passing a string and vice versa. Please note: The propagation of H_FORCE from do_env_default() does not introduce any functional changes, because currently himport_r() is set to destroy the old environment regardless if H_FORCE flag is set or not. More changes are needed to utilize the propagation of H_FORCE. Signed-off-by: Yaniv Levinsky <yaniv.levinsky@compulab.co.il> Acked-by: Igor Grinberg <grinberg@compulab.co.il>
Diffstat (limited to 'env/nand.c')
-rw-r--r--env/nand.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/env/nand.c b/env/nand.c
index aecf445c21..3698e68957 100644
--- a/env/nand.c
+++ b/env/nand.c
@@ -327,7 +327,7 @@ static int env_nand_load(void)
tmp_env2 = (env_t *)malloc(CONFIG_ENV_SIZE);
if (tmp_env1 == NULL || tmp_env2 == NULL) {
puts("Can't allocate buffers for environment\n");
- set_default_env("!malloc() failed");
+ set_default_env("malloc() failed", 0);
ret = -EIO;
goto done;
}
@@ -366,14 +366,14 @@ static int env_nand_load(void)
if (mtd && !get_nand_env_oob(mtd, &nand_env_oob_offset)) {
printf("Found Environment offset in OOB..\n");
} else {
- set_default_env("!no env offset in OOB");
+ set_default_env("no env offset in OOB", 0);
return;
}
#endif
ret = readenv(CONFIG_ENV_OFFSET, (u_char *)buf);
if (ret) {
- set_default_env("!readenv() failed");
+ set_default_env("readenv() failed", 0);
return -EIO;
}