On Wed, Jun 04, 2014 at 03:35:10PM +0100, Thierry Reding wrote: > On Mon, Jun 02, 2014 at 11:41:04AM +0100, Dave Martin wrote: > > In the strictest sense, no. > > > > But for a large set of sane configurations, this probably works. > > > > Small sets of randomly-assigned IDs can just be enumerated one by one. > > > > We wouldn't be able to describe folding and bit shuffling, but we > > probably don't want to encourage that anyway. > > I'm having some difficulty understanding this. You make it sound like > there's a fairly arbitrary number of IDs that the SMMU can handle. So > how is the mapping to devices defined? If you say encourage that does > make it sound like the assignment of IDs is purely defined by some > mechanism in software rather than in hardware. Or they are more or less > randomly picked by someone. If that's the case, is that not something > that should be dynamically allocated by the kernel rather than put into > the device tree? The set of StreamIDs that can be generated by a master is fixed in the hardware. The SMMU can then be programmed to map these incoming IDs onto a context ID (or a set of context IDs), which are the IDs used internally by the SMMU to find the page tables etc. The StreamID -> ContextID mapping is dynamic and controlled by software. The Master -> StreamIDs mapping is fixed in the hardware. Will -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html