[U-Boot] [PATCH 01/10] dm: fdt: scan for devices under /firmware too
Michal Simek
michal.simek at xilinx.com
Wed Aug 15 14:50:58 UTC 2018
Hi Rob,
On 15.8.2018 16:34, Tom Rini wrote:
> On Wed, Aug 15, 2018 at 04:30:15PM +0200, Michal Simek wrote:
>> On 15.8.2018 16:17, Tom Rini wrote:
>>> On Mon, Aug 13, 2018 at 05:53:38PM +0200, Jens Wiklander wrote:
>>>
>>>> Just as /chosen may contain devices /firmware may contain devices, scan
>>>> for devices under /firmware too.
>>>>
>>>> Signed-off-by: Jens Wiklander <jens.wiklander at linaro.org>
>>>> ---
>>>> drivers/core/root.c | 15 ++++++++++-----
>>>> 1 file changed, 10 insertions(+), 5 deletions(-)
>>>>
>>>> diff --git a/drivers/core/root.c b/drivers/core/root.c
>>>> index 72bcc7d7f2a3..0dca507e1187 100644
>>>> --- a/drivers/core/root.c
>>>> +++ b/drivers/core/root.c
>>>> @@ -265,9 +265,15 @@ static int dm_scan_fdt_node(struct udevice *parent, const void *blob,
>>>> for (offset = fdt_first_subnode(blob, offset);
>>>> offset > 0;
>>>> offset = fdt_next_subnode(blob, offset)) {
>>>> - /* "chosen" node isn't a device itself but may contain some: */
>>>> - if (!strcmp(fdt_get_name(blob, offset, NULL), "chosen")) {
>>>> - pr_debug("parsing subnodes of \"chosen\"\n");
>>>> + const char *node_name = fdt_get_name(blob, offset, NULL);
>>>> +
>>>> + /*
>>>> + * The "chosen" and "firmware" nodes aren't devices
>>>> + * themselves but may contain some:
>>>> + */
>>>> + if (!strcmp(node_name, "chosen") ||
>>>> + !strcmp(node_name, "firmware")) {
>>>> + pr_debug("parsing subnodes of \"%s\"\n", node_name);
>>>>
>>>> err = dm_scan_fdt_node(parent, blob, offset,
>>>> pre_reloc_only);
>>>
>>> So, the /firmware node seems special. Have you talked with the
>>> devicetree folks to get it listed in the spec? That would seem rather
>>> valuable for something used by many parties. Thanks!
>>>
>>
>> some days ago we have sent a patch for this too.
>> https://lists.denx.de/pipermail/u-boot/2018-August/338049.html
>>
>> It is using different way but it should do the same thing.
>
> OK, so it sounds like in terms of code clean-ups, we need something like
> what you reference and then some further clean-ups on top of that
> perhaps for other places to call dm_scan_fdt_ofnode_path() for special
> cases. And in terms of formalized specification bits, I do think
> /firmware should perhaps get kicked up to the spec itself so that it's
> very clear to all consumers.
I was also checking latest devicetree spec and there is no record about
/firmware node and how it is supposed to be used.
Thanks,
Michal
More information about the U-Boot
mailing list