From 9884f44cab5d1ce944b1dc087c9bb8db0efb5160 Mon Sep 17 00:00:00 2001 From: Michael Heimpold Date: Tue, 27 Oct 2015 22:34:49 +0100 Subject: tools/env: allow config filename to be passed via command line argument When for example generating/manipulating SD card/eMMC images which contain U-Boot and its environment(s), it is handy to use a given configuration file instead of the compiled-in default one. And since the default configuration file is expected under /etc it's hard for an usual linux user account without special permissions to use fw_printenv/fw_setenv for this purpose. So allow to pass an optional filename via a new '-c' command line argument. Example: $ ln -s fw_printenv tools/env/fw_setenv $ cat fw_env.config test.img 0x20000 0x20000 test.img 0x40000 0x20000 $ tools/env/fw_printenv -c ./fw_env.config fdt_file fdt_file=imx28-duckbill.dtb $ tools/env/fw_setenv -c ./fw_env.config fdt_file imx28-duckbill-spi.dtb $ tools/env/fw_printenv -c ./fw_env.config fdt_file fdt_file=imx28-duckbill-spi.dtb Signed-off-by: Michael Heimpold --- tools/env/fw_env_main.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'tools/env/fw_env_main.c') diff --git a/tools/env/fw_env_main.c b/tools/env/fw_env_main.c index ce50d58..234c061 100644 --- a/tools/env/fw_env_main.c +++ b/tools/env/fw_env_main.c @@ -50,8 +50,13 @@ void usage(void) fprintf(stderr, "fw_printenv/fw_setenv, " "a command line interface to U-Boot environment\n\n" +#ifndef CONFIG_FILE "usage:\tfw_printenv [-a key] [-n] [variable name]\n" "\tfw_setenv [-a key] [variable name] [variable value]\n" +#else + "usage:\tfw_printenv [-c /my/fw_env.config] [-a key] [-n] [variable name]\n" + "\tfw_setenv [-c /my/fw_env.config] [-a key] [variable name] [variable value]\n" +#endif "\tfw_setenv -s [ file ]\n" "\tfw_setenv -s - < [ file ]\n\n" "The file passed as argument contains only pairs " @@ -98,12 +103,15 @@ int main(int argc, char *argv[]) cmdname = p + 1; } - while ((c = getopt_long (argc, argv, "a:ns:h", + while ((c = getopt_long (argc, argv, "a:c:ns:h", long_options, NULL)) != EOF) { switch (c) { case 'a': /* AES key, handled later */ break; + case 'c': + /* handled later */ + break; case 'n': /* handled in fw_printenv */ break; -- cgit v1.1