Commit 8796ac1d authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull remoteproc updates from Bjorn Andersson:
 "This adds support to the remoteproc core for detaching Linux from a
  running remoteproc, e.g. to reboot Linux while leaving the remoteproc
  running, and it enable this support in the stm32 remoteproc driver.

  It also introduces a property for memory carveouts to track if they
  are iomem or system ram, to enable proper handling of the differences.

  The imx_rproc received a number of fixes and improvements, in
  particular support for attaching to already running remote processors
  and i.MX8MQ and i.MX8MM support.

  The Qualcomm wcss driver gained support for starting and stopping the
  wireless subsystem on QCS404, when not using the TrustZone-based
  validator/loader.

  Finally it brings a few fixes to the TI PRU and to the firmware loader
  for the Qualcomm modem subsystem drivers"

* tag 'rproc-v5.13' of git://git.kernel.org/pub/scm/linux/kernel/git/andersson/remoteproc: (53 commits)
  remoteproc: stm32: add capability to detach
  dt-bindings: remoteproc: stm32-rproc: add new mailbox channel for detach
  remoteproc: imx_rproc: support remote cores booted before Linux Kernel
  remoteproc: imx_rproc: move memory parsing to rproc_ops
  remoteproc: imx_rproc: enlarge IMX7D_RPROC_MEM_MAX
  remoteproc: imx_rproc: add missing of_node_put
  remoteproc: imx_rproc: fix build error without CONFIG_MAILBOX
  remoteproc: qcom: wcss: Remove unnecessary PTR_ERR()
  remoteproc: qcom: wcss: Fix wrong pointer passed to PTR_ERR()
  remoteproc: qcom: pas: Add modem support for SDX55
  dt-bindings: remoteproc: qcom: pas: Add binding for SDX55
  remoteproc: qcom: wcss: Fix return value check in q6v5_wcss_init_mmio()
  remoteproc: pru: Fix and cleanup firmware interrupt mapping logic
  remoteproc: pru: Fix wrong success return value for fw events
  remoteproc: pru: Fixup interrupt-parent logic for fw events
  remoteproc: qcom: wcnss: Allow specifying firmware-name
  remoteproc: qcom: wcss: explicitly request exclusive reset control
  remoteproc: qcom: wcss: Add non pas wcss Q6 support for QCS404
  dt-bindings: remoteproc: qcom: Add Q6V5 Modem PIL binding for QCS404
  remoteproc: qcom: wcss: populate hardcoded param using driver data
  ...
parents a01d9524 edf696f2
Loading
Loading
Loading
Loading
+90 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: "http://devicetree.org/schemas/remoteproc/fsl,imx-rproc.yaml#"
$schema: "http://devicetree.org/meta-schemas/core.yaml#"

title: NXP i.MX Co-Processor Bindings

description:
  This binding provides support for ARM Cortex M4 Co-processor found on some NXP iMX SoCs.

maintainers:
  - Peng Fan <peng.fan@nxp.com>

properties:
  compatible:
    enum:
      - fsl,imx8mq-cm4
      - fsl,imx8mm-cm4
      - fsl,imx7d-cm4
      - fsl,imx6sx-cm4

  clocks:
    maxItems: 1

  syscon:
    $ref: /schemas/types.yaml#/definitions/phandle
    description:
      Phandle to syscon block which provide access to System Reset Controller

  mbox-names:
    items:
      - const: tx
      - const: rx
      - const: rxdb

  mboxes:
    description:
      This property is required only if the rpmsg/virtio functionality is used.
      List of <&phandle type channel> - 1 channel for TX, 1 channel for RX, 1 channel for RXDB.
      (see mailbox/fsl,mu.yaml)
    minItems: 1
    maxItems: 3

  memory-region:
    description:
      If present, a phandle for a reserved memory area that used for vdev buffer,
      resource table, vring region and others used by remote processor.
    minItems: 1
    maxItems: 32

required:
  - compatible
  - clocks
  - syscon

additionalProperties: false

examples:
  - |
    #include <dt-bindings/clock/imx7d-clock.h>
    m4_reserved_sysmem1: cm4@80000000 {
      reg = <0x80000000 0x80000>;
    };

    m4_reserved_sysmem2: cm4@81000000 {
      reg = <0x81000000 0x80000>;
    };

    imx7d-cm4 {
      compatible	= "fsl,imx7d-cm4";
      memory-region	= <&m4_reserved_sysmem1>, <&m4_reserved_sysmem2>;
      syscon		= <&src>;
      clocks		= <&clks IMX7D_ARM_M4_ROOT_CLK>;
    };

  - |
    #include <dt-bindings/clock/imx8mm-clock.h>

    imx8mm-cm4 {
      compatible = "fsl,imx8mm-cm4";
      clocks = <&clk IMX8MM_CLK_M4_DIV>;
      mbox-names = "tx", "rx", "rxdb";
      mboxes = <&mu 0 1
                &mu 1 1
                &mu 3 1>;
      memory-region = <&vdev0buffer>, <&vdev0vring0>, <&vdev0vring1>, <&rsc_table>;
      syscon = <&src>;
    };
...
+0 −33
Original line number Diff line number Diff line
NXP iMX6SX/iMX7D Co-Processor Bindings
----------------------------------------

This binding provides support for ARM Cortex M4 Co-processor found on some
NXP iMX SoCs.

Required properties:
- compatible		Should be one of:
				"fsl,imx7d-cm4"
				"fsl,imx6sx-cm4"
- clocks		Clock for co-processor (See: ../clock/clock-bindings.txt)
- syscon		Phandle to syscon block which provide access to
			System Reset Controller

Optional properties:
- memory-region		list of phandels to the reserved memory regions.
			(See: ../reserved-memory/reserved-memory.txt)

Example:
	m4_reserved_sysmem1: cm4@80000000 {
		reg = <0x80000000 0x80000>;
	};

	m4_reserved_sysmem2: cm4@81000000 {
		reg = <0x81000000 0x80000>;
	};

	imx7d-cm4 {
		compatible	= "fsl,imx7d-cm4";
		memory-region	= <&m4_reserved_sysmem1>, <&m4_reserved_sysmem2>;
		syscon		= <&src>;
		clocks		= <&clks IMX7D_ARM_M4_ROOT_CLK>;
	};
+4 −0
Original line number Diff line number Diff line
@@ -18,6 +18,7 @@ on the Qualcomm ADSP Hexagon core.
		    "qcom,sc7180-mpss-pas"
		    "qcom,sdm845-adsp-pas"
		    "qcom,sdm845-cdsp-pas"
                    "qcom,sdx55-mpss-pas"
		    "qcom,sm8150-adsp-pas"
		    "qcom,sm8150-cdsp-pas"
		    "qcom,sm8150-mpss-pas"
@@ -61,6 +62,7 @@ on the Qualcomm ADSP Hexagon core.
		    must be "wdog", "fatal", "ready", "handover", "stop-ack"
	qcom,qcs404-wcss-pas:
	qcom,sc7180-mpss-pas:
        qcom,sdx55-mpss-pas:
	qcom,sm8150-mpss-pas:
	qcom,sm8350-mpss-pas:
		    must be "wdog", "fatal", "ready", "handover", "stop-ack",
@@ -128,6 +130,8 @@ on the Qualcomm ADSP Hexagon core.
	qcom,sm8150-mpss-pas:
	qcom,sm8350-mpss-pas:
		    must be "cx", "load_state", "mss"
        qcom,sdx55-mpss-pas:
                    must be "cx", "mss"
	qcom,sm8250-adsp-pas:
	qcom,sm8350-adsp-pas:
	qcom,sm8150-slpi-pas:
+15 −0
Original line number Diff line number Diff line
@@ -9,6 +9,7 @@ on the Qualcomm Hexagon core.
	Definition: must be one of:
		    "qcom,q6v5-pil",
		    "qcom,ipq8074-wcss-pil"
		    "qcom,qcs404-wcss-pil"
		    "qcom,msm8916-mss-pil",
		    "qcom,msm8974-mss-pil"
		    "qcom,msm8996-mss-pil"
@@ -39,6 +40,7 @@ on the Qualcomm Hexagon core.
		    string:
	qcom,q6v5-pil:
	qcom,ipq8074-wcss-pil:
	qcom,qcs404-wcss-pil:
	qcom,msm8916-mss-pil:
	qcom,msm8974-mss-pil:
		    must be "wdog", "fatal", "ready", "handover", "stop-ack"
@@ -67,6 +69,11 @@ on the Qualcomm Hexagon core.
	Definition: The clocks needed depend on the compatible string:
	qcom,ipq8074-wcss-pil:
		    no clock names required
	qcom,qcs404-wcss-pil:
		    must be "xo", "gcc_abhs_cbcr", "gcc_abhs_cbcr",
		    "gcc_axim_cbcr", "lcc_ahbfabric_cbc", "tcsr_lcc_cbc",
		    "lcc_abhs_cbc", "lcc_tcm_slave_cbc", "lcc_abhm_cbc",
		    "lcc_axim_cbc", "lcc_bcr_sleep"
	qcom,q6v5-pil:
	qcom,msm8916-mss-pil:
	qcom,msm8974-mss-pil:
@@ -132,6 +139,14 @@ For the compatible string below the following supplies are required:
	Definition: reference to the regulators to be held on behalf of the
		    booting of the Hexagon core

For the compatible string below the following supplies are required:
  "qcom,qcs404-wcss-pil"
- cx-supply:
	Usage: required
	Value type: <phandle>
	Definition: reference to the regulators to be held on behalf of the
		    booting of the Hexagon core

For the compatible string below the following supplies are required:
  "qcom,msm8996-mss-pil"
- pll-supply:
+6 −0
Original line number Diff line number Diff line
@@ -34,6 +34,12 @@ on the Qualcomm WCNSS core.
	Definition: should be "wdog", "fatal", optionally followed by "ready",
		    "handover", "stop-ack"

- firmware-name:
	Usage: optional
	Value type: <string>
	Definition: must list the relative firmware image path for the
		    WCNSS core. Defaults to "wcnss.mdt".

- vddmx-supply: (deprecated for qcom,pronto-v1/2-pil)
- vddcx-supply: (deprecated for qcom,pronto-v1/2-pil)
- vddpx-supply:
Loading