[RFC PATCH 1/1] iommu/arm-smmu: Add support for multiple TBU child devices

Vivek Gautam vivek.gautam at codeaurora.org
Tue Sep 26 23:42:27 PDT 2017


Hi Rob,


On 09/19/2017 07:40 PM, Rob Herring wrote:

Thanks for reviewing the patch.

> On Tue, Sep 12, 2017 at 05:31:07PM +0530, Vivek Gautam wrote:
>> ARM MMU-500 implements a TBU (uTLB) for each connected master
>> besides a single TCU which controls and manages the address
>> translations. Each of these TBUs can either be in the same
>> power domain as the master, or they can have a independent
>> power switch.
>> This design addresses the challenges to control TBU power.
>> Adding child devices for each TBUs present in the configuration
>> lets us control the power and clocks to TLBs having individual
>> power domains. The device link between master devices (such as,
>> display, and GPU) and TBU devices ensures that the master takes
>> care of powering the smmu as long as it's available.
>> When the master is not available, the TBUs are identified with
>> sid and powered on.
>>
>> Signed-off-by: Vivek Gautam <vivek.gautam at codeaurora.org>
>> ---
>>
>>   - The idea behind this patch is to handle the distributed smmu
>>     architectures, similar to MMU-500.
>>   - Untested yet.
>>   - There are still few instances where the correct tbu device has
>>     to be referenced and thus powered on to handle TLB maintenance
>>     operations.
>>
>>   .../devicetree/bindings/iommu/arm,smmu.txt         |  27 +++
>>   drivers/iommu/arm-smmu.c                           | 191 +++++++++++++++++++--
>>   2 files changed, 205 insertions(+), 13 deletions(-)
>>
>> diff --git a/Documentation/devicetree/bindings/iommu/arm,smmu.txt b/Documentation/devicetree/bindings/iommu/arm,smmu.txt
>> index d97a6bc8e608..7cf67e75022e 100644
>> --- a/Documentation/devicetree/bindings/iommu/arm,smmu.txt
>> +++ b/Documentation/devicetree/bindings/iommu/arm,smmu.txt
>> @@ -98,6 +98,18 @@ conditions.
>>                     accessed before master gets enabled and linked to its
>>                     SMMU.
>>   
>> +- child nodes:    ARM MMU-500 implements a TBU (page table cache or TLB) for
>> +                  each connected master besides a single TCU that controls
>> +                  and manages the address translations.
>> +                  Each of the child nodes represents a TBU that is attached to
>> +                  the master. This child node will have following property:
>> +
>> +  - compatibe:       must be "arm,mmu-500-tbu" for TBU child nodes of arm,mmu-500
>> +                     smmu.
>> +  - stream-id-range: array representing the starting stream id and the number
>> +                     of supported stream-ids. This gives information about
>> +                     the range of stream-ids that are supported by this TBU.
> Needs a vendor prefix.

Sure will add the vendor prefix.
This can be a generic arm-mmu500 implementation where,
a range of stream-ids are serviced by a TBU.
Would "arm,stream-id-range" make sense?

>
> Also need to document reg property. What does reg represent? If just an
> index with no correlation to h/w numbering, then perhaps stream ids
> could be put into reg instead.

Okay. Stream-ids make sense, since the reg doesn't necessarily represent
any hardware number such as channel number, etc.

Best regards
Vivek

>
> Rob
> --
> To unsubscribe from this list: send the line "unsubscribe linux-arm-msm" in
> the body of a message to majordomo at vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

-- 
The Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
a Linux Foundation Collaborative Project




More information about the linux-arm-kernel mailing list