[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <a9e0b213-0601-01fa-8664-e292bf7c81aa@arm.com>
Date: Wed, 1 Jul 2020 20:03:10 +0100
From: Robin Murphy <robin.murphy@....com>
To: Jon Hunter <jonathanh@...dia.com>,
Krishna Reddy <vdumpa@...dia.com>
Cc: "joro@...tes.org" <joro@...tes.org>,
"will@...nel.org" <will@...nel.org>,
"linux-arm-kernel@...ts.infradead.org"
<linux-arm-kernel@...ts.infradead.org>,
"iommu@...ts.linux-foundation.org" <iommu@...ts.linux-foundation.org>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
"linux-tegra@...r.kernel.org" <linux-tegra@...r.kernel.org>,
Thierry Reding <treding@...dia.com>,
Yu-Huan Hsu <YHsu@...dia.com>,
Sachin Nikam <Snikam@...dia.com>,
Pritesh Raithatha <praithatha@...dia.com>,
Timo Alho <talho@...dia.com>,
Bitan Biswas <bbiswas@...dia.com>,
Mikko Perttunen <mperttunen@...dia.com>,
Nicolin Chen <nicolinc@...dia.com>,
Bryan Huntsman <bhuntsman@...dia.com>,
"nicoleotsuka@...il.com" <nicoleotsuka@...il.com>
Subject: Re: [PATCH v8 2/3] dt-bindings: arm-smmu: Add binding for Tegra194
SMMU
On 2020-07-01 19:47, Jon Hunter wrote:
>
> On 01/07/2020 19:28, Krishna Reddy wrote:
>>>> + - description: NVIDIA SoCs that use more than one "arm,mmu-500"
>>> Hmm, there must be a better way to word that to express that it only applies to the sets of SMMUs that must be programmed identically, and not any other independent MMU-500s that might also happen to be in the same SoC.
>>
>> Let me reword it to "NVIDIA SoCs that must program multiple MMU-500s identically".
>>
>>>> + 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.
Right, the main concern is if the shiny new DT gets passed to an older
kernel (or other OS entirely) which doesn't know the
"nvdia,tegra194-smmu" compatible but would match on "arm,mmu-500" and
bind a standard driver thinking it's going to work OK. The user would
probably prefer that no driver matched and both instances were left
turned off, than face the fallout of only one of them being set up.
Robin.
Powered by blists - more mailing lists