If the config file cannot be opened currently one gets an error even though the build in names/sizes are probably ok. By setting the default values first and only exit if there is a read error and not when the config file can be opened the program will try the default settings.
In order to detect that the config file open fails get_config returns -2 to signal this; all other errors return -1 Signed-off-by: Frans Meulenbroeks <fransmeulenbro...@gmail.com> --- tools/env/fw_env.c | 18 +++++++++--------- 1 files changed, 9 insertions(+), 9 deletions(-) diff --git a/tools/env/fw_env.c b/tools/env/fw_env.c index 996682e..992835f 100644 --- a/tools/env/fw_env.c +++ b/tools/env/fw_env.c @@ -1225,14 +1225,6 @@ static int parse_config () { struct stat st; -#if defined(CONFIG_FILE) - /* Fills in DEVNAME(), ENVSIZE(), DEVESIZE(). Or don't. */ - if (get_config (CONFIG_FILE)) { - fprintf (stderr, - "Cannot parse config file: %s\n", strerror (errno)); - return -1; - } -#else strcpy (DEVNAME (0), DEVICE1_NAME); DEVOFFSET (0) = DEVICE1_OFFSET; ENVSIZE (0) = ENV1_SIZE; @@ -1261,6 +1253,14 @@ static int parse_config () #endif HaveRedundEnv = 1; #endif + +#if defined(CONFIG_FILE) + /* Fills in DEVNAME(), ENVSIZE(), DEVESIZE(). Or don't. */ + if (get_config (CONFIG_FILE) == -1) { + fprintf (stderr, + "Cannot parse config file: %s\n", strerror (errno)); + return -1; + } #endif if (stat (DEVNAME (0), &st)) { fprintf (stderr, @@ -1288,7 +1288,7 @@ static int get_config (char *fname) fp = fopen (fname, "r"); if (fp == NULL) - return -1; + return -2; while (i < 2 && fgets (dump, sizeof (dump), fp)) { /* Skip incomplete conversions and comment strings */ -- 1.7.8.1 _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot