On Friday 07 June 2013, Jason Gunthorpe wrote: > We have a minimum requirement that the bootloader setup internal regs, > so the minimum required DT bindings is going to be this: > > mbus { > compatible = ... > ranges = <INTERNAL_REGS_MAP_ID 0xf1000000 0x100000>; > reg = <0xf1000xxx ...>; // MBUS regs block > #address/size-cells... > > internal-regs { > ranges = <0 INTERNAL_REGS_MAP_ID 0x100000>; > } > } > > ie the ranges should never be empty.
Right, that's what I thought. > Discovery of the address of the mbus control registers is via the reg > property on its own node (which is untranslated), and all other > internal regs blocks will automatically translate as they are supposed > to (Thomas's work to make internal regs 0xd/0xf1 relies on this, AFAIK) > > INTERNAL_REGS_MAP_ID is an invalid target ID value, defined to mean > the internal registers target. 0xFFFFFFFF is a better choice for this > than 0, because 0xFFFFFFFF is never going to be a valid target id, it > is too large. Can you explain to me why it is an invalid target ID value? Is it treated very differently by the mbus register setup than all the others? I guess we can define it as something else to make a valid target ID, by using one or more of the remaining bits in the first address cell. Arnd _______________________________________________ devicetree-discuss mailing list devicetree-discuss@lists.ozlabs.org https://lists.ozlabs.org/listinfo/devicetree-discuss