* [PATCH v4 0/2] Add support for remoteprocs on Milos SoC @ 2025-09-05 9:37 Luca Weiss 2025-09-05 9:37 ` [PATCH v4 1/2] dt-bindings: remoteproc: qcom,milos-pas: Document remoteprocs Luca Weiss 2025-09-05 9:37 ` [PATCH v4 2/2] remoteproc: qcom: pas: Add Milos remoteproc support Luca Weiss 0 siblings, 2 replies; 5+ messages in thread From: Luca Weiss @ 2025-09-05 9:37 UTC (permalink / raw) To: Bjorn Andersson, Mathieu Poirier, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Manivannan Sadhasivam Cc: ~postmarketos/upstreaming, phone-devel, linux-arm-msm, linux-remoteproc, devicetree, linux-kernel, Luca Weiss, Konrad Dybcio Add the bindings and driver for the ADSP, CDSP, MPSS and WPSS on the Milos SoC. Signed-off-by: Luca Weiss <luca.weiss@fairphone.com> --- Changes in v4: - Rebase on linux-next to fix conflicts - Link to v3: https://lore.kernel.org/r/20250709-sm7635-remoteprocs-v3-0-c943be976180@fairphone.com Changes in v3: - Rebrand SM7635 to Milos as requested: https://lore.kernel.org/linux-arm-msm/aGMI1Zv6D+K+vWZL@hu-bjorande-lv.qualcomm.com/ - Replace additions to two different bindings by one new binding yaml - Pick up tags - Link to v2: https://lore.kernel.org/r/20250627-sm7635-remoteprocs-v2-0-0fa518f8bf6d@fairphone.com Changes in v2: - Update default firmware names from .mdt to .mbn - Link to v1: https://lore.kernel.org/r/20250625-sm7635-remoteprocs-v1-0-730d6b5171ee@fairphone.com --- Luca Weiss (2): dt-bindings: remoteproc: qcom,milos-pas: Document remoteprocs remoteproc: qcom: pas: Add Milos remoteproc support .../bindings/remoteproc/qcom,milos-pas.yaml | 201 +++++++++++++++++++++ drivers/remoteproc/qcom_q6v5_pas.c | 24 +++ 2 files changed, 225 insertions(+) --- base-commit: 87a9e300217e33b2388b9c1ffe99ec454eb6e983 change-id: 20250620-sm7635-remoteprocs-149da64084b8 Best regards, -- Luca Weiss <luca.weiss@fairphone.com> ^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH v4 1/2] dt-bindings: remoteproc: qcom,milos-pas: Document remoteprocs 2025-09-05 9:37 [PATCH v4 0/2] Add support for remoteprocs on Milos SoC Luca Weiss @ 2025-09-05 9:37 ` Luca Weiss 2025-09-05 23:18 ` Rob Herring 2025-09-05 9:37 ` [PATCH v4 2/2] remoteproc: qcom: pas: Add Milos remoteproc support Luca Weiss 1 sibling, 1 reply; 5+ messages in thread From: Luca Weiss @ 2025-09-05 9:37 UTC (permalink / raw) To: Bjorn Andersson, Mathieu Poirier, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Manivannan Sadhasivam Cc: ~postmarketos/upstreaming, phone-devel, linux-arm-msm, linux-remoteproc, devicetree, linux-kernel, Luca Weiss Document the bindings for the ADSP, CDSP, MPSS and WPSS PAS on the Milos (e.g. SM7635) SoC. Signed-off-by: Luca Weiss <luca.weiss@fairphone.com> --- .../bindings/remoteproc/qcom,milos-pas.yaml | 201 +++++++++++++++++++++ 1 file changed, 201 insertions(+) diff --git a/Documentation/devicetree/bindings/remoteproc/qcom,milos-pas.yaml b/Documentation/devicetree/bindings/remoteproc/qcom,milos-pas.yaml new file mode 100644 index 0000000000000000000000000000000000000000..790ad38a0330bf81f6333e887522ddb97690edbc --- /dev/null +++ b/Documentation/devicetree/bindings/remoteproc/qcom,milos-pas.yaml @@ -0,0 +1,201 @@ +# SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/remoteproc/qcom,milos-pas.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Qualcomm Milos SoC Peripheral Authentication Service + +maintainers: + - Luca Weiss <luca.weiss@fairphone.com> + +description: + Qualcomm Milos SoC Peripheral Authentication Service loads and boots firmware + on the Qualcomm DSP Hexagon cores. + +properties: + compatible: + enum: + - qcom,milos-adsp-pas + - qcom,milos-cdsp-pas + - qcom,milos-mpss-pas + - qcom,milos-wpss-pas + + reg: + maxItems: 1 + + clocks: + items: + - description: XO clock + + clock-names: + items: + - const: xo + + interrupts: + minItems: 6 + maxItems: 6 + + interrupt-names: + minItems: 6 + maxItems: 6 + + qcom,qmp: + $ref: /schemas/types.yaml#/definitions/phandle + description: Reference to the AOSS side-channel message RAM. + + smd-edge: false + + firmware-name: + $ref: /schemas/types.yaml#/definitions/string-array + minItems: 1 + items: + - description: Firmware name of the Hexagon core + - description: Firmware name of the Hexagon Devicetree + + memory-region: + minItems: 1 + items: + - description: Memory region for core Firmware authentication + - description: Memory region for Devicetree Firmware authentication + +required: + - compatible + - reg + - memory-region + +allOf: + - $ref: /schemas/remoteproc/qcom,pas-common.yaml# + - if: + properties: + compatible: + enum: + - qcom,milos-adsp-pas + - qcom,milos-cdsp-pas + then: + properties: + memory-region: + minItems: 2 + maxItems: 2 + firmware-name: + minItems: 2 + maxItems: 2 + else: + properties: + memory-region: + maxItems: 1 + firmware-name: + maxItems: 1 + + - if: + properties: + compatible: + contains: + enum: + - qcom,milos-adsp-pas + then: + properties: + power-domains: + items: + - description: LCX power domain + - description: LMX power domain + power-domain-names: + items: + - const: lcx + - const: lmx + + - if: + properties: + compatible: + enum: + - qcom,milos-cdsp-pas + - qcom,milos-wpss-pas + then: + properties: + power-domains: + items: + - description: CX power domain + - description: MX power domain + power-domain-names: + items: + - const: cx + - const: mx + + - if: + properties: + compatible: + enum: + - qcom,milos-mpss-pas + then: + properties: + power-domains: + items: + - description: CX power domain + - description: MSS power domain + power-domain-names: + items: + - const: cx + - const: mss + +unevaluatedProperties: false + +examples: + - | + #include <dt-bindings/clock/qcom,rpmh.h> + #include <dt-bindings/interconnect/qcom,icc.h> + #include <dt-bindings/interconnect/qcom,milos-rpmh.h> + #include <dt-bindings/interrupt-controller/irq.h> + #include <dt-bindings/mailbox/qcom-ipcc.h> + #include <dt-bindings/power/qcom,rpmhpd.h> + + remoteproc@3000000 { + compatible = "qcom,milos-adsp-pas"; + reg = <0x03000000 0x10000>; + + interrupts-extended = <&pdc 6 IRQ_TYPE_EDGE_RISING>, + <&smp2p_adsp_in 0 IRQ_TYPE_EDGE_RISING>, + <&smp2p_adsp_in 1 IRQ_TYPE_EDGE_RISING>, + <&smp2p_adsp_in 2 IRQ_TYPE_EDGE_RISING>, + <&smp2p_adsp_in 3 IRQ_TYPE_EDGE_RISING>, + <&smp2p_adsp_in 7 IRQ_TYPE_EDGE_RISING>; + interrupt-names = "wdog", + "fatal", + "ready", + "handover", + "stop-ack", + "shutdown-ack"; + + clocks = <&rpmhcc RPMH_CXO_CLK>; + clock-names = "xo"; + + power-domains = <&rpmhpd RPMHPD_LCX>, + <&rpmhpd RPMHPD_LMX>; + power-domain-names = "lcx", + "lmx"; + + interconnects = <&lpass_ag_noc MASTER_LPASS_PROC QCOM_ICC_TAG_ALWAYS + &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>; + + memory-region = <&adspslpi_mem>, <&q6_adsp_dtb_mem>; + + firmware-name = "qcom/milos/vendor/device/adsp.mbn", + "qcom/milos/vendor/device/adsp_dtb.mbn"; + + qcom,qmp = <&aoss_qmp>; + + qcom,smem-states = <&smp2p_adsp_out 0>; + qcom,smem-state-names = "stop"; + + glink-edge { + interrupts-extended = <&ipcc IPCC_CLIENT_LPASS + IPCC_MPROC_SIGNAL_GLINK_QMP + IRQ_TYPE_EDGE_RISING>; + mboxes = <&ipcc IPCC_CLIENT_LPASS + IPCC_MPROC_SIGNAL_GLINK_QMP>; + + label = "lpass"; + qcom,remote-pid = <2>; + + /* ... */ + }; + }; -- 2.51.0 ^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH v4 1/2] dt-bindings: remoteproc: qcom,milos-pas: Document remoteprocs 2025-09-05 9:37 ` [PATCH v4 1/2] dt-bindings: remoteproc: qcom,milos-pas: Document remoteprocs Luca Weiss @ 2025-09-05 23:18 ` Rob Herring 0 siblings, 0 replies; 5+ messages in thread From: Rob Herring @ 2025-09-05 23:18 UTC (permalink / raw) To: Luca Weiss Cc: Bjorn Andersson, Mathieu Poirier, Krzysztof Kozlowski, Conor Dooley, Manivannan Sadhasivam, ~postmarketos/upstreaming, phone-devel, linux-arm-msm, linux-remoteproc, devicetree, linux-kernel On Fri, Sep 05, 2025 at 11:37:04AM +0200, Luca Weiss wrote: > Document the bindings for the ADSP, CDSP, MPSS and WPSS PAS on the Milos > (e.g. SM7635) SoC. > > Signed-off-by: Luca Weiss <luca.weiss@fairphone.com> > --- > .../bindings/remoteproc/qcom,milos-pas.yaml | 201 +++++++++++++++++++++ > 1 file changed, 201 insertions(+) > > diff --git a/Documentation/devicetree/bindings/remoteproc/qcom,milos-pas.yaml b/Documentation/devicetree/bindings/remoteproc/qcom,milos-pas.yaml > new file mode 100644 > index 0000000000000000000000000000000000000000..790ad38a0330bf81f6333e887522ddb97690edbc > --- /dev/null > +++ b/Documentation/devicetree/bindings/remoteproc/qcom,milos-pas.yaml > @@ -0,0 +1,201 @@ > +# SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/remoteproc/qcom,milos-pas.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: Qualcomm Milos SoC Peripheral Authentication Service > + > +maintainers: > + - Luca Weiss <luca.weiss@fairphone.com> > + > +description: > + Qualcomm Milos SoC Peripheral Authentication Service loads and boots firmware > + on the Qualcomm DSP Hexagon cores. > + > +properties: > + compatible: > + enum: > + - qcom,milos-adsp-pas > + - qcom,milos-cdsp-pas > + - qcom,milos-mpss-pas > + - qcom,milos-wpss-pas > + > + reg: > + maxItems: 1 > + > + clocks: > + items: > + - description: XO clock > + > + clock-names: > + items: > + - const: xo > + > + interrupts: > + minItems: 6 > + maxItems: 6 > + > + interrupt-names: > + minItems: 6 > + maxItems: 6 > + > + qcom,qmp: > + $ref: /schemas/types.yaml#/definitions/phandle > + description: Reference to the AOSS side-channel message RAM. > + > + smd-edge: false > + > + firmware-name: > + $ref: /schemas/types.yaml#/definitions/string-array Drop. Already has a type. > + minItems: 1 > + items: > + - description: Firmware name of the Hexagon core > + - description: Firmware name of the Hexagon Devicetree > + > + memory-region: > + minItems: 1 > + items: > + - description: Memory region for core Firmware authentication > + - description: Memory region for Devicetree Firmware authentication > + > +required: > + - compatible > + - reg > + - memory-region > + > +allOf: > + - $ref: /schemas/remoteproc/qcom,pas-common.yaml# > + - if: > + properties: > + compatible: > + enum: > + - qcom,milos-adsp-pas > + - qcom,milos-cdsp-pas > + then: > + properties: > + memory-region: > + minItems: 2 > + maxItems: 2 Max is already 2. Drop. > + firmware-name: > + minItems: 2 > + maxItems: 2 Max is already 2. Drop. > + else: > + properties: > + memory-region: > + maxItems: 1 > + firmware-name: > + maxItems: 1 > + > + - if: > + properties: > + compatible: > + contains: > + enum: > + - qcom,milos-adsp-pas > + then: > + properties: > + power-domains: > + items: > + - description: LCX power domain > + - description: LMX power domain > + power-domain-names: > + items: > + - const: lcx > + - const: lmx > + > + - if: > + properties: > + compatible: > + enum: > + - qcom,milos-cdsp-pas > + - qcom,milos-wpss-pas > + then: > + properties: > + power-domains: > + items: > + - description: CX power domain > + - description: MX power domain > + power-domain-names: > + items: > + - const: cx > + - const: mx > + > + - if: > + properties: > + compatible: > + enum: > + - qcom,milos-mpss-pas > + then: > + properties: > + power-domains: > + items: > + - description: CX power domain > + - description: MSS power domain > + power-domain-names: > + items: > + - const: cx > + - const: mss > + > +unevaluatedProperties: false > + > +examples: > + - | > + #include <dt-bindings/clock/qcom,rpmh.h> > + #include <dt-bindings/interconnect/qcom,icc.h> > + #include <dt-bindings/interconnect/qcom,milos-rpmh.h> > + #include <dt-bindings/interrupt-controller/irq.h> > + #include <dt-bindings/mailbox/qcom-ipcc.h> > + #include <dt-bindings/power/qcom,rpmhpd.h> > + > + remoteproc@3000000 { > + compatible = "qcom,milos-adsp-pas"; > + reg = <0x03000000 0x10000>; > + > + interrupts-extended = <&pdc 6 IRQ_TYPE_EDGE_RISING>, > + <&smp2p_adsp_in 0 IRQ_TYPE_EDGE_RISING>, > + <&smp2p_adsp_in 1 IRQ_TYPE_EDGE_RISING>, > + <&smp2p_adsp_in 2 IRQ_TYPE_EDGE_RISING>, > + <&smp2p_adsp_in 3 IRQ_TYPE_EDGE_RISING>, > + <&smp2p_adsp_in 7 IRQ_TYPE_EDGE_RISING>; > + interrupt-names = "wdog", > + "fatal", > + "ready", > + "handover", > + "stop-ack", > + "shutdown-ack"; > + > + clocks = <&rpmhcc RPMH_CXO_CLK>; > + clock-names = "xo"; > + > + power-domains = <&rpmhpd RPMHPD_LCX>, > + <&rpmhpd RPMHPD_LMX>; > + power-domain-names = "lcx", > + "lmx"; > + > + interconnects = <&lpass_ag_noc MASTER_LPASS_PROC QCOM_ICC_TAG_ALWAYS > + &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>; > + > + memory-region = <&adspslpi_mem>, <&q6_adsp_dtb_mem>; > + > + firmware-name = "qcom/milos/vendor/device/adsp.mbn", > + "qcom/milos/vendor/device/adsp_dtb.mbn"; > + > + qcom,qmp = <&aoss_qmp>; > + > + qcom,smem-states = <&smp2p_adsp_out 0>; > + qcom,smem-state-names = "stop"; > + > + glink-edge { > + interrupts-extended = <&ipcc IPCC_CLIENT_LPASS > + IPCC_MPROC_SIGNAL_GLINK_QMP > + IRQ_TYPE_EDGE_RISING>; > + mboxes = <&ipcc IPCC_CLIENT_LPASS > + IPCC_MPROC_SIGNAL_GLINK_QMP>; > + > + label = "lpass"; > + qcom,remote-pid = <2>; > + > + /* ... */ > + }; > + }; > > -- > 2.51.0 > ^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH v4 2/2] remoteproc: qcom: pas: Add Milos remoteproc support 2025-09-05 9:37 [PATCH v4 0/2] Add support for remoteprocs on Milos SoC Luca Weiss 2025-09-05 9:37 ` [PATCH v4 1/2] dt-bindings: remoteproc: qcom,milos-pas: Document remoteprocs Luca Weiss @ 2025-09-05 9:37 ` Luca Weiss 2025-09-05 13:46 ` Dmitry Baryshkov 1 sibling, 1 reply; 5+ messages in thread From: Luca Weiss @ 2025-09-05 9:37 UTC (permalink / raw) To: Bjorn Andersson, Mathieu Poirier, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Manivannan Sadhasivam Cc: ~postmarketos/upstreaming, phone-devel, linux-arm-msm, linux-remoteproc, devicetree, linux-kernel, Luca Weiss, Konrad Dybcio Add the different remoteprocs found on the Milos SoC: ADSP, CDSP, MPSS and WPSS. Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com> Signed-off-by: Luca Weiss <luca.weiss@fairphone.com> --- drivers/remoteproc/qcom_q6v5_pas.c | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/drivers/remoteproc/qcom_q6v5_pas.c b/drivers/remoteproc/qcom_q6v5_pas.c index 55a7da801183d54569452dbb48041fdc52bf9234..be4edd0c3eeefb80d3b25a48f6dfe0b7590bc624 100644 --- a/drivers/remoteproc/qcom_q6v5_pas.c +++ b/drivers/remoteproc/qcom_q6v5_pas.c @@ -1255,6 +1255,26 @@ static const struct qcom_pas_data sdx55_mpss_resource = { .ssctl_id = 0x22, }; +static const struct qcom_pas_data milos_cdsp_resource = { + .crash_reason_smem = 601, + .firmware_name = "cdsp.mbn", + .dtb_firmware_name = "cdsp_dtb.mbn", + .pas_id = 18, + .dtb_pas_id = 0x25, + .minidump_id = 7, + .auto_boot = true, + .proxy_pd_names = (char*[]){ + "cx", + "mx", + NULL + }, + .load_state = "cdsp", + .ssr_name = "cdsp", + .sysmon_name = "cdsp", + .ssctl_id = 0x17, + .smem_host_id = 5, +}; + static const struct qcom_pas_data sm8450_mpss_resource = { .crash_reason_smem = 421, .firmware_name = "modem.mdt", @@ -1429,6 +1449,10 @@ static const struct qcom_pas_data sm8750_mpss_resource = { }; static const struct of_device_id qcom_pas_of_match[] = { + { .compatible = "qcom,milos-adsp-pas", .data = &sm8550_adsp_resource}, + { .compatible = "qcom,milos-cdsp-pas", .data = &milos_cdsp_resource}, + { .compatible = "qcom,milos-mpss-pas", .data = &sm8450_mpss_resource}, + { .compatible = "qcom,milos-wpss-pas", .data = &sc7280_wpss_resource}, { .compatible = "qcom,msm8226-adsp-pil", .data = &msm8996_adsp_resource}, { .compatible = "qcom,msm8953-adsp-pil", .data = &msm8996_adsp_resource}, { .compatible = "qcom,msm8974-adsp-pil", .data = &adsp_resource_init}, -- 2.51.0 ^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH v4 2/2] remoteproc: qcom: pas: Add Milos remoteproc support 2025-09-05 9:37 ` [PATCH v4 2/2] remoteproc: qcom: pas: Add Milos remoteproc support Luca Weiss @ 2025-09-05 13:46 ` Dmitry Baryshkov 0 siblings, 0 replies; 5+ messages in thread From: Dmitry Baryshkov @ 2025-09-05 13:46 UTC (permalink / raw) To: Luca Weiss Cc: Bjorn Andersson, Mathieu Poirier, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Manivannan Sadhasivam, ~postmarketos/upstreaming, phone-devel, linux-arm-msm, linux-remoteproc, devicetree, linux-kernel, Konrad Dybcio On Fri, Sep 05, 2025 at 11:37:05AM +0200, Luca Weiss wrote: > Add the different remoteprocs found on the Milos SoC: ADSP, CDSP, MPSS > and WPSS. > > Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com> > Signed-off-by: Luca Weiss <luca.weiss@fairphone.com> > --- > drivers/remoteproc/qcom_q6v5_pas.c | 24 ++++++++++++++++++++++++ > 1 file changed, 24 insertions(+) > Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com> -- With best wishes Dmitry ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2025-09-05 23:18 UTC | newest] Thread overview: 5+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2025-09-05 9:37 [PATCH v4 0/2] Add support for remoteprocs on Milos SoC Luca Weiss 2025-09-05 9:37 ` [PATCH v4 1/2] dt-bindings: remoteproc: qcom,milos-pas: Document remoteprocs Luca Weiss 2025-09-05 23:18 ` Rob Herring 2025-09-05 9:37 ` [PATCH v4 2/2] remoteproc: qcom: pas: Add Milos remoteproc support Luca Weiss 2025-09-05 13:46 ` Dmitry Baryshkov
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).