On 01/07/2020 20:00, Krishna Reddy wrote:
>>>>>> +        items:
>>>>>> +          - enum:
>>>>>> +              - nvdia,tegra194-smmu
>>>>>> +          - const: arm,mmu-500
>>>>> Is the fallback compatible appropriate here? If software treats this as a 
>>>>> standard MMU-500 it will only program the first instance (because the 
>>>>> second isn't presented as a separate MMU-500) - is there any way that 
>>>>> isn't going to blow up?
>>>> When compatible is set to both nvidia,tegra194-smmu and arm,mmu-500, 
>>>> implementation override ensure that both instances are programmed. Isn't 
>>>> it? I am not sure I follow your comment fully.
>>> The problem is, if for some reason someone had a Tegra194, but only set the 
>>> compatible string to 'arm,mmu-500' it would assume that it was a normal 
>>> arm,mmu-500 and only one instance would be programmed. We always want at 
>>> least 2 of the 3 instances >>programmed and so we should only match 
>>> 'nvidia,tegra194-smmu'. In fact, I think that we also need to update the 
>>> arm_smmu_of_match table to add 'nvidia,tegra194-smmu' with the data set to 
>>> &arm_mmu500.
>> In that case, new binding "nvidia,smmu-v2" can be added with data set to 
>> &arm_mmu500 and enumeration would have nvidia,tegra194-smmu and another 
>> variant for next generation SoC in future. 

>I think you would be better off with nvidia,smmu-500 as smmu-v2 appears to be 
>something different. I see others have a smmu-v2 but I am not sure if that is 
>legacy. We have an smmu-500 and so that would seem more appropriate.

I tried to use the binding synonymous to other vendors. 
V2 is the architecture version.  MMU-500 is the actual implementation from ARM 
based on V2 arch.  As we just use the MMU-500 IP as it is, It can be named as 
nvidia,smmu-500 or similar as well.
Others probably having their own implementation based on V2 arch.

iommu mailing list

Reply via email to