提交 ba24e2ac 编写于 作者: G Gerald Van Baren

Improve error messages, more informative.

Print more than the raw libfdt error message strings.  This is especially
useful for cluing in the user when the bootm command aborts due to
blob problems.
Signed-off-by: NGerald Van Baren <vanbaren@cideas.com>
上级 8096b3b8
...@@ -67,7 +67,7 @@ int fdt_chosen(void *fdt, ulong initrd_start, ulong initrd_end, int force) ...@@ -67,7 +67,7 @@ int fdt_chosen(void *fdt, ulong initrd_start, ulong initrd_end, int force)
return err; return err;
} }
if (used >= total) { if (used >= total) {
printf("fdt_chosen: no room in the reserved map (%d of %d)\n", printf("WARNING fdt_chosen: no room in the reserved map (%d of %d)\n",
used, total); used, total);
return -1; return -1;
} }
...@@ -110,7 +110,7 @@ int fdt_chosen(void *fdt, ulong initrd_start, ulong initrd_end, int force) ...@@ -110,7 +110,7 @@ int fdt_chosen(void *fdt, ulong initrd_start, ulong initrd_end, int force)
*/ */
nodeoffset = fdt_add_subnode(fdt, 0, "chosen"); nodeoffset = fdt_add_subnode(fdt, 0, "chosen");
if (nodeoffset < 0) { if (nodeoffset < 0) {
printf("libfdt: %s\n", fdt_strerror(nodeoffset)); printf("WARNING fdt_chosen: could not create the \"/chosen node\" (libfdt error %s).\n", fdt_strerror(nodeoffset));
return nodeoffset; return nodeoffset;
} }
} }
...@@ -122,22 +122,22 @@ int fdt_chosen(void *fdt, ulong initrd_start, ulong initrd_end, int force) ...@@ -122,22 +122,22 @@ int fdt_chosen(void *fdt, ulong initrd_start, ulong initrd_end, int force)
if (str != NULL) { if (str != NULL) {
err = fdt_setprop(fdt, nodeoffset, "bootargs", str, strlen(str)+1); err = fdt_setprop(fdt, nodeoffset, "bootargs", str, strlen(str)+1);
if (err < 0) if (err < 0)
printf("libfdt: %s\n", fdt_strerror(err)); printf("WARNING fdt_chosen: could not set \"bootargs\" (libfdt error %s).\n", fdt_strerror(err));
} }
if (initrd_start && initrd_end) { if (initrd_start && initrd_end) {
tmp = __cpu_to_be32(initrd_start); tmp = __cpu_to_be32(initrd_start);
err = fdt_setprop(fdt, nodeoffset, "linux,initrd-start", &tmp, sizeof(tmp)); err = fdt_setprop(fdt, nodeoffset, "linux,initrd-start", &tmp, sizeof(tmp));
if (err < 0) if (err < 0)
printf("libfdt: %s\n", fdt_strerror(err)); printf("WARNING fdt_chosen: could not set \"linux,initrd-start\" (libfdt error %s).\n", fdt_strerror(err));
tmp = __cpu_to_be32(initrd_end); tmp = __cpu_to_be32(initrd_end);
err = fdt_setprop(fdt, nodeoffset, "linux,initrd-end", &tmp, sizeof(tmp)); err = fdt_setprop(fdt, nodeoffset, "linux,initrd-end", &tmp, sizeof(tmp));
if (err < 0) if (err < 0)
printf("libfdt: %s\n", fdt_strerror(err)); printf("WARNING fdt_chosen: could not set \"linux,initrd-end\" (libfdt error %s).\n", fdt_strerror(err));
} }
#ifdef OF_STDOUT_PATH #ifdef OF_STDOUT_PATH
err = fdt_setprop(fdt, nodeoffset, "linux,stdout-path", OF_STDOUT_PATH, strlen(OF_STDOUT_PATH)+1); err = fdt_setprop(fdt, nodeoffset, "linux,stdout-path", OF_STDOUT_PATH, strlen(OF_STDOUT_PATH)+1);
if (err < 0) if (err < 0)
printf("libfdt: %s\n", fdt_strerror(err)); printf("WARNING fdt_chosen: could not set \"linux,stdout-path\" (libfdt error %s).\n", fdt_strerror(err));
#endif #endif
nodeoffset = fdt_path_offset (fdt, "/cpus"); nodeoffset = fdt_path_offset (fdt, "/cpus");
...@@ -145,7 +145,7 @@ int fdt_chosen(void *fdt, ulong initrd_start, ulong initrd_end, int force) ...@@ -145,7 +145,7 @@ int fdt_chosen(void *fdt, ulong initrd_start, ulong initrd_end, int force)
clock = cpu_to_be32(bd->bi_intfreq); clock = cpu_to_be32(bd->bi_intfreq);
err = fdt_setprop(fdt, nodeoffset, "clock-frequency", &clock, 4); err = fdt_setprop(fdt, nodeoffset, "clock-frequency", &clock, 4);
if (err < 0) if (err < 0)
printf("libfdt: %s\n", fdt_strerror(err)); printf("WARNING fdt_chosen: could not set \"clock-frequency\" (libfdt error %s).\n", fdt_strerror(err));
} }
#ifdef OF_TBCLK #ifdef OF_TBCLK
nodeoffset = fdt_path_offset (fdt, "/cpus/" OF_CPU "/timebase-frequency"); nodeoffset = fdt_path_offset (fdt, "/cpus/" OF_CPU "/timebase-frequency");
...@@ -153,7 +153,7 @@ int fdt_chosen(void *fdt, ulong initrd_start, ulong initrd_end, int force) ...@@ -153,7 +153,7 @@ int fdt_chosen(void *fdt, ulong initrd_start, ulong initrd_end, int force)
clock = cpu_to_be32(OF_TBCLK); clock = cpu_to_be32(OF_TBCLK);
err = fdt_setprop(fdt, nodeoffset, "clock-frequency", &clock, 4); err = fdt_setprop(fdt, nodeoffset, "clock-frequency", &clock, 4);
if (err < 0) if (err < 0)
printf("libfdt: %s\n", fdt_strerror(err)); printf("WARNING fdt_chosen: could not set \"clock-frequency\" (libfdt error %s).\n", fdt_strerror(err));
} }
#endif #endif
return err; return err;
...@@ -198,7 +198,7 @@ int fdt_env(void *fdt) ...@@ -198,7 +198,7 @@ int fdt_env(void *fdt)
*/ */
nodeoffset = fdt_add_subnode(fdt, 0, "u-boot-env"); nodeoffset = fdt_add_subnode(fdt, 0, "u-boot-env");
if (nodeoffset < 0) { if (nodeoffset < 0) {
printf("libfdt: %s\n", fdt_strerror(nodeoffset)); printf("WARNING fdt_env: could not create the \"/u-boot-env node\" (libfdt error %s).\n", fdt_strerror(nodeoffset));
return nodeoffset; return nodeoffset;
} }
...@@ -226,7 +226,7 @@ int fdt_env(void *fdt) ...@@ -226,7 +226,7 @@ int fdt_env(void *fdt)
continue; continue;
err = fdt_setprop(fdt, nodeoffset, lval, rval, strlen(rval)+1); err = fdt_setprop(fdt, nodeoffset, lval, rval, strlen(rval)+1);
if (err < 0) { if (err < 0) {
printf("libfdt: %s\n", fdt_strerror(err)); printf("WARNING fdt_env: could not set \"%s\" (libfdt error %s).\n", lval, fdt_strerror(err));
return err; return err;
} }
} }
...@@ -318,6 +318,7 @@ int fdt_bd_t(void *fdt) ...@@ -318,6 +318,7 @@ int fdt_bd_t(void *fdt)
*/ */
nodeoffset = fdt_add_subnode(fdt, 0, "bd_t"); nodeoffset = fdt_add_subnode(fdt, 0, "bd_t");
if (nodeoffset < 0) { if (nodeoffset < 0) {
printf("WARNING fdt_bd_t: could not create the \"/bd_t node\" (libfdt error %s).\n", fdt_strerror(nodeoffset));
printf("libfdt: %s\n", fdt_strerror(nodeoffset)); printf("libfdt: %s\n", fdt_strerror(nodeoffset));
return nodeoffset; return nodeoffset;
} }
...@@ -328,17 +329,17 @@ int fdt_bd_t(void *fdt) ...@@ -328,17 +329,17 @@ int fdt_bd_t(void *fdt)
tmp = cpu_to_be32(getenv("bootargs")); tmp = cpu_to_be32(getenv("bootargs"));
err = fdt_setprop(fdt, nodeoffset, bd_map[i].name, &tmp, sizeof(tmp)); err = fdt_setprop(fdt, nodeoffset, bd_map[i].name, &tmp, sizeof(tmp));
if (err < 0) if (err < 0)
printf("libfdt: %s\n", fdt_strerror(err)); printf("WARNING fdt_bd_t: could not set \"%s\" (libfdt error %s).\n", bd_map[i].name, fdt_strerror(err));
} }
/* /*
* Add a couple of oddball entries... * Add a couple of oddball entries...
*/ */
err = fdt_setprop(fdt, nodeoffset, "enetaddr", &bd->bi_enetaddr, 6); err = fdt_setprop(fdt, nodeoffset, "enetaddr", &bd->bi_enetaddr, 6);
if (err < 0) if (err < 0)
printf("libfdt: %s\n", fdt_strerror(err)); printf("WARNING fdt_bd_t: could not set \"enetaddr\" (libfdt error %s).\n", fdt_strerror(err));
err = fdt_setprop(fdt, nodeoffset, "ethspeed", &bd->bi_ethspeed, 4); err = fdt_setprop(fdt, nodeoffset, "ethspeed", &bd->bi_ethspeed, 4);
if (err < 0) if (err < 0)
printf("libfdt: %s\n", fdt_strerror(err)); printf("WARNING fdt_bd_t: could not set \"ethspeed\" (libfdt error %s).\n", fdt_strerror(err));
return 0; return 0;
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册