[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20240818152515.GA104481-robh@kernel.org>
Date: Sun, 18 Aug 2024 09:25:15 -0600
From: Rob Herring <robh@...nel.org>
To: Marc Gonzalez <mgonzalez@...ebox.fr>
Cc: Rob Clark <robdclark@...il.com>, Will Deacon <will@...nel.org>,
Robin Murphy <robin.murphy@....com>, Joerg Roedel <joro@...tes.org>,
Krzysztof Kozlowski <krzk+dt@...nel.org>,
Conor Dooley <conor+dt@...nel.org>, iommu@...ts.linux.dev,
linux-arm-msm@...r.kernel.org, linux-arm-kernel@...ts.infradead.org,
linux-kernel@...r.kernel.org, devicetree@...r.kernel.org,
Bjorn Andersson <andersson@...nel.org>,
Konrad Dybcio <konradybcio@...nel.org>,
Arnaud Vrac <avrac@...ebox.fr>,
Pierre-Hugues Husson <phhusson@...ebox.fr>,
Marijn Suijten <marijn.suijten@...ainline.org>
Subject: Re: [PATCH 1/2] dt-bindings: arm-smmu: Add
qcom,last-ctx-bank-reserved
On Wed, Aug 14, 2024 at 03:59:55PM +0200, Marc Gonzalez wrote:
> On qcom msm8998, writing to the last context bank of lpass_q6_smmu
> (base address 0x05100000) produces a system freeze & reboot.
>
> Specifically, here:
>
> qsmmu->bypass_cbndx = smmu->num_context_banks - 1;
> arm_smmu_cb_write(smmu, qsmmu->bypass_cbndx, ARM_SMMU_CB_SCTLR, 0);
>
> and here:
>
> arm_smmu_write_context_bank(smmu, i);
> arm_smmu_cb_write(smmu, i, ARM_SMMU_CB_FSR, ARM_SMMU_CB_FSR_FAULT);
>
> It is likely that FW reserves the last context bank for its own use,
> thus a simple work-around would be: DON'T USE IT in Linux.
>
> Signed-off-by: Marc Gonzalez <mgonzalez@...ebox.fr>
> ---
> Documentation/devicetree/bindings/iommu/arm,smmu.yaml | 6 ++++++
> 1 file changed, 6 insertions(+)
>
> diff --git a/Documentation/devicetree/bindings/iommu/arm,smmu.yaml b/Documentation/devicetree/bindings/iommu/arm,smmu.yaml
> index 280b4e49f2191..f9b23aef351b0 100644
> --- a/Documentation/devicetree/bindings/iommu/arm,smmu.yaml
> +++ b/Documentation/devicetree/bindings/iommu/arm,smmu.yaml
> @@ -204,6 +204,12 @@ properties:
> access to SMMU configuration registers. In this case non-secure aliases of
> secure registers have to be used during SMMU configuration.
>
> + qcom,last-ctx-bank-reserved:
> + type: boolean
> + description:
> + FW reserves the last context bank of this SMMU for its own use.
> + If Linux tries to use it, Linux gets nuked.
How is this Qualcomm specific? Presumably any implementation could do
this if there's no way to properly partition things. Robin?
Also, this property isn't very flexible. What happens when it is not the
last bank or more than 1 bank reserved? This should probably be a mask
instead.
Rob
Powered by blists - more mailing lists