[U-Boot-Users] use of aliases in device trees
David Gibson
david at gibson.dropbear.id.au
Sun Nov 4 23:42:56 CET 2007
On Sat, Nov 03, 2007 at 09:29:48PM -0600, Grant Likely wrote:
> On 11/3/07, Kumar Gala <galak at kernel.crashing.org> wrote:
> > In some discussion on the u-boot dev list it became clear that having
> > aliases in the device tree might be useful as a common way to deal
> > with finding specific nodes that need fixing up by the firmware.
> > This problem also exists in the kernel bootwrappers.
> >
> > The common example is how to associate a given MAC address with the
> > proper ethernet node. In u-boot an explicit path is hard coded into
> > the u-boot build for each ethernet device. In the bootwrapper we use
> > "linux,network-index = <N>" in the given ethernet node.
> >
> > One common solution would be having a top level aliases like the pmac
> > tree's have:
> >
> > aliases {
> > enet0 = "...";
> > enet1 = "...";
> > pci0 = "...";
> > pci1 = "...";
> > };
>
> One question to ask is do we use full paths or phandles to point at nodes?
>
> OF, of course, uses full paths, but that does require more memory and
> processing power, but it might not be significant enough to worry
> about.
>
> If we use phandles, then we should use names that don't conflict with
> full path alias names. It would also be desirable to be able to
> generate a phandle alias from the full path alias in order to maintain
> some level of compatibility with OF. It also think it will make
> maintaining aliases in .dts files simpler because trivial changes to
> node paths won't break the phandle alias.
>
> Maybe something like:
> aliases {
> enet0,phandle = <&enet0>;
> enet1,phandle = <&enet1>;
> ...
> };
The fairly small advantages of using phandles here are not worth the
hassle of defining a new alias format, when the OF one with full paths
already exists.
I would, however, like to extend dtc so that we can do something like:
aliases {
enet0 = &enet0;
};
and the reference in non-cell context will expand to the full path.
That could be used for things like linux,stdout-path in /chosen, too.
I'd also like to extend dtc so that the label can be tagged somehow, say:
*enet0: { ... };
and as well as creating a normal dtc label, an alias will also be
automatically added to /aliases.
--
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
More information about the U-Boot
mailing list