forked from torvalds/linux
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge tag 'rproc-v6.2' of git://git.kernel.org/pub/scm/linux/kernel/g…
…it/remoteproc/linux Pull remoteproc updates from Bjorn Andersson: "rproc-virtio device names are now auto generated, to avoid conflicts between remoteproc instances. The imx_rproc driver is extended with support for communicating with and attaching to a running M4 on i.MX8QXP, as well as support for attaching to the M4 after self-recovering from a crash. Support is added for i.MX8QM and mailbox channels are reconnected during the recovery process, in order to avoid data corruption. The Xilinx Zynqmp firmware interface is extended and support for the Xilinx R5 RPU is introduced. Various resources leaks, primarily in error paths, throughout the Qualcomm drivers are corrected. Lastly a fix to ensure that pm_relax is invoked even if the remoteproc instance is stopped between a crash is being reported and the recovery handler is scheduled" * tag 'rproc-v6.2' of git://git.kernel.org/pub/scm/linux/kernel/git/remoteproc/linux: (25 commits) remoteproc: core: Do pm_relax when in RPROC_OFFLINE state remoteproc: qcom: q6v5: Fix missing clk_disable_unprepare() in q6v5_wcss_qcs404_power_on() remoteproc: qcom_q6v5_pas: Fix missing of_node_put() in adsp_alloc_memory_region() remoteproc: qcom_q6v5_pas: detach power domains on remove remoteproc: qcom_q6v5_pas: disable wakeup on probe fail or remove remoteproc: qcom: q6v5: Fix potential null-ptr-deref in q6v5_wcss_init_mmio() remoteproc: sysmon: fix memory leak in qcom_add_sysmon_subdev() remoteproc: sysmon: Make QMI message rules const drivers: remoteproc: Add Xilinx r5 remoteproc driver firmware: xilinx: Add RPU configuration APIs firmware: xilinx: Add shutdown/wakeup APIs firmware: xilinx: Add ZynqMP firmware ioctl enums for RPU configuration. arm64: dts: xilinx: zynqmp: Add RPU subsystem device node dt-bindings: remoteproc: Add Xilinx RPU subsystem bindings remoteproc: core: Use device_match_of_node() remoteproc: imx_rproc: Correct i.MX93 DRAM mapping remoteproc: imx_rproc: Enable attach recovery for i.MX8QM/QXP remoteproc: imx_rproc: Request mbox channel later remoteproc: imx_rproc: Support i.MX8QM remoteproc: imx_rproc: Support kicking Mcore from Linux for i.MX8QXP ...
- Loading branch information
Showing
15 changed files
with
1,760 additions
and
20 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
135 changes: 135 additions & 0 deletions
135
Documentation/devicetree/bindings/remoteproc/xlnx,zynqmp-r5fss.yaml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,135 @@ | ||
# SPDX-License-Identifier: (GPL-2.0-only or BSD-2-Clause) | ||
%YAML 1.2 | ||
--- | ||
$id: http://devicetree.org/schemas/remoteproc/xlnx,zynqmp-r5fss.yaml# | ||
$schema: http://devicetree.org/meta-schemas/core.yaml# | ||
|
||
title: Xilinx R5F processor subsystem | ||
|
||
maintainers: | ||
- Ben Levinsky <ben.levinsky@amd.com> | ||
- Tanmay Shah <tanmay.shah@amd.com> | ||
|
||
description: | | ||
The Xilinx platforms include a pair of Cortex-R5F processors (RPU) for | ||
real-time processing based on the Cortex-R5F processor core from ARM. | ||
The Cortex-R5F processor implements the Arm v7-R architecture and includes a | ||
floating-point unit that implements the Arm VFPv3 instruction set. | ||
properties: | ||
compatible: | ||
const: xlnx,zynqmp-r5fss | ||
|
||
xlnx,cluster-mode: | ||
$ref: /schemas/types.yaml#/definitions/uint32 | ||
enum: [0, 1, 2] | ||
description: | | ||
The RPU MPCore can operate in split mode (Dual-processor performance), Safety | ||
lock-step mode(Both RPU cores execute the same code in lock-step, | ||
clock-for-clock) or Single CPU mode (RPU core 0 is held in reset while | ||
core 1 runs normally). The processor does not support dynamic configuration. | ||
Switching between modes is only permitted immediately after a processor reset. | ||
If set to 1 then lockstep mode and if 0 then split mode. | ||
If set to 2 then single CPU mode. When not defined, default will be lockstep mode. | ||
In summary, | ||
0: split mode | ||
1: lockstep mode (default) | ||
2: single cpu mode | ||
patternProperties: | ||
"^r5f-[a-f0-9]+$": | ||
type: object | ||
description: | | ||
The RPU is located in the Low Power Domain of the Processor Subsystem. | ||
Each processor includes separate L1 instruction and data caches and | ||
tightly coupled memories (TCM). System memory is cacheable, but the TCM | ||
memory space is non-cacheable. | ||
Each RPU contains one 64KB memory and two 32KB memories that | ||
are accessed via the TCM A and B port interfaces, for a total of 128KB | ||
per processor. In lock-step mode, the processor has access to 256KB of | ||
TCM memory. | ||
properties: | ||
compatible: | ||
const: xlnx,zynqmp-r5f | ||
|
||
power-domains: | ||
maxItems: 1 | ||
|
||
mboxes: | ||
minItems: 1 | ||
items: | ||
- description: mailbox channel to send data to RPU | ||
- description: mailbox channel to receive data from RPU | ||
|
||
mbox-names: | ||
minItems: 1 | ||
items: | ||
- const: tx | ||
- const: rx | ||
|
||
sram: | ||
$ref: /schemas/types.yaml#/definitions/phandle-array | ||
minItems: 1 | ||
maxItems: 8 | ||
items: | ||
maxItems: 1 | ||
description: | | ||
phandles to one or more reserved on-chip SRAM regions. Other than TCM, | ||
the RPU can execute instructions and access data from the OCM memory, | ||
the main DDR memory, and other system memories. | ||
The regions should be defined as child nodes of the respective SRAM | ||
node, and should be defined as per the generic bindings in | ||
Documentation/devicetree/bindings/sram/sram.yaml | ||
memory-region: | ||
description: | | ||
List of phandles to the reserved memory regions associated with the | ||
remoteproc device. This is variable and describes the memories shared with | ||
the remote processor (e.g. remoteproc firmware and carveouts, rpmsg | ||
vrings, ...). This reserved memory region will be allocated in DDR memory. | ||
minItems: 1 | ||
maxItems: 8 | ||
items: | ||
- description: region used for RPU firmware image section | ||
- description: vdev buffer | ||
- description: vring0 | ||
- description: vring1 | ||
additionalItems: true | ||
|
||
required: | ||
- compatible | ||
- power-domains | ||
|
||
unevaluatedProperties: false | ||
|
||
required: | ||
- compatible | ||
|
||
additionalProperties: false | ||
|
||
examples: | ||
- | | ||
remoteproc { | ||
compatible = "xlnx,zynqmp-r5fss"; | ||
xlnx,cluster-mode = <1>; | ||
r5f-0 { | ||
compatible = "xlnx,zynqmp-r5f"; | ||
power-domains = <&zynqmp_firmware 0x7>; | ||
memory-region = <&rproc_0_fw_image>, <&rpu0vdev0buffer>, <&rpu0vdev0vring0>, <&rpu0vdev0vring1>; | ||
mboxes = <&ipi_mailbox_rpu0 0>, <&ipi_mailbox_rpu0 1>; | ||
mbox-names = "tx", "rx"; | ||
}; | ||
r5f-1 { | ||
compatible = "xlnx,zynqmp-r5f"; | ||
power-domains = <&zynqmp_firmware 0x8>; | ||
memory-region = <&rproc_1_fw_image>, <&rpu1vdev0buffer>, <&rpu1vdev0vring0>, <&rpu1vdev0vring1>; | ||
mboxes = <&ipi_mailbox_rpu1 0>, <&ipi_mailbox_rpu1 1>; | ||
mbox-names = "tx", "rx"; | ||
}; | ||
}; | ||
... |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.