On Wed, Oct 10, 2007 at 11:27:14PM -0600, Grant Likely wrote: > On 10/10/07, David Gibson <[EMAIL PROTECTED]> wrote: > > > My main concern is that I don't like the implicit numbering that > > > occurs simply based on the order of devices in the device tree. If > > > the probe algorithm ever changes to parse in reverse order or > > > something reorders the tree, then the device numbers also change. :-( > > > > Way of the future, apparently, everything's supposed to use udev to > > give things logical names. No, I'm not thrilled at the prospect > > either. > > ... > > So in the OF aliases approach, would udev need to read the aliases > node when assigning names to devices?
Well... maybe. Exactly how to sensibly propogate the information up to userspace depends on the type of device and other factors. In most cases I'd expect some kind of kernel intermediary between the device tree and udev, but there might be instances where it would make sense for udev to directly access /proc/device-tree/aliases via a helper program. In any case, if the kernel does provide some sort of name/number for the device, you can use the aliases for that. > > > I'd rather be explicit. In fact I've already been bitten by this > > > where the mpc5200 has 6 PSC, each of which can be configured as a > > > serial port. However, I've got access to 3 different boards; each of > > > which has the logical port numbers 100% unrelated to the 'cell' > > > number. > > > > In any case, this can't really belong in a *device* binding. Because > > the numbering has to cross devices of the same basic type, but > > different implementations. Where "basic type" is based on how device > > names are allocated, and is thus inherently Linux specific. > > Okay, that makes sense. > > > > > Segher's suggestion of using OF-style aliases for this is a fairly > > > > good one, actually. I just need to get to implementing it... > > > > > > /me needs to look up what that look like and how I would use it. My > > > knowledge of OF is sadly lacking. > > > > Short version by example: > > / { > > /* ... */ > > aliases { > > hd = "/[EMAIL PROTECTED]/[EMAIL PROTECTED]/...."; > > enet0 = "/soc/[EMAIL PROTECTED]"; > > enet1 = "/soc/[EMAIL PROTECTED]"; > > enet2 = "/[EMAIL PROTECTED]/isa/[EMAIL PROTECTED]" > > ttya = "/soc/[EMAIL PROTECTED]"; > > ttyb = "/pci/isa/[EMAIL PROTECTED]"; > > } > > } > > Ah, my plan worked... I got you to teach me about OF aliases and I > have to do any work myself. :-) Well, be careful, and take that example with a grain of salt. I made it up on the spot without checking a lot, so although it gives you the general idea, I probably haven't followed conventions for the names of the aliases and so forth. > Hmm, yes that would provide the information nicely. As long as the > data is in the tree, I'm pretty happy. -- 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 _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@ozlabs.org https://ozlabs.org/mailman/listinfo/linuxppc-dev