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