On Thu, Aug 09, 2007 at 09:53:41PM +0200, Segher Boessenkool wrote: > >>>> I haven't heard or thought of anything better either. Using > >>>> "ranges" > >>>> is conceptually wrong, even ignoring the technical problems that > >>>> come > >>>> with it. > >>> > >>> Why is "ranges" conceptually wrong? > >> > >> The flash partitions aren't separate devices sitting on a > >> "flash bus", they are "sub-devices" of their parent. > > > > Well, yes, but nonetheless the partitions show up as part of the > > overall physical address space. How do you encode that other than in > > 'ranges'? > > All that address space shows up in the flash node already. To > access the partitions you have to go via that "master" node > anyway (some commands have to be sent to address 0 on the flash, > or similar).
Hrm, I suppose. Although for read-only access that's not relevant. > It is a very nice feature to not only be able to translate addresses > "up" the device tree, but also "down". I don't follow, sorry. > Also, it mimics reality, just like a good OF citizen should: > those partitions aren't actually devices at all, so they > certainly shouldn't be assigned a part of the host address > space. Hrm. I'm not entirely convinced that the distinction between "actually a device" and "not actually a device" is really as clear cut as you imply. > >>> To be honest this looks rather to me like another case where having > >>> overlapping 'reg' and 'ranges' would actually make sense. > >> > >> It never makes sense. You should give the "master" device > >> the full "reg" range it covers, and have it define its own > >> address space; "sub-devices" can carve out their little hunk > >> from that. You don't want more than one device owning the > >> same address range in the same address space. > > > > Why not? After all, the physical address ranges of the flash > > partitions really do overlap with that of the flash device as a whole. > > They don't overlap, a partition is a proper subset of the flash. A proper subset is a form of overlapping (indeed cases of being a proper subset form a proper subset of cases of overlapping, to be gratuitously meta-set-theoretic). > Which as usual is shown as "reg" in the child node and #a,#s in > the parent node. That in no way encodes that the child addresses are a subset of the parent address space. Instead #a and #s establish a new, separate address space for the children, and without 'ranges', there's no information about any sort of connection, overlapping, proper-subset or otherwise, with the parent address space. -- 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