[PATCH v2] commands: of_dump switch to get fixed devictree
Jan Weitzel
j.weitzel at phytec.de
Thu Aug 21 04:25:06 PDT 2014
Am 04.08.2014 um 21:21 schrieb Sascha Hauer:
> Hi Jan,
>
> On Fri, Aug 01, 2014 at 09:01:05AM +0200, Jan Weitzel wrote:
>> Add a switch to get the devicetree processed by the registered fixups.
>> This is also whats the kernel gets.
> This is a very useful option.
>
>> Signed-off-by: Jan Weitzel <j.weitzel at phytec.de>
>> ---
>> v2: fix CMD OPS
>>
>> commands/of_dump.c | 12 ++++++++++--
>> 1 files changed, 10 insertions(+), 2 deletions(-)
>>
>> diff --git a/commands/of_dump.c b/commands/of_dump.c
>> index cafde07..1b487c7 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;
>> }
>> @@ -77,6 +81,9 @@ static int do_of_dump(int argc, char *argv[])
>> root = of_get_root_node();
>> }
>>
>> + if (fix)
>> + of_get_fixed_tree(root);
> of_get_fixed_tree() returns an allocated flat device tree. You should
> free it.
>
> As an alternative you could call of_fix_tree() instead.
>
> Also I'm not sure about the API. of_fix_tree manipulates the internal
> tree, so when you use of_dump -F once you'll always get the fixed tree
> afterwards, even when called without -F. This might be confusing.
I'll post a patch that use of_flatten_dtb / of_unflatten_dtb to create a copy of the internal devicetree.
> We have the same problem elsewhere in the tree though, right now I'm
> unsure what to do about it. And then again, I'm on holiday, so I won't
> do anything about it this month ;)
Have a nice holday :)
Jan
>
> Sascha
>
>
More information about the barebox
mailing list