public inbox for linux-arm-kernel@lists.infradead.org
 help / color / mirror / Atom feed
From: arnd@arndb.de (Arnd Bergmann)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v12 11/31] documentation: iommu: add binding document of Exynos System MMU
Date: Thu, 01 May 2014 17:46:03 +0200	[thread overview]
Message-ID: <8052890.tELEFf8xoX@wuerfel> (raw)
In-Reply-To: <20140501143654.GB3732@e103592.cambridge.arm.com>

On Thursday 01 May 2014 15:36:54 Dave Martin wrote:
> On Thu, May 01, 2014 at 02:29:50PM +0100, Arnd Bergmann wrote:
> > On Thursday 01 May 2014 12:15:35 Dave Martin wrote:
> > > > > I'm not sure whether there is actually a SoC today that is MSI-capable
> > > > > and contains an IOMMU, but all the components to build one are out
> > > > > there today.  GICv3 is also explicitly designed to support such
> > > > > systems.
> > > > 
> > > > A lot of SoCs have MSI integrated into the PCI root complex, which
> > > > of course is pointless from MSI perspective, as well as implying that
> > > > the MSI won't go through the IOMMU.
> > > > 
> > > > We have briefly mentioned MSI in the review of the Samsung GH7 PCI
> > > > support. It's possible that this one can either use the built-in
> > > > MSI or the one in the GICv2m.
> > > 
> > > We are likely to get non-PCI MSIs in future SoC systems too, and there
> > > are no standards governing how such systems should look.
> > 
> > I wouldn't call that MSI though -- using the same term in the code
> > can be rather confusing. There are existing SoCs that use message
> > based interrupt notification. We are probably better off modeling
> > those are regular irqchips in Linux and DT, given that they may
> > not be bound by the same constraints as PCI MSI.
> 
> We can call it what we like and maybe bury the distinction in irqchip
> drivers for some fixed-configuration cases, but it's logically the same
> concept.  Naming and subsystem factoring are implementation decisions
> for Linux.
> 
> For full dynamic assignment of pluggable devices or buses to VMs, I'm
> less sure that we can model that as plain irqchips.

I definitely hope we won't have to deal with plugging non-PCI devices
into VMs. Nothing good can come out of that.

> > Supporting this case in DT straight away is going to add a major burden.
> > If nobody can say for sure that they are actually going to do it, I'd
> > lean towards assuming that we won't need it and not putting the extra
> > complexity in.
> > 
> > If someone actually needs it later, let's make it their problem for
> > not participating in the design.
> 
> This is a fair point, but there is a difference between the bindings and
> what kind of wacky configurations a particular version of Linux actually
> supports.
> 
> DT is supposed to be a description of the hardware, not a description
> of how Linux subsystems are structured, though if the two are not
> reasonably well aligned that will lead to pain...
> 
> The key thing is to make sure the DT bindings are extensible to
> things that we can reasonably foresee.

Yes, defining them in an extensible way is always a good idea, but I
think it would be better not to define the fine details until we
actually need them in this case.

> > > > It would be 'dma-ranges'. Unfortunately that would imply that each DMA
> > > > master is connected to only one IOMMU, which you say is not necessarily
> > > > the case. The simpler case of a device is only a master on a single IOMMU
> > > > but can use multiple contexts would however work fine with dma-ranges.
> > > 
> > > Partly, yes.  The concept embodied by "dma-ranges" is correct, but the
> > > topological relationship is not: the assumption that a master device
> > > always masters onto its parent node doesn't work for non-tree-like
> > > topologies.
> > 
> > In almost all cases it will fit. When it doesn't, we can work around it by
> > defining virtual address spaces the way that the PCI binding does. The only
> > major exception that we know we have to handle is IOMMUs.
> 
> My concern here is that as new exceptions and oddball or complex systems
> crop up, we will end up repeatedly inventing different bodges to solve
> essentially the same problem.
> 
> Unlike some of the other situations we have to deal with, these are valid
> hardware configurations rather than quirks or broken systems.

Can you give an example where this would be done for a good reason?
I can't come up with an example that doesn't involve the hardware
design being seriously screwed.

	Arnd

  parent reply	other threads:[~2014-05-01 15:46 UTC|newest]

Thread overview: 78+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-04-27  7:37 [PATCH v12 00/31] iommu/exynos: Fixes and Enhancements of System MMU driver with DT Shaik Ameer Basha
2014-04-27  7:37 ` [PATCH v12 01/31] iommu/exynos: do not include removed header Shaik Ameer Basha
2014-04-27  7:37 ` [PATCH v12 02/31] iommu/exynos: add missing cache flush for removed page table entries Shaik Ameer Basha
2014-04-27  7:37 ` [PATCH v12 03/31] iommu/exynos: change error handling when page table update is failed Shaik Ameer Basha
2014-04-27  7:37 ` [PATCH v12 04/31] iommu/exynos: fix L2TLB invalidation Shaik Ameer Basha
2014-04-27  7:37 ` [PATCH v12 05/31] iommu/exynos: remove prefetch buffer setting Shaik Ameer Basha
2014-04-27  7:37 ` [PATCH v12 06/31] iommu/exynos: allocate lv2 page table from own slab Shaik Ameer Basha
2014-04-27  7:37 ` [PATCH v12 07/31] iommu/exynos: always enable runtime PM Shaik Ameer Basha
2014-04-27  7:37 ` [PATCH v12 08/31] iommu/exynos: handle one instance of sysmmu with a device descriptor Shaik Ameer Basha
2014-04-27  7:37 ` [PATCH v12 09/31] iommu/exynos: remove dbgname from drvdata of a System MMU Shaik Ameer Basha
2014-04-27  7:37 ` [PATCH v12 10/31] iommu/exynos: use managed device helper functions Shaik Ameer Basha
2014-04-27  7:37 ` [PATCH v12 11/31] documentation: iommu: add binding document of Exynos System MMU Shaik Ameer Basha
2014-04-27 18:23   ` Arnd Bergmann
2014-04-28 10:39     ` Thierry Reding
2014-04-28 10:56       ` Arnd Bergmann
2014-04-28 11:18         ` Thierry Reding
2014-04-28 12:05           ` Arnd Bergmann
2014-04-28 12:49             ` Thierry Reding
2014-04-28 19:30             ` Will Deacon
2014-04-28 19:55               ` Arnd Bergmann
2014-04-29 18:16                 ` Dave Martin
2014-04-29 20:07                   ` Grant Grundler
2014-04-29 21:00                     ` Arnd Bergmann
2014-04-30 15:14                       ` Dave Martin
2014-05-01 14:02                       ` Cho KyongHo
2014-05-01 14:12                         ` Arnd Bergmann
2014-05-01 14:50                         ` Dave Martin
2014-05-01 17:41                       ` Stephen Warren
2014-05-02 11:41                         ` Dave Martin
2014-04-29 20:46                   ` Arnd Bergmann
2014-05-01 11:15                     ` Dave Martin
2014-05-01 13:29                       ` Arnd Bergmann
2014-05-01 14:36                         ` Dave Martin
2014-05-01 15:11                           ` Marc Zyngier
2014-05-01 15:53                             ` Arnd Bergmann
2014-05-01 16:24                               ` Marc Zyngier
2014-05-01 15:46                           ` Arnd Bergmann [this message]
2014-05-01 16:42                         ` Grant Grundler
2014-05-15 20:37             ` Thierry Reding
2014-05-16  0:39               ` Cho KyongHo
2014-04-28 17:52           ` Stephen Warren
2014-04-29  5:55       ` Hiroshi Doyu
2014-04-27  7:37 ` [PATCH v12 12/31] iommu/exynos: support for device tree Shaik Ameer Basha
2014-04-27  7:37 ` [PATCH v12 13/31] iommu/exynos: gating clocks of master H/W Shaik Ameer Basha
2014-04-27  7:37 ` [PATCH v12 14/31] iommu/exynos: remove custom fault handler Shaik Ameer Basha
2014-04-27  7:37 ` [PATCH v12 15/31] iommu/exynos: handle 'mmu-masters' property of DT and improve handling sysmmu Shaik Ameer Basha
2014-04-27 18:17   ` Arnd Bergmann
2014-05-01 14:08     ` Cho KyongHo
2014-04-27  7:37 ` [PATCH v12 16/31] iommu/exynos: turn on useful configuration options Shaik Ameer Basha
2014-04-27  7:37 ` [PATCH v12 17/31] iommu/exynos: add support for power management subsystems Shaik Ameer Basha
2014-04-27  7:37 ` [PATCH v12 18/31] iommu/exynos: allow having multiple System MMUs for a master H/W Shaik Ameer Basha
2014-04-28 10:38   ` Tushar Behera
2014-05-01 14:10     ` Cho KyongHo
2014-05-06 18:05   ` Tomasz Figa
2014-05-09 10:54     ` Cho KyongHo
2014-04-27  7:37 ` [PATCH v12 19/31] iommu/exynos: change rwlock to spinlock Shaik Ameer Basha
2014-04-27  7:37 ` [PATCH v12 20/31] iommu/exynos: add devices attached to the System MMU to an IOMMU group Shaik Ameer Basha
2014-04-27  7:37 ` [PATCH v12 21/31] iommu/exynos: fix address handling Shaik Ameer Basha
2014-04-27  7:37 ` [PATCH v12 22/31] iommu/exynos: use exynos-iommu specific typedef Shaik Ameer Basha
2014-04-27  7:37 ` [PATCH v12 23/31] iommu/exynos: use simpler function to get MMU version Shaik Ameer Basha
2014-04-27  7:37 ` [PATCH v12 24/31] iommu/exynos: apply workaround of caching fault page table entries Shaik Ameer Basha
2014-04-27  7:37 ` [PATCH v12 25/31] iommu/exynos: enhanced error messages Shaik Ameer Basha
2014-04-27  7:37 ` [PATCH v12 26/31] clk: exynos: add gate clock descriptions of System MMU Shaik Ameer Basha
2014-04-27  7:37 ` [PATCH v12 27/31] ARM: dts: add System MMU nodes of exynos4 series Shaik Ameer Basha
2014-04-27  7:38 ` [PATCH v12 28/31] ARM: dts: add System MMU nodes of exynos4210 Shaik Ameer Basha
2014-04-27  7:38 ` [PATCH v12 29/31] ARM: dts: add System MMU nodes of exynos4x12 Shaik Ameer Basha
2014-04-27  7:38 ` [PATCH v12 30/31] ARM: dts: add System MMU nodes of exynos5250 Shaik Ameer Basha
2014-04-27 17:39   ` Vikas Sajjan
2014-04-28 23:13     ` Doug Anderson
2014-05-01 14:16       ` Cho KyongHo
2014-04-27  7:38 ` [PATCH v12 31/31] ARM: dts: add System MMU nodes of exynos5420 Shaik Ameer Basha
2014-04-28  8:34 ` [PATCH v12 00/31] iommu/exynos: Fixes and Enhancements of System MMU driver with DT Arnd Bergmann
2014-04-30  4:50   ` Shaik Ameer Basha
2014-04-30 10:57   ` Shaik Ameer Basha
2014-05-06 17:59     ` Joerg Roedel
2014-05-06 18:08       ` Tomasz Figa
2014-05-07  0:44         ` Cho KyongHo
2014-05-06 18:21       ` Arnd Bergmann

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=8052890.tELEFf8xoX@wuerfel \
    --to=arnd@arndb.de \
    --cc=linux-arm-kernel@lists.infradead.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox