Skip to content

Commit 46a10fc

Browse files
committed
Merge tag 'rproc-v5.17' of git://git.kernel.org/pub/scm/linux/kernel/git/remoteproc/linux
Pull remoteproc updates from Bjorn Andersson: "This introduces support for controlling the Cortex R7 co-processor in Renesas Gen3, support for R5F clusters and C71x DSPs on TI J721S2 and compute, audio and modem subsystems on Qualcomm SM6350. It fixes a couple of sparse errors related to memcpy_to/fromio and corrects the kerneldoc spelling of "Return:". The stm32 driver no longer attempts to communicate with the remote after the firmware has crashed" * tag 'rproc-v5.17' of git://git.kernel.org/pub/scm/linux/kernel/git/remoteproc/linux: (22 commits) remoteproc: stm32: Improve crash recovery time remoteproc: rcar_rproc: Remove trailing semicolon remoteproc: rcar_rproc: Fix pm_runtime_get_sync error check remoteproc: qcom: pas: Add SM6350 CDSP support remoteproc: qcom: pas: Add SM6350 ADSP support remoteproc: qcom: pas: Add SM6350 MPSS support dt-bindings: remoteproc: qcom: pas: Add SM6350 adsp, cdsp & mpss remoteproc: qcom: pas: Add missing power-domain "mxc" for CDSP remoteproc: imx_rproc: correct firmware reload remoteproc: qcom: pil_info: Don't memcpy_toio more than is provided remoteproc: Add Renesas rcar driver dt-bindings: remoteproc: Add Renesas R-Car remoteproc: Fix remaining wrong return formatting in documentation MAINTAINERS: Removing Ohad from remoteproc/rpmsg maintenance remoteproc: ingenic: Request IRQ disabled remoteproc: k3-r5: Extend support for R5F clusters on J721S2 SoCs remoteproc: k3-dsp: Extend support for C71x DSPs on J721S2 SoCs dt-bindings: remoteproc: k3-dsp: Update bindings for J721S2 SoCs dt-bindings: remoteproc: k3-r5f: Update bindings for J721S2 SoCs remoteproc: coredump: Correct argument 2 type for memcpy_fromio ...
2 parents fc9d695 + cfcabbb commit 46a10fc

20 files changed

+400
-21
lines changed

CREDITS

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -315,6 +315,11 @@ S: Via Delle Palme, 9
315315
S: Terni 05100
316316
S: Italy
317317

318+
N: Ohad Ben Cohen
319+
320+
D: Remote Processor (remoteproc) subsystem
321+
D: Remote Processor Messaging (rpmsg) subsystem
322+
318323
N: Krzysztof Benedyczak
319324
320325
W: http://www.mat.uni.torun.pl/~golbi

Documentation/devicetree/bindings/remoteproc/qcom,adsp.yaml

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,9 @@ properties:
3333
- qcom,sdm845-adsp-pas
3434
- qcom,sdm845-cdsp-pas
3535
- qcom,sdx55-mpss-pas
36+
- qcom,sm6350-adsp-pas
37+
- qcom,sm6350-cdsp-pas
38+
- qcom,sm6350-mpss-pas
3639
- qcom,sm8150-adsp-pas
3740
- qcom,sm8150-cdsp-pas
3841
- qcom,sm8150-mpss-pas
@@ -158,6 +161,9 @@ allOf:
158161
- qcom,sc8180x-mpss-pas
159162
- qcom,sdm845-adsp-pas
160163
- qcom,sdm845-cdsp-pas
164+
- qcom,sm6350-adsp-pas
165+
- qcom,sm6350-cdsp-pas
166+
- qcom,sm6350-mpss-pas
161167
- qcom,sm8150-adsp-pas
162168
- qcom,sm8150-cdsp-pas
163169
- qcom,sm8150-mpss-pas
@@ -266,6 +272,8 @@ allOf:
266272
- qcom,sc8180x-cdsp-pas
267273
- qcom,sdm845-adsp-pas
268274
- qcom,sdm845-cdsp-pas
275+
- qcom,sm6350-adsp-pas
276+
- qcom,sm6350-cdsp-pas
269277
- qcom,sm8150-adsp-pas
270278
- qcom,sm8150-cdsp-pas
271279
- qcom,sm8150-slpi-pas
@@ -301,6 +309,7 @@ allOf:
301309
- qcom,sc7280-mpss-pas
302310
- qcom,sc8180x-mpss-pas
303311
- qcom,sdx55-mpss-pas
312+
- qcom,sm6350-mpss-pas
304313
- qcom,sm8150-mpss-pas
305314
- qcom,sm8350-mpss-pas
306315
then:
@@ -385,6 +394,23 @@ allOf:
385394
- const: mx
386395
- const: mss
387396

397+
- if:
398+
properties:
399+
compatible:
400+
contains:
401+
enum:
402+
- qcom,sm6350-cdsp-pas
403+
then:
404+
properties:
405+
power-domains:
406+
items:
407+
- description: CX power domain
408+
- description: MX power domain
409+
power-domain-names:
410+
items:
411+
- const: cx
412+
- const: mx
413+
388414
- if:
389415
properties:
390416
compatible:
@@ -405,6 +431,7 @@ allOf:
405431
enum:
406432
- qcom,sc7280-mpss-pas
407433
- qcom,sdx55-mpss-pas
434+
- qcom,sm6350-mpss-pas
408435
- qcom,sm8150-mpss-pas
409436
- qcom,sm8350-mpss-pas
410437
then:
@@ -425,6 +452,7 @@ allOf:
425452
enum:
426453
- qcom,sc8180x-adsp-pas
427454
- qcom,sc8180x-cdsp-pas
455+
- qcom,sm6350-adsp-pas
428456
- qcom,sm8150-slpi-pas
429457
- qcom,sm8250-adsp-pas
430458
- qcom,sm8250-slpi-pas
Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2+
%YAML 1.2
3+
---
4+
$id: "http://devicetree.org/schemas/remoteproc/renesas,rcar-rproc.yaml#"
5+
$schema: "http://devicetree.org/meta-schemas/core.yaml#"
6+
7+
title: Renesas R-Car remote processor controller bindings
8+
9+
maintainers:
10+
- Julien Massot <[email protected]>
11+
12+
description: |
13+
This document defines the bindings for the remoteproc component that loads and
14+
boots firmwares on the Renesas R-Car family chipset.
15+
R-Car gen3 family may have a realtime processor, this processor shares peripheral
16+
and RAM with the host processor with the same address map.
17+
18+
properties:
19+
compatible:
20+
const: renesas,rcar-cr7
21+
22+
resets:
23+
maxItems: 1
24+
25+
power-domains:
26+
maxItems: 1
27+
28+
memory-region:
29+
description:
30+
List of phandles to the reserved memory regions associated with the
31+
remoteproc device. This is variable and describes the memories shared with
32+
the remote processor (e.g. remoteproc firmware and carveouts, rpmsg
33+
vrings, ...).
34+
(see ../reserved-memory/reserved-memory.yaml)
35+
36+
required:
37+
- compatible
38+
- resets
39+
- memory-region
40+
- power-domains
41+
42+
additionalProperties: false
43+
44+
examples:
45+
- |
46+
#include <dt-bindings/clock/r8a7795-cpg-mssr.h>
47+
#include <dt-bindings/power/r8a7795-sysc.h>
48+
reserved-memory {
49+
#address-cells = <2>;
50+
#size-cells = <2>;
51+
52+
cr7_ram: cr7_ram@40040000 {
53+
no-map;
54+
reg = <0x0 0x40040000 0x0 0x1fc0000>;
55+
};
56+
};
57+
58+
cr7_rproc: cr7 {
59+
compatible = "renesas,rcar-cr7";
60+
memory-region = <&cr7_ram>;
61+
power-domains = <&sysc R8A7795_PD_CR7>;
62+
resets = <&cpg 222>;
63+
};
64+
65+
...

Documentation/devicetree/bindings/remoteproc/ti,k3-dsp-rproc.yaml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,9 +33,11 @@ properties:
3333
enum:
3434
- ti,j721e-c66-dsp
3535
- ti,j721e-c71-dsp
36+
- ti,j721s2-c71-dsp
3637
description:
3738
Use "ti,j721e-c66-dsp" for C66x DSPs on K3 J721E SoCs
3839
Use "ti,j721e-c71-dsp" for C71x DSPs on K3 J721E SoCs
40+
Use "ti,j721s2-c71-dsp" for C71x DSPs on K3 J721S2 SoCs
3941

4042
resets:
4143
description: |
@@ -106,6 +108,7 @@ else:
106108
compatible:
107109
enum:
108110
- ti,j721e-c71-dsp
111+
- ti,j721s2-c71-dsp
109112
then:
110113
properties:
111114
reg:

Documentation/devicetree/bindings/remoteproc/ti,k3-r5f-rproc.yaml

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ properties:
3838
- ti,j721e-r5fss
3939
- ti,j7200-r5fss
4040
- ti,am64-r5fss
41+
- ti,j721s2-r5fss
4142

4243
power-domains:
4344
description: |
@@ -64,9 +65,9 @@ properties:
6465
description: |
6566
Configuration Mode for the Dual R5F cores within the R5F cluster.
6667
Should be either a value of 1 (LockStep mode) or 0 (Split mode) on
67-
most SoCs (AM65x, J721E, J7200), default is LockStep mode if omitted;
68-
and should be either a value of 0 (Split mode) or 2 (Single-CPU mode)
69-
on AM64x SoCs, default is Split mode if omitted.
68+
most SoCs (AM65x, J721E, J7200, J721s2), default is LockStep mode if
69+
omitted; and should be either a value of 0 (Split mode) or 2
70+
(Single-CPU mode) on AM64x SoCs, default is Split mode if omitted.
7071
7172
# R5F Processor Child Nodes:
7273
# ==========================
@@ -104,6 +105,7 @@ patternProperties:
104105
- ti,j721e-r5f
105106
- ti,j7200-r5f
106107
- ti,am64-r5f
108+
- ti,j721s2-r5f
107109

108110
reg:
109111
items:

MAINTAINERS

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16400,7 +16400,6 @@ S: Supported
1640016400
F: fs/reiserfs/
1640116401

1640216402
REMOTE PROCESSOR (REMOTEPROC) SUBSYSTEM
16403-
M: Ohad Ben-Cohen <[email protected]>
1640416403
M: Bjorn Andersson <[email protected]>
1640516404
M: Mathieu Poirier <[email protected]>
1640616405
@@ -16414,7 +16413,6 @@ F: include/linux/remoteproc.h
1641416413
F: include/linux/remoteproc/
1641516414

1641616415
REMOTE PROCESSOR MESSAGING (RPMSG) SUBSYSTEM
16417-
M: Ohad Ben-Cohen <[email protected]>
1641816416
M: Bjorn Andersson <[email protected]>
1641916417
M: Mathieu Poirier <[email protected]>
1642016418

drivers/remoteproc/Kconfig

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -283,6 +283,17 @@ config QCOM_WCNSS_PIL
283283
verified and booted with the help of the Peripheral Authentication
284284
System (PAS) in TrustZone.
285285

286+
config RCAR_REMOTEPROC
287+
tristate "Renesas R-Car Gen3 remoteproc support"
288+
depends on ARCH_RENESAS || COMPILE_TEST
289+
help
290+
Say y here to support R-Car realtime processor via the
291+
remote processor framework. An ELF firmware can be loaded
292+
thanks to sysfs remoteproc entries. The remote processor
293+
can be started and stopped.
294+
This can be either built-in or a loadable module.
295+
If compiled as module (M), the module name is rcar_rproc.
296+
286297
config ST_REMOTEPROC
287298
tristate "ST remoteproc support"
288299
depends on ARCH_STI

drivers/remoteproc/Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ obj-$(CONFIG_QCOM_SYSMON) += qcom_sysmon.o
3232
obj-$(CONFIG_QCOM_WCNSS_PIL) += qcom_wcnss_pil.o
3333
qcom_wcnss_pil-y += qcom_wcnss.o
3434
qcom_wcnss_pil-y += qcom_wcnss_iris.o
35+
obj-$(CONFIG_RCAR_REMOTEPROC) += rcar_rproc.o
3536
obj-$(CONFIG_ST_REMOTEPROC) += st_remoteproc.o
3637
obj-$(CONFIG_ST_SLIM_REMOTEPROC) += st_slim_rproc.o
3738
obj-$(CONFIG_STM32_RPROC) += stm32_rproc.o

drivers/remoteproc/imx_rproc.c

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,8 @@
3434

3535
#define IMX7D_M4_START (IMX7D_ENABLE_M4 | IMX7D_SW_M4P_RST \
3636
| IMX7D_SW_M4C_RST)
37-
#define IMX7D_M4_STOP IMX7D_SW_M4C_NON_SCLR_RST
37+
#define IMX7D_M4_STOP (IMX7D_ENABLE_M4 | IMX7D_SW_M4C_RST | \
38+
IMX7D_SW_M4C_NON_SCLR_RST)
3839

3940
/* Address: 0x020D8000 */
4041
#define IMX6SX_SRC_SCR 0x00
@@ -45,7 +46,8 @@
4546

4647
#define IMX6SX_M4_START (IMX6SX_ENABLE_M4 | IMX6SX_SW_M4P_RST \
4748
| IMX6SX_SW_M4C_RST)
48-
#define IMX6SX_M4_STOP IMX6SX_SW_M4C_NON_SCLR_RST
49+
#define IMX6SX_M4_STOP (IMX6SX_ENABLE_M4 | IMX6SX_SW_M4C_RST | \
50+
IMX6SX_SW_M4C_NON_SCLR_RST)
4951
#define IMX6SX_M4_RST_MASK (IMX6SX_ENABLE_M4 | IMX6SX_SW_M4P_RST \
5052
| IMX6SX_SW_M4C_NON_SCLR_RST \
5153
| IMX6SX_SW_M4C_RST)
@@ -684,7 +686,7 @@ static int imx_rproc_detect_mode(struct imx_rproc *priv)
684686
return ret;
685687
}
686688

687-
if (!(val & dcfg->src_stop))
689+
if ((val & dcfg->src_mask) != dcfg->src_stop)
688690
priv->rproc->state = RPROC_DETACHED;
689691

690692
return 0;
@@ -804,6 +806,7 @@ static int imx_rproc_remove(struct platform_device *pdev)
804806
clk_disable_unprepare(priv->clk);
805807
rproc_del(rproc);
806808
imx_rproc_free_mbox(rproc);
809+
destroy_workqueue(priv->workqueue);
807810
rproc_free(rproc);
808811

809812
return 0;

drivers/remoteproc/ingenic_rproc.c

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -218,14 +218,13 @@ static int ingenic_rproc_probe(struct platform_device *pdev)
218218
if (vpu->irq < 0)
219219
return vpu->irq;
220220

221-
ret = devm_request_irq(dev, vpu->irq, vpu_interrupt, 0, "VPU", rproc);
221+
ret = devm_request_irq(dev, vpu->irq, vpu_interrupt, IRQF_NO_AUTOEN,
222+
"VPU", rproc);
222223
if (ret < 0) {
223224
dev_err(dev, "Failed to request IRQ\n");
224225
return ret;
225226
}
226227

227-
disable_irq(vpu->irq);
228-
229228
ret = devm_rproc_add(dev, rproc);
230229
if (ret) {
231230
dev_err(dev, "Failed to register remote processor\n");

0 commit comments

Comments
 (0)