linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
From: arnd@arndb.de (Arnd Bergmann)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v2] devicetree: Add generic IOMMU device tree bindings
Date: Tue, 24 Jun 2014 20:20:56 +0200	[thread overview]
Message-ID: <4855051.rhxSrNMNLg@wuerfel> (raw)
In-Reply-To: <20140624181150.GB4067@arm.com>

On Tuesday 24 June 2014 19:11:50 Will Deacon wrote:
> On Tue, Jun 24, 2014 at 06:57:44PM +0100, Olav Haugan wrote:
> > On 6/24/2014 2:18 AM, Will Deacon wrote:
> > > On Sat, Jun 21, 2014 at 12:16:25AM +0100, Olav Haugan wrote:
> > >> We have multiple-master SMMUs and each master emits a variable number of
> > >> StreamIDs. However, we have to apply a mask (the ARM SMMU spec allows
> > >> for this) to the StreamIDs due to limited number of StreamID 2 Context
> > >> Bank entries in the SMMU. If my understanding is correct we would
> > >> represent this in the DT like this:
> > >>
> > >>    iommu {
> > >>            #address-cells = <2>;
> > >>            #size-cells = <0>;
> > >>    };
> > >>
> > >>    master at a {
> > >>            ...
> > >>            iommus = <&iommu StreamID0 MASK0>,
> > >>                     <&iommu StreamID1 MASK1>,
> > >>                     <&iommu StreamID2 MASK2>;
> > >>    };
> > > 
> > > Stupid question, but why not simply describe the masked IDs? What use does
> > > the `raw' ID have to Linux?
> > 
> > We do describe the masked StreamID (SID) but we need to specify the mask
> > that the SMMU should apply to the incoming SIDs, right?
> > 
> > We have a bus master that emits 43 unique SIDs. However, we have only 40
> > SMMU_SMRn registers in the SMMU. So we need to mask out some of the
> > incoming SID bits so that the 43 SIDs can match one of 40 entries in the
> > SMR.
> 
> Hmm, so you're talking about stream matching, right? That doesn't belong in
> the device-tree. I appreciate that the current driver does a terrible job at
> allocating the SMRs (it's bloody difficult!), but we should try to improve
> the dynamic behaviour instead of moving configuration of the SMMU out into
> device-tree, where it's inflexible at best.
> 
> There have been patches previously posted by Andreas Herrmann helping here.
> I'd be glad to see them revived.

Note that there are areas where we have in the past decided that dynamic
configuration is just too hard for the kernel to do and that we're better
off putting the configuration into DT. Pinctrl and clocks are at least
partially in that category.

It's always best if you can get the kernel to do things in the ideal
way where that is possible, but getting there may be just not worth it.

I have no idea where it should be for SMMU, but it's something to consider:
if you can take reasonable shortcuts by reading parts of the configuration
from DT, you may just as well do that.

	Arnd

  reply	other threads:[~2014-06-24 18:20 UTC|newest]

Thread overview: 71+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <1400877218-4113-1-git-send-email-thierry.reding@gmail.com>
2014-05-30 13:16 ` [PATCH v2] devicetree: Add generic IOMMU device tree bindings Rob Herring
2014-05-30 19:06   ` Arnd Bergmann
2014-05-30 19:29     ` Hiroshi Doyu
2014-05-30 19:54       ` Arnd Bergmann
2014-06-01  9:55         ` Will Deacon
2014-06-04 13:39           ` Thierry Reding
2014-06-04 13:44         ` Thierry Reding
2014-06-04 13:53           ` Arnd Bergmann
2014-06-04 13:56           ` Will Deacon
2014-06-04 14:01             ` Arnd Bergmann
2014-06-04 16:39               ` Will Deacon
2014-05-30 19:31     ` Rob Herring
2014-05-30 19:49       ` Arnd Bergmann
2014-06-02 10:41         ` Dave Martin
2014-06-04 14:35           ` Thierry Reding
2014-06-04 16:41             ` Will Deacon
2014-06-04 21:00               ` Thierry Reding
2014-06-05 19:10               ` Varun Sethi
2014-06-16 15:27                 ` Will Deacon
2014-06-16 16:56                   ` Stuart Yoder
2014-06-16 17:04                     ` Will Deacon
2014-06-16 17:30                       ` Arnd Bergmann
2014-06-16 18:53                       ` Stuart Yoder
2014-06-17 10:26                         ` Varun Sethi
2014-06-17 10:43                           ` Will Deacon
2014-06-17 11:21                             ` Varun Sethi
2014-06-17 14:50                               ` Stuart Yoder
2014-06-18  9:29                                 ` Will Deacon
2014-06-17 14:39                           ` Stuart Yoder
2014-06-20 23:16     ` Olav Haugan
2014-06-24  9:18       ` Will Deacon
2014-06-24 17:57         ` Olav Haugan
2014-06-24 18:11           ` Will Deacon
2014-06-24 18:20             ` Arnd Bergmann [this message]
2014-06-25  9:17               ` Will Deacon
2014-06-25  9:27                 ` Arnd Bergmann
2014-06-25  9:38                   ` Will Deacon
2014-06-25  9:48                     ` Arnd Bergmann
2014-06-25  9:57                       ` Will Deacon
2014-06-25 10:12                         ` Arnd Bergmann
2014-06-25 10:14                           ` Will Deacon
2014-06-24 21:35             ` Olav Haugan
2014-06-25  9:18               ` Will Deacon
2014-06-27 22:23                 ` Olav Haugan
2014-06-30  9:52                   ` Will Deacon
2014-07-09  1:07                     ` Olav Haugan
2014-07-09 10:54                       ` Will Deacon
2014-07-10 22:32                         ` Olav Haugan
2014-07-11 12:24                           ` Will Deacon
     [not found] <20140606224542.GA22188@mithrandir>
2014-06-07 13:22 ` Arnd Bergmann
2014-06-09 10:49   ` Thierry Reding
2014-05-23 20:36 Thierry Reding
2014-05-29 15:52 ` Stephen Warren
2014-05-30  7:30   ` Thierry Reding
2014-05-30 11:27     ` Dave Martin
2014-05-30 19:11       ` Arnd Bergmann
2014-06-02 10:56         ` Dave Martin
2014-06-04 21:12       ` Thierry Reding
2014-06-16 12:57         ` Will Deacon
2014-06-17 11:58           ` Thierry Reding
2014-06-17 12:18             ` Will Deacon
2014-06-17 23:37               ` Thierry Reding
2014-06-18 10:14                 ` Will Deacon
2014-06-20 15:53                   ` Arnd Bergmann
2014-06-20 17:50                     ` Will Deacon
2014-06-20 18:55                       ` Arnd Bergmann
2014-05-30 11:22 ` Dave Martin
2014-05-30 19:01   ` Arnd Bergmann
2014-06-02 11:44     ` Dave Martin
2014-06-04 21:32     ` Thierry Reding
2014-06-05  9:42       ` 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=4855051.rhxSrNMNLg@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;
as well as URLs for NNTP newsgroup(s).