[PATCH v2] devicetree: Add generic IOMMU device tree bindings
From: Will Deacon <hidden>
Date: 2014-06-17 12:18:19
Also in:
linux-devicetree, linux-iommu, linux-samsung-soc, linux-tegra, lkml
On Tue, Jun 17, 2014 at 12:58:30PM +0100, Thierry Reding wrote:
On Mon, Jun 16, 2014 at 01:57:04PM +0100, Will Deacon wrote:quoted
On Wed, Jun 04, 2014 at 10:12:38PM +0100, Thierry Reding wrote:quoted
It can easily be argued that if the algorithm used to remap the ID varies, the compatibility of the device changes. Therefore I would expect any variant of the GICv3 that deviates from the "standard" mapping (if there is such a thing) to have its own compatible string.There is no standard mapping; it's a property defined at system integration time. I fully expect different SoCs to do different things here.My point was that the mapping itself seems to be fundamental enough to make devices with different mappings "incompatible". Therefore I think this could probably be handled by using different compatible values, something along the lines of this: compatible = "vendor,soc-gicv3", "arm,gicv3"; Then the mapping can be described in code, which should be a whole lot easier and more flexible than a more or less generic notation in device tree.
I don't think that scales well beyond a handful of unique mappings, and I really anticipate everybody doing something different based on their integration constraints. You'd very quickly end up with sets of tables for each SoC, describing the topology and associated IDs in the kernel source, which feels like a giant step backwards from where we are today with device tree. If, for example, the GIC architecture prescribed a fixed set of Device IDs and an algorithm for converting from Stream IDs then your approach may have some merits, but that's not where we are today (and I also don't think it's practical to try and enforce such system-wide properties into an interrupt controller architecture). Will