From: Krzysztof Kozlowski <krzk@kernel.org>
To: Shiraz Hashim <quic_shashim@quicinc.com>,
Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Cc: Mukesh Ojha <quic_mojha@quicinc.com>,
Bjorn Andersson <andersson@kernel.org>,
Mathieu Poirier <mathieu.poirier@linaro.org>,
Rob Herring <robh@kernel.org>,
Krzysztof Kozlowski <krzk+dt@kernel.org>,
Conor Dooley <conor+dt@kernel.org>,
Konrad Dybcio <konradybcio@kernel.org>,
Bartosz Golaszewski <bartosz.golaszewski@linaro.org>,
Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>,
linux-arm-msm@vger.kernel.org, linux-remoteproc@vger.kernel.org,
devicetree@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH 1/6] dt-bindings: remoteproc: qcom,pas-common: Introduce iommus and qcom,devmem property
Date: Thu, 10 Oct 2024 09:15:59 +0200 [thread overview]
Message-ID: <f94de63b-2ca3-4749-b008-b47d6df8e1ff@kernel.org> (raw)
In-Reply-To: <20241009140419.GH1421305@hu-shashim-hyd.qualcomm.com>
On 09/10/2024 16:04, Shiraz Hashim wrote:
> On Mon, Oct 07, 2024 at 06:25:01PM +0200, Dmitry Baryshkov wrote:
>> On Mon, 7 Oct 2024 at 17:35, Mukesh Ojha <quic_mojha@quicinc.com> wrote:
>>>
>>> On Sun, Oct 06, 2024 at 10:38:01PM +0300, Dmitry Baryshkov wrote:
>>>> On Sat, Oct 05, 2024 at 02:53:54AM GMT, Mukesh Ojha wrote:
>>>>> From: Shiraz Hashim <quic_shashim@quicinc.com>
>>>>>
>>>>> Qualcomm’s PAS implementation for remote processors only supports a
>>>>> single stage of IOMMU translation and is presently managed by the
>>>>> Qualcomm EL2 hypervisor (QHEE) if it is present. In the absence of QHEE,
>>>>> such as with a KVM hypervisor, IOMMU translations need to be set up by
>>>>> the KVM host. Remoteproc needs carveout memory region and its resource
>>>>> (device memory) permissions to be set before it comes up, and this
>>>>> information is presently available statically with QHEE.
>>>>>
>>>>> In the absence of QHEE, the boot firmware needs to overlay this
>>>>> information based on SoCs running with either QHEE or a KVM hypervisor
>>>>> (CPUs booted in EL2).
>>>>>
>>>>> The qcom,devmem property provides IOMMU devmem translation information
>>>>> intended for non-QHEE based systems.
>>>>>
>>>>> Signed-off-by: Shiraz Hashim <quic_shashim@quicinc.com>
>>>>> Co-Developed-by: Mukesh Ojha <quic_mojha@quicinc.com>
>>>>> Signed-off-by: Mukesh Ojha <quic_mojha@quicinc.com>
>>>>> ---
>>>>> .../bindings/remoteproc/qcom,pas-common.yaml | 42 +++++++++++++++++++
>>>>> .../bindings/remoteproc/qcom,sa8775p-pas.yaml | 20 +++++++++
>>>>> 2 files changed, 62 insertions(+)
>>>>>
>>>>> diff --git a/Documentation/devicetree/bindings/remoteproc/qcom,pas-common.yaml b/Documentation/devicetree/bindings/remoteproc/qcom,pas-common.yaml
>>>>> index 63a82e7a8bf8..068e177ad934 100644
>>>>> --- a/Documentation/devicetree/bindings/remoteproc/qcom,pas-common.yaml
>>>>> +++ b/Documentation/devicetree/bindings/remoteproc/qcom,pas-common.yaml
>>>>> @@ -52,6 +52,48 @@ properties:
>>>>> minItems: 1
>>>>> maxItems: 3
>>>>>
>>>>> + iommus:
>>>>> + maxItems: 1
>>>>> +
>>>>> + qcom,devmem:
>>>>> + $ref: /schemas/types.yaml#/definitions/uint32-matrix
>>>>> + description:
>>>>> + Qualcomm’s PAS implementation for remote processors only supports a
>>>>> + single stage of IOMMU translation and is presently managed by the
>>>>> + Qualcomm EL2 hypervisor (QHEE) if it is present. In the absence of QHEE,
>>>>> + such as with a KVM hypervisor, IOMMU translations need to be set up by
>>>>> + the KVM host. Remoteproc might need some device resources and related
>>>>> + access permissions to be set before it comes up, and this information is
>>>>> + presently available statically with QHEE.
>>>>> +
>>>>> + In the absence of QHEE, the boot firmware needs to overlay this
>>>>> + information based on SoCs running with either QHEE or a KVM hypervisor
>>>>> + (CPUs booted in EL2).
>>>>> +
>>>>> + The qcom,devmem property provides IOMMU devmem translation information
>>>>> + intended for non-QHEE based systems. It is an array of u32 values
>>>>> + describing the device memory regions for which IOMMU translations need to
>>>>> + be set up before bringing up Remoteproc. This array consists of 4-tuples
>>>>> + defining the device address, physical address, size, and attribute flags
>>>>> + with which it has to be mapped.
>>>>
>>>> I'd expect that this kind of information is hardware-dependent. As such
>>>> it can go to the driver itself, rather than the device tree. The driver
>>>> can use compatible string to select the correct table.
>>>>
>>>
>>> IIUC, are you saying that to move this into driver file and override the
>>> compatible string via overlay ?
>>
>> Ideally we should live without compat overrides. On the other hand,
>> sc7180 and sc7280 provide an example of doing exactly that.
>
> I am not sure if there can arise a case where updated adsp firmware
> for particular board(s) may require additional access.
>
> Having it in device tree adds a convenience to deal with such
> variance.
>
That's a downstream argument... Just look at the downstream DTS.
Everything, even software properties, can be added to DT, right?
Best regards,
Krzysztof
next prev parent reply other threads:[~2024-10-10 7:16 UTC|newest]
Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-10-04 21:23 [PATCH 0/6] Peripheral Image Loader support for Qualcomm SoCs Mukesh Ojha
2024-10-04 21:23 ` [PATCH 1/6] dt-bindings: remoteproc: qcom,pas-common: Introduce iommus and qcom,devmem property Mukesh Ojha
2024-10-06 19:38 ` Dmitry Baryshkov
2024-10-07 15:35 ` Mukesh Ojha
2024-10-07 16:25 ` Dmitry Baryshkov
2024-10-09 14:04 ` Shiraz Hashim
2024-10-10 7:15 ` Krzysztof Kozlowski [this message]
2024-10-10 8:30 ` Shiraz Hashim
2024-10-04 21:23 ` [PATCH 2/6] remoteproc: qcom: Add iommu map_unmap helper function Mukesh Ojha
2024-10-06 2:04 ` kernel test robot
2024-10-06 4:29 ` kernel test robot
2024-10-04 21:23 ` [PATCH 3/6] remoteproc: qcom: Add helper function to support IOMMU devmem translation Mukesh Ojha
2024-10-07 8:08 ` neil.armstrong
2024-10-07 14:37 ` Mukesh Ojha
2024-10-10 6:59 ` neil.armstrong
2024-10-17 21:25 ` Konrad Dybcio
2024-10-04 21:23 ` [PATCH 4/6] remoteproc: qcom: Add support to parse qcom,devmem property Mukesh Ojha
2024-10-04 21:23 ` [PATCH 5/6] remoteproc: qcom: Add support of SHM bridge to enable memory protection Mukesh Ojha
2024-10-05 22:26 ` kernel test robot
2024-10-25 19:03 ` Konrad Dybcio
2024-10-04 21:23 ` [PATCH 6/6] remoteproc: qcom: Enable map/unmap and SHM bridge support Mukesh Ojha
2024-10-07 8:05 ` neil.armstrong
2024-10-07 14:52 ` Mukesh Ojha
2024-10-08 6:21 ` Mukesh Ojha
2024-10-10 6:57 ` neil.armstrong
2024-10-11 5:05 ` Shiraz Hashim
2024-10-11 6:23 ` Dmitry Baryshkov
2024-10-11 7:09 ` Shiraz Hashim
2024-10-11 7:12 ` Dmitry Baryshkov
2024-10-14 12:31 ` Shiraz Hashim
2024-10-14 12:38 ` Dmitry Baryshkov
2024-10-11 7:11 ` Mukesh Ojha
2024-10-11 7:09 ` neil.armstrong
2024-10-14 12:29 ` Shiraz Hashim
2024-10-25 19:07 ` Konrad Dybcio
2024-10-06 19:34 ` [PATCH 0/6] Peripheral Image Loader support for Qualcomm SoCs Dmitry Baryshkov
2024-10-07 18:39 ` Mukesh Ojha
2024-10-09 13:50 ` Shiraz Hashim
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=f94de63b-2ca3-4749-b008-b47d6df8e1ff@kernel.org \
--to=krzk@kernel.org \
--cc=andersson@kernel.org \
--cc=bartosz.golaszewski@linaro.org \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=dmitry.baryshkov@linaro.org \
--cc=konradybcio@kernel.org \
--cc=krzk+dt@kernel.org \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-remoteproc@vger.kernel.org \
--cc=manivannan.sadhasivam@linaro.org \
--cc=mathieu.poirier@linaro.org \
--cc=quic_mojha@quicinc.com \
--cc=quic_shashim@quicinc.com \
--cc=robh@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.