From: Hiroshi Doyu <hdoyu-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org> To: iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org Cc: linux-tegra-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org, thierry.reding-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org, Hiroshi Doyu <hdoyu-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org> Subject: [PATCH v2 21/22] iommu/tegra: smmu: Support Multiple ASID Date: Fri, 5 Jul 2013 13:44:56 +0300 [thread overview] Message-ID: <1373021097-32420-22-git-send-email-hdoyu@nvidia.com> (raw) In-Reply-To: <1373021097-32420-1-git-send-email-hdoyu-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org> 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. Signed-off-by: Hiroshi Doyu <hdoyu-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org> --- drivers/iommu/tegra-smmu.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/drivers/iommu/tegra-smmu.c b/drivers/iommu/tegra-smmu.c index 8a9434e..1945815 100644 --- a/drivers/iommu/tegra-smmu.c +++ b/drivers/iommu/tegra-smmu.c @@ -904,7 +904,18 @@ enum { 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]; + break; + } if (!map) goto out; @@ -915,7 +926,7 @@ static int smmu_iommu_add_device(struct device *dev) return err; } out: - dev_dbg(dev, "Attached to map %p\n", map); + dev_dbg(dev, "Attached to map %p, swgroup:%08llx\n", map, swgroup); return 0; } -- 1.7.9.5
WARNING: multiple messages have this Message-ID (diff)
From: hdoyu@nvidia.com (Hiroshi Doyu) To: linux-arm-kernel@lists.infradead.org Subject: [PATCH v2 21/22] iommu/tegra: smmu: Support Multiple ASID Date: Fri, 5 Jul 2013 13:44:56 +0300 [thread overview] Message-ID: <1373021097-32420-22-git-send-email-hdoyu@nvidia.com> (raw) In-Reply-To: <1373021097-32420-1-git-send-email-hdoyu@nvidia.com> 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. Signed-off-by: Hiroshi Doyu <hdoyu@nvidia.com> --- drivers/iommu/tegra-smmu.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/drivers/iommu/tegra-smmu.c b/drivers/iommu/tegra-smmu.c index 8a9434e..1945815 100644 --- a/drivers/iommu/tegra-smmu.c +++ b/drivers/iommu/tegra-smmu.c @@ -904,7 +904,18 @@ enum { 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]; + break; + } if (!map) goto out; @@ -915,7 +926,7 @@ static int smmu_iommu_add_device(struct device *dev) return err; } out: - dev_dbg(dev, "Attached to map %p\n", map); + dev_dbg(dev, "Attached to map %p, swgroup:%08llx\n", map, swgroup); return 0; } -- 1.7.9.5
next prev parent reply other threads:[~2013-07-05 10:44 UTC|newest] Thread overview: 132+ messages / expand[flat|nested] mbox.gz Atom feed top 2013-07-05 10:44 [PATCH v2 00/22] Unified SMMU driver among Tegra SoCs Hiroshi Doyu 2013-07-05 10:44 ` Hiroshi Doyu [not found] ` <1373021097-32420-1-git-send-email-hdoyu-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org> 2013-07-05 10:44 ` [PATCH v2 01/22] [HACK] of: dev_node has struct device pointer Hiroshi Doyu 2013-07-05 10:44 ` Hiroshi Doyu [not found] ` <1373021097-32420-2-git-send-email-hdoyu-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org> 2013-07-16 22:57 ` Stephen Warren 2013-07-16 22:57 ` Stephen Warren [not found] ` <51E5CFBF.5080407-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org> 2013-07-16 23:16 ` Thierry Reding 2013-07-16 23:16 ` Thierry Reding [not found] ` <20130716231629.GA12189-RcKxWJ4Cfj3FNiLNb7+IINdj8bHVeoWogfoxzgwHRXE@public.gmane.org> 2013-07-29 10:13 ` Hiroshi Doyu 2013-07-29 10:13 ` Hiroshi Doyu [not found] ` <20130729.131344.1221933042559369096.hdoyu-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org> 2013-07-29 13:13 ` Lorenzo Pieralisi 2013-07-29 13:13 ` Lorenzo Pieralisi 2013-07-05 10:44 ` [PATCH v2 02/22] ARM: tegra: Populate AHB/IOMMU earlier than others Hiroshi Doyu 2013-07-05 10:44 ` Hiroshi Doyu [not found] ` <1373021097-32420-3-git-send-email-hdoyu-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org> 2013-07-16 23:03 ` Stephen Warren 2013-07-16 23:03 ` Stephen Warren 2013-07-05 10:44 ` [PATCH v2 03/22] ARM: tegra: Create a DT header defining swgroups ID Hiroshi Doyu 2013-07-05 10:44 ` Hiroshi Doyu [not found] ` <1373021097-32420-4-git-send-email-hdoyu-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org> 2013-07-16 23:07 ` Stephen Warren 2013-07-16 23:07 ` Stephen Warren [not found] ` <51E5D220.1070708-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org> 2013-07-29 10:53 ` Hiroshi Doyu 2013-07-29 10:53 ` Hiroshi Doyu [not found] ` <20130729.135336.943359637886118972.hdoyu-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org> 2013-07-29 17:45 ` Stephen Warren 2013-07-29 17:45 ` Stephen Warren [not found] ` <51F6AA2B.7050509-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org> 2013-07-30 4:56 ` Hiroshi Doyu 2013-07-30 4:56 ` Hiroshi Doyu 2013-07-05 10:44 ` [PATCH v2 04/22] ARM: dt: tegra30: iommu: Add "nvidia,swgroup" Hiroshi Doyu 2013-07-05 10:44 ` Hiroshi Doyu [not found] ` <1373021097-32420-5-git-send-email-hdoyu-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org> 2013-07-16 23:10 ` Stephen Warren 2013-07-16 23:10 ` Stephen Warren 2013-07-05 10:44 ` [PATCH v2 05/22] ARM: dt: tegra30: iommu: Add "nvidia,memory-client" Hiroshi Doyu 2013-07-05 10:44 ` Hiroshi Doyu [not found] ` <1373021097-32420-6-git-send-email-hdoyu-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org> 2013-07-16 23:14 ` [PATCH v2 05/22] ARM: dt: tegra30: iommu: Add "nvidia, memory-client" Stephen Warren 2013-07-16 23:14 ` Stephen Warren [not found] ` <51E5D3D9.2090608-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org> 2013-07-29 11:06 ` [PATCH v2 05/22] ARM: dt: tegra30: iommu: Add "nvidia,memory-client" Hiroshi Doyu 2013-07-29 11:06 ` Hiroshi Doyu [not found] ` <20130729.140646.649065361266278007.hdoyu-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org> 2013-07-29 17:47 ` Stephen Warren 2013-07-29 17:47 ` [PATCH v2 05/22] ARM: dt: tegra30: iommu: Add "nvidia, memory-client" Stephen Warren [not found] ` <51F6AA98.4020701-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org> 2013-07-30 5:11 ` [PATCH v2 05/22] ARM: dt: tegra30: iommu: Add "nvidia,memory-client" Hiroshi Doyu 2013-07-30 5:11 ` Hiroshi Doyu 2013-07-05 10:44 ` [PATCH v2 06/22] ARM: dt: tegra114: iommu: Fix IOMMU register address Hiroshi Doyu 2013-07-05 10:44 ` Hiroshi Doyu [not found] ` <1373021097-32420-7-git-send-email-hdoyu-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org> 2013-07-16 23:18 ` Stephen Warren 2013-07-16 23:18 ` Stephen Warren [not found] ` <51E5D4C5.4090109-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org> 2013-07-16 23:27 ` Thierry Reding 2013-07-16 23:27 ` Thierry Reding 2013-07-05 10:44 ` [PATCH v2 07/22] ARM: dt: tegra114: iommu: Add "nvidia,swgroups" Hiroshi Doyu 2013-07-05 10:44 ` Hiroshi Doyu 2013-07-05 10:44 ` [PATCH v2 08/22] ARM: dt: tegra114: Add "nvidia,memory-client" Hiroshi Doyu 2013-07-05 10:44 ` Hiroshi Doyu 2013-07-05 10:44 ` [PATCH v2 09/22] amba: Move AHB to core_initcall Hiroshi Doyu 2013-07-05 10:44 ` Hiroshi Doyu [not found] ` <1373021097-32420-10-git-send-email-hdoyu-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org> 2013-07-16 23:20 ` Stephen Warren 2013-07-16 23:20 ` Stephen Warren 2013-07-05 10:44 ` [PATCH v2 10/22] iommu/tegra: smmu: Move IOMMU " Hiroshi Doyu 2013-07-05 10:44 ` Hiroshi Doyu [not found] ` <1373021097-32420-11-git-send-email-hdoyu-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org> 2013-07-16 23:21 ` Stephen Warren 2013-07-16 23:21 ` Stephen Warren 2013-07-05 10:44 ` [PATCH v2 11/22] iommu/tegra: smmu: Add Tegra 114 support Hiroshi Doyu 2013-07-05 10:44 ` Hiroshi Doyu [not found] ` <1373021097-32420-12-git-send-email-hdoyu-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org> 2013-07-18 20:01 ` Stephen Warren 2013-07-18 20:01 ` Stephen Warren 2013-07-05 10:44 ` [PATCH v2 12/22] iommu/tegra: smmu: Select ARM_DMA_USE_IOMMU in Kconfig Hiroshi Doyu 2013-07-05 10:44 ` Hiroshi Doyu 2013-07-05 10:44 ` [PATCH v2 13/22] iommu/tegra: smmu: Create default IOVA maps Hiroshi Doyu 2013-07-05 10:44 ` Hiroshi Doyu [not found] ` <1373021097-32420-14-git-send-email-hdoyu-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org> 2013-07-18 20:10 ` Stephen Warren 2013-07-18 20:10 ` Stephen Warren [not found] ` <51E84BB5.9010303-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org> 2013-07-29 11:24 ` Hiroshi Doyu 2013-07-29 11:24 ` Hiroshi Doyu [not found] ` <20130729.142409.995770519696534476.hdoyu-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org> 2013-07-29 17:50 ` Stephen Warren 2013-07-29 17:50 ` Stephen Warren 2013-07-05 10:44 ` [PATCH v2 14/22] iommu/tegra: smmu: Register platform_device to IOMMU dynamically Hiroshi Doyu 2013-07-05 10:44 ` Hiroshi Doyu [not found] ` <1373021097-32420-15-git-send-email-hdoyu-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org> 2013-07-18 20:17 ` Stephen Warren 2013-07-18 20:17 ` Stephen Warren [not found] ` <51E84D51.2030404-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org> 2013-07-29 11:27 ` Hiroshi Doyu 2013-07-29 11:27 ` Hiroshi Doyu [not found] ` <20130729.142752.1020949402019811407.hdoyu-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org> 2013-07-29 17:54 ` Stephen Warren 2013-07-29 17:54 ` Stephen Warren [not found] ` <51F6AC41.30007-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org> 2013-07-30 5:18 ` Hiroshi Doyu 2013-07-30 5:18 ` Hiroshi Doyu 2013-07-05 10:44 ` [PATCH v2 15/22] iommu/tegra: smmu: Calculate ASID register offset by ID Hiroshi Doyu 2013-07-05 10:44 ` Hiroshi Doyu [not found] ` <1373021097-32420-16-git-send-email-hdoyu-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org> 2013-07-18 20:18 ` Stephen Warren 2013-07-18 20:18 ` Stephen Warren 2013-07-05 10:44 ` [PATCH v2 16/22] iommu/tegra: smmu: Get "nvidia,swgroup" from DT Hiroshi Doyu 2013-07-05 10:44 ` Hiroshi Doyu [not found] ` <1373021097-32420-17-git-send-email-hdoyu-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org> 2013-07-18 20:28 ` Stephen Warren 2013-07-18 20:28 ` Stephen Warren [not found] ` <51E84FFA.8020509-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org> 2013-07-29 11:39 ` Hiroshi Doyu 2013-07-29 11:39 ` Hiroshi Doyu [not found] ` <20130729.143950.524913713971518557.hdoyu-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org> 2013-07-29 18:00 ` Stephen Warren 2013-07-29 18:00 ` Stephen Warren 2013-07-05 10:44 ` [PATCH v2 17/22] iommu/tegra: smmu: Unfied driver for Tegra SoCs Hiroshi Doyu 2013-07-05 10:44 ` Hiroshi Doyu 2013-07-05 10:44 ` [PATCH v2 18/22] iommu/tegra: smmu: Use dt-bindings MACRO Hiroshi Doyu 2013-07-05 10:44 ` Hiroshi Doyu [not found] ` <1373021097-32420-19-git-send-email-hdoyu-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org> 2013-07-18 20:30 ` Stephen Warren 2013-07-18 20:30 ` Stephen Warren 2013-07-05 10:44 ` [PATCH v2 19/22] iommu/tegra: smmu: Workaround PCIe IOMMU'able Hiroshi Doyu 2013-07-05 10:44 ` Hiroshi Doyu [not found] ` <1373021097-32420-20-git-send-email-hdoyu-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org> 2013-07-18 20:33 ` Stephen Warren 2013-07-18 20:33 ` Stephen Warren 2013-07-05 10:44 ` [PATCH v2 20/22] iommu/tegra: smmu: Get "nvidia,memory-client" from DT Hiroshi Doyu 2013-07-05 10:44 ` [PATCH v2 20/22] iommu/tegra: smmu: Get "nvidia, memory-client" " Hiroshi Doyu [not found] ` <1373021097-32420-21-git-send-email-hdoyu-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org> 2013-07-18 20:40 ` [PATCH v2 20/22] iommu/tegra: smmu: Get "nvidia,memory-client" " Stephen Warren 2013-07-18 20:40 ` Stephen Warren 2013-07-18 20:40 ` Stephen Warren 2013-07-05 10:44 ` Hiroshi Doyu [this message] 2013-07-05 10:44 ` [PATCH v2 21/22] iommu/tegra: smmu: Support Multiple ASID Hiroshi Doyu [not found] ` <1373021097-32420-22-git-send-email-hdoyu-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org> 2013-07-18 20:43 ` Stephen Warren 2013-07-18 20:43 ` Stephen Warren [not found] ` <51E8535A.30605-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org> 2013-07-29 10:31 ` Hiroshi Doyu 2013-07-29 10:31 ` Hiroshi Doyu [not found] ` <20130729.133155.1836775489422797370.hdoyu-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org> 2013-07-29 17:41 ` Stephen Warren 2013-07-29 17:41 ` Stephen Warren [not found] ` <51F6A943.8000004-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org> 2013-07-30 5:22 ` Hiroshi Doyu 2013-07-30 5:22 ` Hiroshi Doyu 2013-07-05 10:44 ` [PATCH v2 22/22] ARM: dma-mapping: Drop GFP_COMP for DMA memory allocations Hiroshi Doyu 2013-07-05 10:44 ` Hiroshi Doyu [not found] ` <1373021097-32420-23-git-send-email-hdoyu-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org> 2013-07-18 20:45 ` Stephen Warren 2013-07-18 20:45 ` Stephen Warren 2013-07-05 11:03 ` [PATCH v2 00/22] Unified SMMU driver among Tegra SoCs Marc Dietrich 2013-07-05 11:03 ` Marc Dietrich [not found] ` <4999563.JlU6BysXQl-D3pzGp0ZKuDWZbiwp4sFPyrtisivX6KghOMvlBiLbJSELgA04lAiVw@public.gmane.org> 2013-07-05 11:08 ` Hiroshi Doyu 2013-07-05 11:08 ` Hiroshi Doyu 2013-07-08 8:47 ` Hiroshi Doyu [not found] ` <20130708.114736.1280783845180530098.hdoyu-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org> 2013-07-08 15:49 ` Stephen Warren [not found] ` <51DADF91.30009-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org> 2013-07-08 17:11 ` Hiroshi Doyu [not found] ` <20130708.201148.1964850060334610089.hdoyu-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org> 2013-07-08 17:37 ` Stephen Warren 2013-09-23 17:07 ` Hiroshi Doyu
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=1373021097-32420-22-git-send-email-hdoyu@nvidia.com \ --to=hdoyu-ddmlm1+adcrqt0dzr+alfa@public.gmane.org \ --cc=iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org \ --cc=linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org \ --cc=linux-tegra-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \ --cc=thierry.reding-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.