mirror of
https://github.com/dgibson/dtc.git
synced 2025-10-13 16:27:39 -04:00
fdtoverlay: provide better error message for missing /__symbols__
This was added because trying to apply overlay on dtb without knowing a lot about the subject can be frustrating with strange error messages. Before this, it will tell you: `Failed to apply 'overlay.dtbo': FDT_ERR_BADOFFSET` This message is similar to what's shown in `u-boot` when trying to apply overlay Signed-off-by: Amjad Alsharafi <amjadsharafi10@gmail.com> Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
This commit is contained in:
parent
d1e2384185
commit
838f11e830
1 changed files with 8 additions and 0 deletions
|
@ -46,6 +46,7 @@ static void *apply_one(char *base, const char *overlay, size_t *buf_len,
|
|||
char *tmp = NULL;
|
||||
char *tmpo;
|
||||
int ret;
|
||||
bool has_symbols;
|
||||
|
||||
/*
|
||||
* We take copies first, because a failed apply can trash
|
||||
|
@ -62,6 +63,8 @@ static void *apply_one(char *base, const char *overlay, size_t *buf_len,
|
|||
fdt_strerror(ret));
|
||||
goto fail;
|
||||
}
|
||||
ret = fdt_path_offset(tmp, "/__symbols__");
|
||||
has_symbols = ret >= 0;
|
||||
|
||||
memcpy(tmpo, overlay, fdt_totalsize(overlay));
|
||||
|
||||
|
@ -74,6 +77,11 @@ static void *apply_one(char *base, const char *overlay, size_t *buf_len,
|
|||
if (ret) {
|
||||
fprintf(stderr, "\nFailed to apply '%s': %s\n",
|
||||
name, fdt_strerror(ret));
|
||||
if (!has_symbols) {
|
||||
fprintf(stderr,
|
||||
"base blob does not have a '/__symbols__' node, "
|
||||
"make sure you have compiled the base blob with '-@' option\n");
|
||||
}
|
||||
goto fail;
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue