Stephen Warren <swarren@xxxxxxxxxxxxx> wrote @ Thu, 18 Jul 2013 22:43:06 +0200: > On 07/05/2013 04:44 AM, Hiroshi Doyu wrote: > > Support Multiple Address Space(AS). Tegra SMMU can have multiple > > ASes. We reserve 2 of them for static assignment, AS[0] for system > > default, AS[1] for AHB clusters as protected domain from others, where > > there are many traditional pheripheral devices like USB, SD/MMC. They > > should be isolated from some smart devices like host1x for system > > robustness. Even if smart devices behaves wrongly, the traditional > > devices(SD/MMC, USB) wouldn't be affected, and the system could > > continue most likely. > > > diff --git a/drivers/iommu/tegra-smmu.c b/drivers/iommu/tegra-smmu.c > > > static int smmu_iommu_add_device(struct device *dev) > > { > > int err; > > - struct dma_iommu_mapping *map = smmu_handle->map[SYSTEM_DEFAULT]; > > + u64 swgroup; > > + struct dma_iommu_mapping *map = NULL; > > + > > + swgroup = smmu_of_get_memory_client(dev); > > + switch (swgroup) { > > + case TEGRA_SWGROUP_BIT(PPCS): > > + map = smmu_handle->map[SYSTEM_PROTECTED]; > > + break; > > + default: > > + map = smmu_handle->map[SYSTEM_DEFAULT]; > > I already mentioned this, but just for completeness: What is > smmu->num_as <= SYSTEM_DEFAULT? I think that this belongs to the system operation policy. Which H/W should be configured to which Address Space(AS). This put all AHB clients(PPCS) into AS[1](SYSTEM_PROTECTED), and the rest into AS[0](SYSTEM_DEFAULT). AHB clients are mainly traditional H/Ws like USB and SD/MMC so that they should be kept separated from the smart IOMMU clients like host1x. Is there any place to configure this kind of board specific policy rather than here? -- 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