olpc ofw question
Mitch Bradley
wmb at firmworks.com
Sun Aug 15 11:52:05 EST 2010
Andres Salomon wrote:
> On Wed, 11 Aug 2010 15:53:44 -1000
> Mitch Bradley <wmb at firmworks.com> wrote:
>
> [...]
>
>> The "proc_of.c" code that I wrote in Dec 2006 uses the
>> package-to-path method mentioned above, getting the "name at addr"
>> representation (package-to-path returns the full path, but you can
>> easily extract just the tail component with strrchr(path, '/'))
>>
>
>
> Thanks for the tip. I changed the code:
>
> - dp->name = pdt_get_one_property(node, "name");
> +// dp->name = pdt_get_one_property(node, "name");
> + dp->name = pdt_get_fullname(node);
>
> Where pdt_get_fullname() runs package-to-path and returns
> strrchr(buf, '/')+1; /proc/device-tree looks much better.
> Here's the diff now between /ofw and /proc/device-tree:
>
> http://dev.queued.net/~dilinger/dt2.diff
>
> Now I'm wondering a few things;
>
> 1) I'm setting node->name to the full node name now (including
> the "@" suffix). Is there any reason why this might be incorrect
> (ie, that I should only be using the @ suffix in node->full_name)?
> It looks fine to me, but it's worth asking...
>
> 2) At a later point, it's probably worth looking into changing
> the sparc code to use this as well. Is there a reason why the
> sparc code doesn't shouldn't use this (ie, old firmware bugs)?
>
package-to-path first appeared in OBP 3, i.e. the major version that
conformed to the IEEE 1275 standard. OBP 1.x and OBP 2.x had a
different (less portable and somewhat less functional) client interface
ABI called "romvec". If I remember correctly, OBP 3 first appeared on
Sun 5 - UltraSPARC - systems. OBP 1 and 2 were on Sun 4c and related
machines.
I think it has been about 15 years since the last OBP 2.x system was
released. There may still be a few working machines from that
generation, but if so, they are of more historic interest than economic
value. I ditched my last one something like 10 years ago.
> 3) I get the following during proc population:
>
> [ 0.126687] device-tree: Duplicate name in /, renamed to "dropin-fs#1"
>
> Looking at the diff, I see
>
> -/dropin-fs/.node
> -0000000 ` 222 206 377
> -0000004
> -/dropin-fs/.node
> -0000000 ` 222 206 377
>
> Is this a bug in my version of OFW?
>
Yes. I just fixed it. Thanks for noticing it. Fortunately, it is
innocuous.
More information about the devicetree-discuss
mailing list