lkml.org 
[lkml]   [2014]   [Jun]   [16]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH v2] devicetree: Add generic IOMMU device tree bindings
    Hi Stuart,

    On Mon, Jun 16, 2014 at 05:56:32PM +0100, Stuart Yoder wrote:
    > > Do you have use-cases where you really need to change these mappings
    > > dynamically?
    >
    > Yes. In the case of a PCI bus-- you may not know in advance how many
    > PCI devices there are until you probe the bus. We have another FSL
    > proprietary bus we call the "fsl-mc" bus that is similar.

    For that case, though, you could still describe an algorithmic
    transformation from RequesterID to StreamID which corresponds to a fixed
    mapping.

    > Another thing to consider-- starting with SMMUv2, as you know, there
    > is a new distributed architecture with multiple TBUs and a centralized
    > TCU that walks the SMMU page tables. So instead of sprinkling multiple
    > SMMUs all over an SoC you now have the option a 1 central TCU and sprinkling
    > multiple TBUs around. However, this means that the stream ID namespace
    > is now global and can be pretty limited. In the SMMU implementation we
    > have there are only 64 stream ID total for our Soc. But we have many more
    > masters than that.
    >
    > So we look at stream IDs as really corresponding to an 'isolation context'
    > and not to a bus master. An isolation context is the domain you are
    > trying to isolate with the SMMU. Devices that all belong to the same
    > 'isolation context' can share the same stream ID, since they share
    > the same domain and page tables.

    Ok, this is more compelling.

    > So, perhaps by default some/most SMMU masters may have a default stream ID
    > of 0x0 that is used by the host...and that could be represented
    > statically in the device tree.
    >
    > But, we absolutely will need to dynamically set new stream IDs
    > into masters when a new IOMMU 'domain' is created and devices
    > are added to it. All the devices in a domain will share
    > the same stream ID.
    >
    > So whatever we do, let's please have an architecture flexible enough
    > to allow for this.

    What is the software interface to the logic that assigns the StreamIDs? Is
    it part of the SMMU, or a separate device (or set of devices)?

    Will


    \
     
     \ /
      Last update: 2014-06-16 19:21    [W:2.163 / U:0.040 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site