From: Will Deacon <will.deacon-5wv7dgnIgG8@public.gmane.org>
To: Robin Murphy <robin.murphy-5wv7dgnIgG8@public.gmane.org>
Cc: devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org,
thunder.leizhen-hv44wF8Li93QT0dZR+AlfA@public.gmane.org,
linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org
Subject: Re: [PATCH v3 8/9] iommu/arm-smmu: Support non-PCI devices with SMMUv3
Date: Fri, 1 Jul 2016 13:40:36 +0100 [thread overview]
Message-ID: <20160701124036.GK12735@arm.com> (raw)
In-Reply-To: <19b0d973e170bebfa57157047bf76499de2a6d33.1467123945.git.robin.murphy-5wv7dgnIgG8@public.gmane.org>
On Tue, Jun 28, 2016 at 04:48:27PM +0100, Robin Murphy wrote:
> With the device <-> stream ID relationship suitably abstracted and
> of_xlate() hooked up, the PCI dependency now looks, and is, entirely
> arbitrary. Any bus using the of_dma_configure() mechanism will work,
> so extend support to the platform and AMBA buses which do just that.
>
> Signed-off-by: Robin Murphy <robin.murphy-5wv7dgnIgG8@public.gmane.org>
> ---
>
> v3: Now actually tested; improve comment about duplicate IDs.
>
> drivers/iommu/Kconfig | 2 +-
> drivers/iommu/arm-smmu-v3.c | 42 ++++++++++++++++++++++++++++++++++--------
> 2 files changed, 35 insertions(+), 9 deletions(-)
>
> diff --git a/drivers/iommu/Kconfig b/drivers/iommu/Kconfig
> index ad0860383cb3..d1c66afefeed 100644
> --- a/drivers/iommu/Kconfig
> +++ b/drivers/iommu/Kconfig
> @@ -308,7 +308,7 @@ config ARM_SMMU
>
> config ARM_SMMU_V3
> bool "ARM Ltd. System MMU Version 3 (SMMUv3) Support"
> - depends on ARM64 && PCI
> + depends on ARM64
> select IOMMU_API
> select IOMMU_IO_PGTABLE_LPAE
> select GENERIC_MSI_IRQ_DOMAIN
> diff --git a/drivers/iommu/arm-smmu-v3.c b/drivers/iommu/arm-smmu-v3.c
> index 8ce2a4f9342b..735690e03818 100644
> --- a/drivers/iommu/arm-smmu-v3.c
> +++ b/drivers/iommu/arm-smmu-v3.c
> @@ -35,6 +35,8 @@
> #include <linux/pci.h>
> #include <linux/platform_device.h>
>
> +#include <linux/amba/bus.h>
> +
> #include "io-pgtable.h"
>
> /* MMIO registers */
> @@ -1822,6 +1824,25 @@ static void arm_smmu_remove_device(struct device *dev)
> iommu_fwspec_free(dev);
> }
>
> +static struct iommu_group *arm_smmu_device_group(struct device *dev)
> +{
> + struct iommu_group *group;
> +
> + /*
> + * The difficulty of efficient stream-ID-to-device lookup prevents us
> + * from reasonably detecting aliasing outside of PCI buses, but for the
> + * the same underlying reason (a sparse 32-bit ID space) there's also
extra 'the'
> + * little excuse for systems to be wired up with non-unique IDs in the
> + * first place; consider them unsupported.
> + */
This is a long-winded way of saying "we don't support aliasing SIDs outside
of PCI".
Will
WARNING: multiple messages have this Message-ID (diff)
From: will.deacon@arm.com (Will Deacon)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v3 8/9] iommu/arm-smmu: Support non-PCI devices with SMMUv3
Date: Fri, 1 Jul 2016 13:40:36 +0100 [thread overview]
Message-ID: <20160701124036.GK12735@arm.com> (raw)
In-Reply-To: <19b0d973e170bebfa57157047bf76499de2a6d33.1467123945.git.robin.murphy@arm.com>
On Tue, Jun 28, 2016 at 04:48:27PM +0100, Robin Murphy wrote:
> With the device <-> stream ID relationship suitably abstracted and
> of_xlate() hooked up, the PCI dependency now looks, and is, entirely
> arbitrary. Any bus using the of_dma_configure() mechanism will work,
> so extend support to the platform and AMBA buses which do just that.
>
> Signed-off-by: Robin Murphy <robin.murphy@arm.com>
> ---
>
> v3: Now actually tested; improve comment about duplicate IDs.
>
> drivers/iommu/Kconfig | 2 +-
> drivers/iommu/arm-smmu-v3.c | 42 ++++++++++++++++++++++++++++++++++--------
> 2 files changed, 35 insertions(+), 9 deletions(-)
>
> diff --git a/drivers/iommu/Kconfig b/drivers/iommu/Kconfig
> index ad0860383cb3..d1c66afefeed 100644
> --- a/drivers/iommu/Kconfig
> +++ b/drivers/iommu/Kconfig
> @@ -308,7 +308,7 @@ config ARM_SMMU
>
> config ARM_SMMU_V3
> bool "ARM Ltd. System MMU Version 3 (SMMUv3) Support"
> - depends on ARM64 && PCI
> + depends on ARM64
> select IOMMU_API
> select IOMMU_IO_PGTABLE_LPAE
> select GENERIC_MSI_IRQ_DOMAIN
> diff --git a/drivers/iommu/arm-smmu-v3.c b/drivers/iommu/arm-smmu-v3.c
> index 8ce2a4f9342b..735690e03818 100644
> --- a/drivers/iommu/arm-smmu-v3.c
> +++ b/drivers/iommu/arm-smmu-v3.c
> @@ -35,6 +35,8 @@
> #include <linux/pci.h>
> #include <linux/platform_device.h>
>
> +#include <linux/amba/bus.h>
> +
> #include "io-pgtable.h"
>
> /* MMIO registers */
> @@ -1822,6 +1824,25 @@ static void arm_smmu_remove_device(struct device *dev)
> iommu_fwspec_free(dev);
> }
>
> +static struct iommu_group *arm_smmu_device_group(struct device *dev)
> +{
> + struct iommu_group *group;
> +
> + /*
> + * The difficulty of efficient stream-ID-to-device lookup prevents us
> + * from reasonably detecting aliasing outside of PCI buses, but for the
> + * the same underlying reason (a sparse 32-bit ID space) there's also
extra 'the'
> + * little excuse for systems to be wired up with non-unique IDs in the
> + * first place; consider them unsupported.
> + */
This is a long-winded way of saying "we don't support aliasing SIDs outside
of PCI".
Will
next prev parent reply other threads:[~2016-07-01 12:40 UTC|newest]
Thread overview: 60+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-06-28 15:48 [PATCH v3 0/9] Generic DT bindings for PCI IOMMUs and ARM SMMUv3 Robin Murphy
2016-06-28 15:48 ` Robin Murphy
[not found] ` <cover.1467123945.git.robin.murphy-5wv7dgnIgG8@public.gmane.org>
2016-06-28 15:48 ` [PATCH v3 1/9] arm64: mm: change IOMMU notifier action to attach DMA ops Robin Murphy
2016-06-28 15:48 ` Robin Murphy
2016-06-28 15:48 ` [PATCH v3 2/9] iommu/of: Consolidate device creation workarounds Robin Murphy
2016-06-28 15:48 ` Robin Murphy
[not found] ` <dc8ac0f397ea5c90937fb5c9974e4ab02e264bd8.1467123945.git.robin.murphy-5wv7dgnIgG8@public.gmane.org>
2016-07-01 10:22 ` Will Deacon
2016-07-01 10:22 ` Will Deacon
2016-07-01 10:32 ` Marek Szyprowski
2016-07-01 10:32 ` Marek Szyprowski
[not found] ` <611b2a77-e7e8-e1e2-85b5-4f469f3ebdf4-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>
2016-07-01 11:19 ` Robin Murphy
2016-07-01 11:19 ` Robin Murphy
[not found] ` <577651D7.4030309-5wv7dgnIgG8@public.gmane.org>
2016-07-01 12:02 ` Marek Szyprowski
2016-07-01 12:02 ` Marek Szyprowski
2016-07-01 12:29 ` Will Deacon
2016-07-01 12:29 ` Will Deacon
2016-06-28 15:48 ` [PATCH v3 3/9] Docs: dt: add PCI IOMMU map bindings Robin Murphy
2016-06-28 15:48 ` Robin Murphy
2016-06-28 15:48 ` [PATCH v3 4/9] of/irq: Break out msi-map lookup (again) Robin Murphy
2016-06-28 15:48 ` Robin Murphy
2016-06-28 15:48 ` [PATCH v3 5/9] iommu/of: Handle iommu-map property for PCI Robin Murphy
2016-06-28 15:48 ` Robin Murphy
[not found] ` <17617dff6e7998b91d53ed8a1d6283b1c7bc3470.1467123945.git.robin.murphy-5wv7dgnIgG8@public.gmane.org>
2016-07-01 10:31 ` Will Deacon
2016-07-01 10:31 ` Will Deacon
[not found] ` <20160701103105.GE12735-5wv7dgnIgG8@public.gmane.org>
2016-07-01 11:33 ` Robin Murphy
2016-07-01 11:33 ` Robin Murphy
2016-06-28 15:48 ` [PATCH v3 6/9] iommu/of: Introduce iommu_fwspec Robin Murphy
2016-06-28 15:48 ` Robin Murphy
[not found] ` <227abd6fb43e4163d94673066b4b736d7efaa635.1467123945.git.robin.murphy-5wv7dgnIgG8@public.gmane.org>
2016-07-01 10:55 ` Will Deacon
2016-07-01 10:55 ` Will Deacon
[not found] ` <20160701105505.GH12735-5wv7dgnIgG8@public.gmane.org>
2016-07-01 12:04 ` Robin Murphy
2016-07-01 12:04 ` Robin Murphy
[not found] ` <57765C5E.8010400-5wv7dgnIgG8@public.gmane.org>
2016-07-07 16:51 ` Lorenzo Pieralisi
2016-07-07 16:51 ` Lorenzo Pieralisi
2016-06-28 15:48 ` [PATCH v3 7/9] iommu/arm-smmu: Implement of_xlate() for SMMUv3 Robin Murphy
2016-06-28 15:48 ` Robin Murphy
[not found] ` <6de0ca7795e1b74627ceb55dcefcfd5537f245ce.1467123945.git.robin.murphy-5wv7dgnIgG8@public.gmane.org>
2016-07-01 12:35 ` Will Deacon
2016-07-01 12:35 ` Will Deacon
[not found] ` <20160701123507.GJ12735-5wv7dgnIgG8@public.gmane.org>
2016-07-01 13:26 ` Robin Murphy
2016-07-01 13:26 ` Robin Murphy
2016-06-28 15:48 ` [PATCH v3 8/9] iommu/arm-smmu: Support non-PCI devices with SMMUv3 Robin Murphy
2016-06-28 15:48 ` Robin Murphy
[not found] ` <19b0d973e170bebfa57157047bf76499de2a6d33.1467123945.git.robin.murphy-5wv7dgnIgG8@public.gmane.org>
2016-07-01 12:40 ` Will Deacon [this message]
2016-07-01 12:40 ` Will Deacon
[not found] ` <20160701124036.GK12735-5wv7dgnIgG8@public.gmane.org>
2016-07-01 13:05 ` Robin Murphy
2016-07-01 13:05 ` Robin Murphy
2016-06-28 15:48 ` [PATCH v3 9/9] iommu/arm-smmu: Set PRIVCFG in stage 1 STEs Robin Murphy
2016-06-28 15:48 ` Robin Murphy
2016-06-28 16:18 ` [RFC 1/2] iommu/dma: Restrict IOVAs to physical memory layout Robin Murphy
2016-06-28 16:18 ` Robin Murphy
[not found] ` <CALRxmdCuxLPogPTwpn2-B=PU=Ry0eNtgs2z+iZBPYtDc3NX-hQ@mail.gmail.com>
[not found] ` <CALRxmdCuxLPogPTwpn2-B=PU=Ry0eNtgs2z+iZBPYtDc3NX-hQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2016-07-01 16:03 ` Stuart Yoder
2016-07-01 16:03 ` Stuart Yoder
[not found] ` <HE1PR04MB1641583BE6AFF39AF1BFCEFB8D250-6LN7OEpIatU5tNmRkpaxD89NdZoXdze2vxpqHgZTriW3zl9H0oFU5g@public.gmane.org>
2016-07-01 16:15 ` Robin Murphy
2016-07-01 16:15 ` Robin Murphy
[not found] ` <57769724.4040801-5wv7dgnIgG8@public.gmane.org>
2016-07-01 17:39 ` Robin Murphy
2016-07-01 17:39 ` Robin Murphy
[not found] ` <5776AAD8.5030704-5wv7dgnIgG8@public.gmane.org>
2016-07-01 18:53 ` Stuart Yoder
2016-07-01 18:53 ` Stuart Yoder
2016-06-28 16:18 ` [RFC 2/2] iommu/dma: Identity-map non-RAM regions Robin Murphy
2016-06-28 16:18 ` Robin Murphy
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=20160701124036.GK12735@arm.com \
--to=will.deacon-5wv7dgnigg8@public.gmane.org \
--cc=devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org \
--cc=linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org \
--cc=robin.murphy-5wv7dgnIgG8@public.gmane.org \
--cc=thunder.leizhen-hv44wF8Li93QT0dZR+AlfA@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: link
Be 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.