Stephen Warren <swarren@xxxxxxxxxxxxx> wrote @ Fri, 1 Nov 2013 18:05:09 +0100: > > What are the requirements for Tegra? If the IOMMU isn't initialised, does it > > act as a passthrough? > > I believe so, yes. In particular we have the following register bits: > > 1) Register bit AHB_ARBITRATION_XBAR_CTRL_SMMU_INIT_DONE is an overall > SMMU enable flag. This sits outside the SMMU module itself, but the SMMU > probe function requests drivers/amba/tegra-ahb.c:tegra_ahb_enable_smmu() > to go enable it. > > 2) Each memory client ID has a bit in SMMU_TRANSLATION_ENABLE_* to > enable translation for the client. This is also enabled during the SMMU > probe function. > > 3) Each swgroup ID has a register indicating which ASID to use for > translation, and an associated enable bit. These are also set up during > SMMU probe at present. > > I believe when any of those bits aren't enabled, the SMMU is a > pass-through, considering that I'm pretty sure if I disable the SMMU > driver in the kernel, everything will still work just fine. Yes, and this is also one of the requirements that we always need to make sure that all Tegra peripheal devices work with and without IOMMU, mainly for debugging purpose. -- To unsubscribe from this list: send the line "unsubscribe linux-tegra" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html