[U-Boot] [PATCH v2 2/2] fdt_support: Don't panic if stdout alias is missing
Scott Wood
scottwood at freescale.com
Wed Sep 2 05:48:08 CEST 2015
Currently, using fdt_fixup_stdout() on a device tree that is missing
the relevant alias results in this:
WARNING: could not set linux,stdout-path FDT_ERR_NOTFOUND.
ERROR: /chosen node create failed
- must RESET the board to recover.
FDT creation failed! hanging...### ERROR ### Please RESET the board ###
There is no reason for this to be a fatal error rather than a warning,
and removing this allows for a smooth transition on a platform where
the device tree currently lacks the correct aliases but will have them
in the future.
Signed-off-by: Scott Wood <scottwood at freescale.com>
Cc: Kumar Gala <galak at kernel.crashing.org>
Cc: Simon Glass <sjg at chromium.org>
---
v2: Only continue booting if the problem was a missing alias, not
the inability to write to the device tree.
---
common/fdt_support.c | 11 ++++++++---
1 file changed, 8 insertions(+), 3 deletions(-)
diff --git a/common/fdt_support.c b/common/fdt_support.c
index f86365e..a7ff2df 100644
--- a/common/fdt_support.c
+++ b/common/fdt_support.c
@@ -158,25 +158,30 @@ static int fdt_fixup_stdout(void *fdt, int chosenoff)
aliasoff = fdt_path_offset(fdt, "/aliases");
if (aliasoff < 0) {
err = aliasoff;
- goto error;
+ goto noalias;
}
path = fdt_getprop(fdt, aliasoff, sername, &len);
if (!path) {
err = len;
- goto error;
+ goto noalias;
}
/* fdt_setprop may break "path" so we copy it to tmp buffer */
memcpy(tmp, path, len);
err = fdt_setprop(fdt, chosenoff, "linux,stdout-path", tmp, len);
-error:
if (err < 0)
printf("WARNING: could not set linux,stdout-path %s.\n",
fdt_strerror(err));
return err;
+
+noalias:
+ printf("WARNING: %s: could not read %s alias: %s\n",
+ __func__, sername, fdt_strerror(err));
+
+ return 0;
}
#else
static int fdt_fixup_stdout(void *fdt, int chosenoff)
--
2.1.4
More information about the U-Boot
mailing list