Subject: Re: Freescale MPC5554 device tree (was: cross-compiling Linux for PowerPC e200 core?)

From: David Gibson <[email-masked]>
Date: Sat, 13 Mar 2010 09:36:47 +1100

On Fri, Mar 12, 2010 at 05:14:56AM -0700, Grant Likely wrote:
> 2010/3/11 Németh Márton <[email-masked]>:
[snip]
> > +
> > +       cpus {
> > +               #address-cells = <1>;
> > +               #size-cells = <0>;
> > +
> > +               cpu@0 {
> > +                       device_type = "cpu";
> > +                       compatible = "PowerPC,5554";
> 
> I'd rather see the same convention used here as for all the other
> compatible values in this file.  ie:
> 
> compatible = "fsl,mpc5554-e200z6", "fsl,powerpc-e200z6";
> 
> Dave, what do you think?

Well, you could add those too, but "PowerPC,5554" should probably
remain.

The historical background here is that in the original OF spec, driver
matching was done on node name, and only then on compatible.
Essentially the node name was treated as an implicit first entry in
the compatible list.  The the generic names convention came along, and
instead name became a human readable generic type for the device
("ethernet", "i2c", etc..).

That convention has been widely used since long before flat trees
existed, but for some reason it was never really used for cpu nodes;
they remained as "PowerPC,XXXX" or whatever.  Because the varying
names of cpu nodes was sometimes awkward to deal with in bootloaders,
we decided it would be sensible to apply the generic names convention
here too, so "cpu@X".  But then, the previous node name, which was
treated as being prepended to compatible, should now explicitly be put
into compatible.

-- 
David Gibson			| I'll have my music baroque, and my code
david AT gibson.dropbear.id.au	| minimalist, thank you.  NOT _the_ _other_
				| _way_ _around_!
http://www.ozlabs.org/~dgibson