
Hi Alex,
On Tue, Mar 27, 2018 at 08:43:26AM +0000, Alex Kiernan wrote:
When importing variables allow size to be elided using '-' and then support a list of variables which restricts what will be picked during the import.
Signed-off-by: Alex Kiernan alex.kiernan@gmail.com
I'm pretty sure it's the same goal as this patch[1] I suggested. Could you answer in the thread telling you need it as well so that we could get it merged or at least reviewed?
Thanks, Quentin
[1] http://patchwork.ozlabs.org/patch/855542/
cmd/nvedit.c | 26 +++++++++++++++++++------- 1 file changed, 19 insertions(+), 7 deletions(-)
diff --git a/cmd/nvedit.c b/cmd/nvedit.c index 4cb25b8..486bb24 100644 --- a/cmd/nvedit.c +++ b/cmd/nvedit.c @@ -972,7 +972,7 @@ sep_err:
#ifdef CONFIG_CMD_IMPORTENV /*
- env import [-d] [-t [-r] | -b | -c] addr [size]
- env import [-d] [-t [-r] | -b | -c] addr [size] [var ...]
- -d: delete existing environment before importing;
otherwise overwrite / append to existing definitions
- -t: assume text format; either "size" must be given or the
@@ -985,7 +985,10 @@ sep_err:
- -c: assume checksum protected environment format
- addr: memory address to read from
- size: length of input data; if missing, proper '\0'
termination is mandatory
termination is mandatory. If not required and passing
variables to import use '-'
- var...: List of variable names that get imported. Without arguments,
*/
all variables are imported
static int do_env_import(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) @@ -1043,11 +1046,20 @@ static int do_env_import(cmd_tbl_t *cmdtp, int flag, crlf_is_lf = 0;
addr = simple_strtoul(argv[0], NULL, 16);
- --argc;
- ++argv; ptr = map_sysmem(addr, 0);
- if (argc == 2) {
size = simple_strtoul(argv[1], NULL, 16);
- } else if (argc == 1 && chk) {
- if (argc >= 1 && !strcmp(argv[0], "-")) {
--argc;
++argv;
- }
- if (argc >= 1) {
size = simple_strtoul(argv[0], NULL, 16);
--argc;
++argv;
- } else if (argc == 0 && chk) { puts("## Error: external checksum format must pass size\n"); return CMD_RET_FAILURE; } else {
@@ -1084,7 +1096,7 @@ static int do_env_import(cmd_tbl_t *cmdtp, int flag, }
if (himport_r(&env_htab, ptr, size, sep, del ? 0 : H_NOCLEAR,
crlf_is_lf, 0, NULL) == 0) {
pr_err("Environment import failed: errno = %d\n", errno); return 1; }crlf_is_lf, argc, argc ? argv : NULL) == 0) {
@@ -1213,7 +1225,7 @@ static char env_help_text[] = #endif #endif #if defined(CONFIG_CMD_IMPORTENV)
- "env import [-d] [-t [-r] | -b | -c] addr [size] - import environment\n"
- "env import [-d] [-t [-r] | -b | -c] addr [size] [var ...] - import environment\n"
#endif "env print [-a | name ...] - print environment\n"
#if defined(CONFIG_CMD_RUN)
2.7.4
U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot