[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20140224172850.GG2553@mudshark.cambridge.arm.com>
Date: Mon, 24 Feb 2014 17:28:50 +0000
From: Will Deacon <will.deacon@....com>
To: srikanth TS <srikantht.shivanand@...il.com>
Cc: "iommu@...ts.linux-foundation.org" <iommu@...ts.linux-foundation.org>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
"ts.srikanth@...sung.com" <ts.srikanth@...sung.com>,
"sungjinn.chung@...sung.com" <sungjinn.chung@...sung.com>
Subject: Re: your mail
On Mon, Feb 24, 2014 at 03:12:21PM +0000, srikanth TS wrote:
> Hi Will Deacon,
Hello,
> Currently SMMU driver expecting all stream ID used by respective master
> should be defined in the DT.
>
> We want to know how to handle in the case of virtual functions dynamically
> created and destroyed.
>
> Is PCI driver responsible for creating stream ID respective BDand
> requesting SMMU to add to the mapping table[stream Id to context mapping
> table]?
>
> Or is there any right way of doing it?
Correct, the driver currently doesn't support dynamic mappings (mainly
because I didn't want to try and invent something that I couldn't test).
There are a couple of ways to solve this:
(1) Add a way for a PCI RC to dynamically allocate StreamIDs on an SMMU
within a fixed range. That would probably need some code in the bus
layer, so that a bus notifier can kick and call back to the relevant
SMMU.
(2) Describe the RID -> SID mapping in the device-tree. We probably want
to avoid an enormous table, so this would only work for simple `SID =
RID + offset' or 'SID = RID & mask' cases.
How do your IDs map to each other?
Will
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists