[PATCH v3 1/3] devinfo: do not dump the device node for the root node

Lucas Stach l.stach at pengutronix.de
Thu Jul 16 05:40:46 EDT 2020


Am Donnerstag, den 16.07.2020, 08:46 +0200 schrieb Oleksij Rempel:
> Calling the devinfo against a device which is linked to some devicetree
> node weill result a devictree dump of this node. For example:
> 
> barebox at Protonic PRTI6Q board:/ devinfo sound-spdif.of
> Bus: platform
> Device node: /sound-spdif
> sound-spdif {
>         compatible = "fsl,imx-audio-spdif";
>         model = "imx-spdif";
>         spdif-controller = <0x7a>;
>         spdif-in;
>         spdif-out;
> };
> 
> Calling same command on a device wich is linked to the root node of
> devicetree, for example "machine.of", will trigger a dump fo complete
> devicetree.

Taking a step back from the immediate issue with the root node: is it
even a good idea to dump the whole subtree of nodes in the devinfo?
Most likely someone using devinfo is only interested in the of_node of
the device and maybe some subnodes that don't have a device on their
own.

So wouldn't it make more sense to only dump the node of the device in
question and subnodes without a compatible? This way we could remove
the special case for the root node and still get some useful
information in devinfo, like the board compatible property.

Regards,
Lucas

>  Since the same functionality is provided by the "of_dump"
> command, it is better to limit devinfo on the root device. After this
> patch we would get following output:
> 
> barebox at Protonic PRTI6Q board:/ devinfo machine.of
> Driver: board-protonic-imx6
> Bus: platform
> Parameters:
>   boardid: 0 (type: uint32)
>   boardrev: 1 (type: uint32)
> 
> In this example, "boardid" and "boardrev" are variabled provided by this
> this specific board driver.
> 
> Signed-off-by: Oleksij Rempel <o.rempel at pengutronix.de>
> ---
>  commands/devinfo.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/commands/devinfo.c b/commands/devinfo.c
> index 81956b1cc0..018a7c4167 100644
> --- a/commands/devinfo.c
> +++ b/commands/devinfo.c
> @@ -99,7 +99,7 @@ static int do_devinfo(int argc, char *argv[])
>  			printf("\n");
>  		}
>  #ifdef CONFIG_OFDEVICE
> -		if (dev->device_node) {
> +		if (dev->device_node && dev->device_node != of_get_root_node()) {
>  			printf("Device node: %s\n", dev->device_node->full_name);
>  			of_print_nodes(dev->device_node, 0);
>  		}




More information about the barebox mailing list