[PATCH v3] commands: of_dump switch to get fixed devictree
Jan Weitzel
j.weitzel at phytec.de
Mon Sep 1 06:28:58 PDT 2014
Am 01.09.2014 um 12:38 schrieb Sascha Hauer:
> On Thu, Aug 21, 2014 at 01:26:19PM +0200, Jan Weitzel wrote:
>> Add a switch to get the devicetree processed by the registered fixups.
>> This is also whats the kernel gets.
>>
>> Signed-off-by: Jan Weitzel <j.weitzel at phytec.de>
>> ---
>> v3: create a copy of the internal devicetree before use of_fix_tree
>>
>> commands/of_dump.c | 31 +++++++++++++++++++++++++++++--
>> 1 files changed, 29 insertions(+), 2 deletions(-)
>>
>> diff --git a/commands/of_dump.c b/commands/of_dump.c
>> index cafde07..f82f0fd 100644
>> --- a/commands/of_dump.c
>> +++ b/commands/of_dump.c
>> @@ -34,16 +34,20 @@ static int do_of_dump(int argc, char *argv[])
>> {
>> int opt;
>> int ret;
>> + int fix = 0;
>> struct device_node *root = NULL, *node, *of_free = NULL;
>> char *dtbfile = NULL;
>> size_t size;
>> const char *nodename;
>>
>> - while ((opt = getopt(argc, argv, "f:")) > 0) {
>> + while ((opt = getopt(argc, argv, "Ff:")) > 0) {
>> switch (opt) {
>> case 'f':
>> dtbfile = optarg;
>> break;
>> + case 'F':
>> + fix = 1;
>> + break;
>> default:
>> return COMMAND_ERROR_USAGE;
>> }
>> @@ -75,6 +79,28 @@ static int do_of_dump(int argc, char *argv[])
>> of_free = root;
>> } else {
>> root = of_get_root_node();
>> +
>> + if (fix) {
>> + /* create a copy of internal devicetree */
>> + void *fdt;
>> + fdt = of_flatten_dtb(root);
>> + root = of_unflatten_dtb(fdt);
> That's really a creative way to make a copy of the device tree ;)
And it use known good functions ;)
Jan
>
> Ok, I'll close both eyes while applying it.
>
> Sascha
>
More information about the barebox
mailing list