remoteproc: qcom_q6v5_pas: add support for SM8550 adsp, cdsp & mpss 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: Alex Elder <elder@linaro.org> 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> --- Changes in v4: - Rebased onto git://git.kernel.org/pub/scm/linux/kernel/git/remoteproc/linux.git for-next - Added reviewed-by on bindings patches - Remove dependency in cover letter since merged - Link to v3: https://lore.kernel.org/r/20221114-narmstrong-sm8550-upstream-remoteproc-v3-0-62162a1df718@linaro.org Changes in v3: - fix mpss matching in bindings, tested against DT - Link to v2: https://lore.kernel.org/r/20221114-narmstrong-sm8550-upstream-remoteproc-v2-0-12bc22255474@linaro.org Changes in v2: - Moved the SM8550 pas bindings on top of "split and reorganize PAS/PIL" v3 patchset - Incorporated DSM memory support into pas bindings & driver - Moved second DTB firmware into second entry of firmware-name - Dropped applied "qcom,fastrpc: increase allowed iommus entries" patch - Link to v1: https://lore.kernel.org/r/20221114-narmstrong-sm8550-upstream-remoteproc-v1-0-104c34cb3b91@linaro.org --- Neil Armstrong (5): dt-bindings: remoteproc: qcom: adsp: move memory-region and firmware-name out of pas-common 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 support for assigning memory to firmware remoteproc: qcom_q6v5_pas: add sm8550 adsp, cdsp & mpss compatible & data .../devicetree/bindings/remoteproc/qcom,adsp.yaml | 4 + .../bindings/remoteproc/qcom,pas-common.yaml | 8 - .../bindings/remoteproc/qcom,qcs404-pas.yaml | 8 + .../bindings/remoteproc/qcom,sc7180-pas.yaml | 8 + .../bindings/remoteproc/qcom,sc8180x-pas.yaml | 8 + .../bindings/remoteproc/qcom,sc8280xp-pas.yaml | 8 + .../bindings/remoteproc/qcom,sdx55-pas.yaml | 8 + .../bindings/remoteproc/qcom,sm6350-pas.yaml | 8 + .../bindings/remoteproc/qcom,sm8150-pas.yaml | 8 + .../bindings/remoteproc/qcom,sm8350-pas.yaml | 8 + .../bindings/remoteproc/qcom,sm8550-pas.yaml | 178 ++++++++++++++ drivers/remoteproc/qcom_q6v5_pas.c | 268 ++++++++++++++++++++- 12 files changed, 501 insertions(+), 21 deletions(-) --- base-commit: f9721c6a43b63f6428e71b23a435f7f4f4e17af2 change-id: 20221114-narmstrong-sm8550-upstream-remoteproc-804f3fbb34bf Best regards,