Message ID | 20221114-narmstrong-sm8550-upstream-remoteproc-v1-0-104c34cb3b91@linaro.org |
---|---|
Headers | show |
Series | remoteproc: qcom_q6v5_pas: add support for SM8550 adsp, cdsp & mpss | expand |
On 16/11/2022 11:20, Neil Armstrong wrote: > This documents the compatible for the component used to boot the > aDSP, cDSP and MPSS on the SM8550 SoC. > > The SM8550 boot process on SM8550 now requires a secondary "Devicetree" > firmware to be passed along the main Firmware, and the cDSP a new power > domain named "NSP". > > Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org> > --- > .../devicetree/bindings/remoteproc/qcom,adsp.yaml | 60 +++++++++++++++++++++- > 1 file changed, 59 insertions(+), 1 deletion(-) > > diff --git a/Documentation/devicetree/bindings/remoteproc/qcom,adsp.yaml b/Documentation/devicetree/bindings/remoteproc/qcom,adsp.yaml > index db9e0f0c2bea..678cb73f10de 100644 > --- a/Documentation/devicetree/bindings/remoteproc/qcom,adsp.yaml > +++ b/Documentation/devicetree/bindings/remoteproc/qcom,adsp.yaml > @@ -55,6 +55,9 @@ properties: > - qcom,sm8450-cdsp-pas > - qcom,sm8450-mpss-pas > - qcom,sm8450-slpi-pas > + - qcom,sm8550-adsp-pas > + - qcom,sm8550-cdsp-pas > + - qcom,sm8550-mpss-pas > > reg: > maxItems: 1 > @@ -116,8 +119,13 @@ properties: > $ref: /schemas/types.yaml#/definitions/string > description: Firmware name for the Hexagon core > > + qcom,dtb-firmware-name: > + $ref: /schemas/types.yaml#/definitions/string > + description: Devicetree Firmware name for the Hexagon core Not sure about this one. Rob, Don't we want rather to have multiple items in firmware-name? > + > memory-region: > - maxItems: 1 > + minItems: 1 > + maxItems: 2 > description: Reference to the reserved-memory for the Hexagon core > > qcom,qmp: > @@ -212,6 +220,9 @@ allOf: > - qcom,sm8450-cdsp-pas > - qcom,sm8450-slpi-pas > - qcom,sm8450-mpss-pas > + - qcom,sm8550-adsp-pas > + - qcom,sm8550-cdsp-pas > + - qcom,sm8550-mpss-pas > then: > properties: > clocks: > @@ -327,6 +338,8 @@ allOf: > - qcom,sm8450-adsp-pas > - qcom,sm8450-cdsp-pas > - qcom,sm8450-slpi-pas > + - qcom,sm8550-adsp-pas > + - qcom,sm8550-cdsp-pas > then: > properties: > interrupts: > @@ -347,6 +360,7 @@ allOf: > - qcom,sm8150-mpss-pas > - qcom,sm8350-mpss-pas > - qcom,sm8450-mpss-pas > + - qcom,sm8550-mpss-pas > then: > properties: > interrupts: > @@ -448,6 +462,7 @@ allOf: > - qcom,sm8150-mpss-pas > - qcom,sm8350-mpss-pas > - qcom,sm8450-mpss-pas > + - qcom,sm8550-mpss-pas > then: > properties: > power-domains: > @@ -475,6 +490,7 @@ allOf: > - qcom,sm8350-slpi-pas > - qcom,sm8450-adsp-pas > - qcom,sm8450-slpi-pas > + - qcom,sm8550-adsp-pas > then: > properties: > power-domains: > @@ -504,6 +520,25 @@ allOf: > - const: cx > - const: mxc > > + - if: > + properties: > + compatible: > + contains: > + enum: > + - qcom,sm8550-cdsp-pas > + then: > + properties: > + power-domains: > + items: > + - description: CX power domain > + - description: MXC power domain > + - description: NSP power domain > + power-domain-names: > + items: > + - const: cx > + - const: mxc > + - const: nsp > + You also need to update entry for resets. I think it is missing. > - if: > properties: > compatible: > @@ -573,6 +608,29 @@ allOf: > properties: > qcom,qmp: false > > + - if: > + properties: > + compatible: > + contains: > + enum: > + - qcom,sm8550-adsp-pas > + - qcom,sm8550-cdsp-pas > + - qcom,sm8550-mpss-pas > + then: > + properties: > + memory-region: > + minItems: 2 > + description: > + First entry is a phandle for a reserved memory area that holds > + the main Firmware for authentication, and second entry a phandle for a > + reserved memory area that holds the Devicetree Firmware for authentication. Instead of minItems and description: items: - description: Main Firmware for auth.... - description: Devicetree Firmware.... > + else: > + properties: > + qcom,dtb-firmware-name: false > + > + memory-region: > + maxItems: 1 > + Best regards, Krzysztof
On 17/11/2022 00:39, Rob Herring wrote: > On Wed, Nov 16, 2022 at 01:28:11PM +0100, Krzysztof Kozlowski wrote: >> On 16/11/2022 11:20, Neil Armstrong wrote: >>> This documents the compatible for the component used to boot the >>> aDSP, cDSP and MPSS on the SM8550 SoC. >>> >>> The SM8550 boot process on SM8550 now requires a secondary "Devicetree" >>> firmware to be passed along the main Firmware, and the cDSP a new power >>> domain named "NSP". >>> >>> Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org> >>> --- >>> .../devicetree/bindings/remoteproc/qcom,adsp.yaml | 60 +++++++++++++++++++++- >>> 1 file changed, 59 insertions(+), 1 deletion(-) >>> >>> diff --git a/Documentation/devicetree/bindings/remoteproc/qcom,adsp.yaml b/Documentation/devicetree/bindings/remoteproc/qcom,adsp.yaml >>> index db9e0f0c2bea..678cb73f10de 100644 >>> --- a/Documentation/devicetree/bindings/remoteproc/qcom,adsp.yaml >>> +++ b/Documentation/devicetree/bindings/remoteproc/qcom,adsp.yaml >>> @@ -55,6 +55,9 @@ properties: >>> - qcom,sm8450-cdsp-pas >>> - qcom,sm8450-mpss-pas >>> - qcom,sm8450-slpi-pas >>> + - qcom,sm8550-adsp-pas >>> + - qcom,sm8550-cdsp-pas >>> + - qcom,sm8550-mpss-pas >>> >>> reg: >>> maxItems: 1 >>> @@ -116,8 +119,13 @@ properties: >>> $ref: /schemas/types.yaml#/definitions/string >>> description: Firmware name for the Hexagon core >>> >>> + qcom,dtb-firmware-name: >>> + $ref: /schemas/types.yaml#/definitions/string >>> + description: Devicetree Firmware name for the Hexagon core >> >> Not sure about this one. >> >> Rob, >> Don't we want rather to have multiple items in firmware-name? > > Yes, I think we already have that for some users. Should have been > 'firmware-names' I guess but I don't think it's worth dealing with > another case of handling both (forever). I'll be happy to switch to a single property but yeah, firmware-name isn't right for multiple names... Anyway, will follow qcom,sc7180-mss-pil.yaml since they already use 2 entries there. Neil > > Rob
This patchsets adds support for the aDSP, cDSP and MPSS found in the SM8550 SoC. The aDSP, cDSP and MPSS boot process on SM8550 now requires a secondary "Devicetree" firmware to be passed along the main Firmware, and the cDSP a new power domain named "NSP". In order to satisfy the load & authentication order required by the SM8550 SoC, the following is implemented: - "Devicetree" firmware request & load in dedicated memory - Q6V5 prepare - Power Domain & Clocks enable - "Devicetree" firmware authentication - Main firmware load in dedicated memory - Main firmware authentication - Q6V5 startup - "Devicetree" firmware metadata release - Main metadata release When booting older platforms, the "Devicetree" steps would be bypassed and the load & authentication order would still be valid. To: Andy Gross <agross@kernel.org> To: Bjorn Andersson <andersson@kernel.org> To: Konrad Dybcio <konrad.dybcio@somainline.org> To: Mathieu Poirier <mathieu.poirier@linaro.org> To: Rob Herring <robh+dt@kernel.org> To: Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org> To: Manivannan Sadhasivam <mani@kernel.org> To: Srinivas Kandagatla <srinivas.kandagatla@linaro.org> To: Amol Maheshwari <amahesh@qti.qualcomm.com> Cc: linux-arm-msm@vger.kernel.org Cc: linux-remoteproc@vger.kernel.org Cc: devicetree@vger.kernel.org Cc: linux-kernel@vger.kernel.org Cc: Abel Vesa <abel.vesa@linaro.org> Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org> --- Abel Vesa (1): dt-bindings: misc: qcom,fastrpc: increase allowed iommus entries Neil Armstrong (3): dt-bindings: remoteproc: qcom: adsp: document sm8550 adsp, cdsp & mpss compatible remoteproc: qcom_q6v5_pas: add support for dtb co-firmware loading remoteproc: qcom_q6v5_pas: add sm8550 adsp, cdsp & mpss compatible & data .../devicetree/bindings/misc/qcom,fastrpc.yaml | 2 +- .../devicetree/bindings/remoteproc/qcom,adsp.yaml | 60 ++++++- drivers/remoteproc/qcom_q6v5_pas.c | 199 +++++++++++++++++++-- 3 files changed, 246 insertions(+), 15 deletions(-) --- base-commit: 3c1f24109dfc4fb1a3730ed237e50183c6bb26b3 change-id: 20221114-narmstrong-sm8550-upstream-remoteproc-804f3fbb34bf Best regards,