* [PATCH v4 1/6] arm64: dts: imx8mp: Add mu2 root clock
2025-02-12 8:52 [PATCH v4 0/6] Configure imx8mp dsp node for rproc usage Daniel Baluta
@ 2025-02-12 8:52 ` Daniel Baluta
2025-02-12 8:52 ` [PATCH v4 2/6] arm64: dts: imx8mp: Configure dsp node for rproc usage Daniel Baluta
` (4 subsequent siblings)
5 siblings, 0 replies; 10+ messages in thread
From: Daniel Baluta @ 2025-02-12 8:52 UTC (permalink / raw)
To: shawnguo, robh
Cc: s.hauer, kernel, krzk+dt, conor+dt, festevam, devicetree, imx,
linux-arm-kernel, linux-kernel, frank.li, aisheng.dong,
daniel.baluta, laurentiu.mihalcea, shengjiu.wang, iuliana.prodan,
a.fatoum, Daniel Baluta, Peng Fan
Enable MU2 node and add mu2 root clock.
MU2 is used to communicate with DSP core.
Reviewed-by: Iuliana Prodan <iuliana.prodan@nxp.com>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com>
---
arch/arm64/boot/dts/freescale/imx8mp.dtsi | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/arm64/boot/dts/freescale/imx8mp.dtsi b/arch/arm64/boot/dts/freescale/imx8mp.dtsi
index e0d3b8cba221..00924e0836db 100644
--- a/arch/arm64/boot/dts/freescale/imx8mp.dtsi
+++ b/arch/arm64/boot/dts/freescale/imx8mp.dtsi
@@ -1252,7 +1252,7 @@ mu2: mailbox@30e60000 {
reg = <0x30e60000 0x10000>;
interrupts = <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>;
#mbox-cells = <2>;
- status = "disabled";
+ clocks = <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_MU2_ROOT>;
};
i2c5: i2c@30ad0000 {
--
2.43.0
^ permalink raw reply related [flat|nested] 10+ messages in thread* [PATCH v4 2/6] arm64: dts: imx8mp: Configure dsp node for rproc usage
2025-02-12 8:52 [PATCH v4 0/6] Configure imx8mp dsp node for rproc usage Daniel Baluta
2025-02-12 8:52 ` [PATCH v4 1/6] arm64: dts: imx8mp: Add mu2 root clock Daniel Baluta
@ 2025-02-12 8:52 ` Daniel Baluta
2025-02-12 8:52 ` [PATCH v4 3/6] arm64: dts: imx8mp: Add DSP clocks Daniel Baluta
` (3 subsequent siblings)
5 siblings, 0 replies; 10+ messages in thread
From: Daniel Baluta @ 2025-02-12 8:52 UTC (permalink / raw)
To: shawnguo, robh
Cc: s.hauer, kernel, krzk+dt, conor+dt, festevam, devicetree, imx,
linux-arm-kernel, linux-kernel, frank.li, aisheng.dong,
daniel.baluta, laurentiu.mihalcea, shengjiu.wang, iuliana.prodan,
a.fatoum, Daniel Baluta, Peng Fan
DSP can be used with various frameworks (e.g audio firmware, rproc).
Currently 'dsp' configuration is intended for audio firmware but it
doesn't work well with board level DTs (e.g imx8mp-evk) because
board level DT enables audio related IPs (e.g SAI) while audio firmware
needs this IPs disabled (because firmware will configure them).
So, configure 'dsp' node to be used with rproc. This way users will be
able to use board DT to use the DSP as long as they don't clash with
Audio IP configurations.
More comples usage of 'dsp' node (e.g by audio firmware) will need to
create a separate dts file (or an overlay).
This change follows the approach taken for other i.MX8 boards
in commit 391a319c81f6d7 ("arm64: dts: imx8-ss-audio: configure dsp node
for rproc usage")
Reviewed-by: Iuliana Prodan <iuliana.prodan@nxp.com>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com>
---
arch/arm64/boot/dts/freescale/imx8mp.dtsi | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/arch/arm64/boot/dts/freescale/imx8mp.dtsi b/arch/arm64/boot/dts/freescale/imx8mp.dtsi
index 00924e0836db..2f94c55e4999 100644
--- a/arch/arm64/boot/dts/freescale/imx8mp.dtsi
+++ b/arch/arm64/boot/dts/freescale/imx8mp.dtsi
@@ -280,7 +280,7 @@ reserved-memory {
ranges;
dsp_reserved: dsp@92400000 {
- reg = <0 0x92400000 0 0x2000000>;
+ reg = <0 0x92400000 0 0x1000000>;
no-map;
status = "disabled";
};
@@ -2414,12 +2414,12 @@ usb_dwc3_1: usb@38200000 {
};
dsp: dsp@3b6e8000 {
- compatible = "fsl,imx8mp-dsp";
+ compatible = "fsl,imx8mp-hifi4";
reg = <0x3b6e8000 0x88000>;
- mbox-names = "txdb0", "txdb1",
- "rxdb0", "rxdb1";
- mboxes = <&mu2 2 0>, <&mu2 2 1>,
- <&mu2 3 0>, <&mu2 3 1>;
+ power-domains = <&pgc_audio>;
+ mbox-names = "tx", "rx", "rxdb";
+ mboxes = <&mu2 0 0>, <&mu2 1 0>, <&mu2 3 0>;
+ firmware-name = "imx/dsp/hifi4.bin";
memory-region = <&dsp_reserved>;
status = "disabled";
};
--
2.43.0
^ permalink raw reply related [flat|nested] 10+ messages in thread* [PATCH v4 3/6] arm64: dts: imx8mp: Add DSP clocks
2025-02-12 8:52 [PATCH v4 0/6] Configure imx8mp dsp node for rproc usage Daniel Baluta
2025-02-12 8:52 ` [PATCH v4 1/6] arm64: dts: imx8mp: Add mu2 root clock Daniel Baluta
2025-02-12 8:52 ` [PATCH v4 2/6] arm64: dts: imx8mp: Configure dsp node for rproc usage Daniel Baluta
@ 2025-02-12 8:52 ` Daniel Baluta
2025-02-12 8:52 ` [PATCH v4 4/6] dt-bindings: clock: imx8mp: Add syscon compatible Daniel Baluta
` (2 subsequent siblings)
5 siblings, 0 replies; 10+ messages in thread
From: Daniel Baluta @ 2025-02-12 8:52 UTC (permalink / raw)
To: shawnguo, robh
Cc: s.hauer, kernel, krzk+dt, conor+dt, festevam, devicetree, imx,
linux-arm-kernel, linux-kernel, frank.li, aisheng.dong,
daniel.baluta, laurentiu.mihalcea, shengjiu.wang, iuliana.prodan,
a.fatoum, Daniel Baluta, Peng Fan
DSP core needs ocram, core and debug clocks.
Reviewed-by: Iuliana Prodan <iuliana.prodan@nxp.com>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com>
---
arch/arm64/boot/dts/freescale/imx8mp.dtsi | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/arch/arm64/boot/dts/freescale/imx8mp.dtsi b/arch/arm64/boot/dts/freescale/imx8mp.dtsi
index 2f94c55e4999..14cfbd228b45 100644
--- a/arch/arm64/boot/dts/freescale/imx8mp.dtsi
+++ b/arch/arm64/boot/dts/freescale/imx8mp.dtsi
@@ -2416,6 +2416,10 @@ usb_dwc3_1: usb@38200000 {
dsp: dsp@3b6e8000 {
compatible = "fsl,imx8mp-hifi4";
reg = <0x3b6e8000 0x88000>;
+ clocks = <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_OCRAMA_IPG>,
+ <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_DSP_ROOT>,
+ <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_DSPDBG_ROOT>;
+ clock-names = "ocram", "core", "debug";
power-domains = <&pgc_audio>;
mbox-names = "tx", "rx", "rxdb";
mboxes = <&mu2 0 0>, <&mu2 1 0>, <&mu2 3 0>;
--
2.43.0
^ permalink raw reply related [flat|nested] 10+ messages in thread* [PATCH v4 4/6] dt-bindings: clock: imx8mp: Add syscon compatible
2025-02-12 8:52 [PATCH v4 0/6] Configure imx8mp dsp node for rproc usage Daniel Baluta
` (2 preceding siblings ...)
2025-02-12 8:52 ` [PATCH v4 3/6] arm64: dts: imx8mp: Add DSP clocks Daniel Baluta
@ 2025-02-12 8:52 ` Daniel Baluta
2025-02-12 8:52 ` [PATCH v4 5/6] arm64: dts: imx8mp: Add fsl,dsp-ctrl property for dsp Daniel Baluta
2025-02-12 8:52 ` [PATCH v4 6/6] arm64: dts: Add dsp rproc related mem regions Daniel Baluta
5 siblings, 0 replies; 10+ messages in thread
From: Daniel Baluta @ 2025-02-12 8:52 UTC (permalink / raw)
To: shawnguo, robh
Cc: s.hauer, kernel, krzk+dt, conor+dt, festevam, devicetree, imx,
linux-arm-kernel, linux-kernel, frank.li, aisheng.dong,
daniel.baluta, laurentiu.mihalcea, shengjiu.wang, iuliana.prodan,
a.fatoum, Daniel Baluta, Krzysztof Kozlowski, Peng Fan
imx8mp audiomix contains a set of registers used to control
the DSP.
The dsp will use this to acquire o reference to audiomix registers
and handle the registers to control the dsp.
Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Reviewed-by: Iuliana Prodan <iuliana.prodan@nxp.com>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com>
---
.../devicetree/bindings/clock/imx8mp-audiomix.yaml | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/Documentation/devicetree/bindings/clock/imx8mp-audiomix.yaml b/Documentation/devicetree/bindings/clock/imx8mp-audiomix.yaml
index 6588a17a7d9a..0f870aaadba2 100644
--- a/Documentation/devicetree/bindings/clock/imx8mp-audiomix.yaml
+++ b/Documentation/devicetree/bindings/clock/imx8mp-audiomix.yaml
@@ -15,7 +15,9 @@ description: |
properties:
compatible:
- const: fsl,imx8mp-audio-blk-ctrl
+ items:
+ - const: fsl,imx8mp-audio-blk-ctrl
+ - const: syscon
reg:
maxItems: 1
@@ -63,7 +65,7 @@ examples:
#include <dt-bindings/clock/imx8mp-clock.h>
clock-controller@30e20000 {
- compatible = "fsl,imx8mp-audio-blk-ctrl";
+ compatible = "fsl,imx8mp-audio-blk-ctrl", "syscon";
reg = <0x30e20000 0x10000>;
#clock-cells = <1>;
clocks = <&clk IMX8MP_CLK_AUDIO_ROOT>,
--
2.43.0
^ permalink raw reply related [flat|nested] 10+ messages in thread* [PATCH v4 5/6] arm64: dts: imx8mp: Add fsl,dsp-ctrl property for dsp
2025-02-12 8:52 [PATCH v4 0/6] Configure imx8mp dsp node for rproc usage Daniel Baluta
` (3 preceding siblings ...)
2025-02-12 8:52 ` [PATCH v4 4/6] dt-bindings: clock: imx8mp: Add syscon compatible Daniel Baluta
@ 2025-02-12 8:52 ` Daniel Baluta
2025-02-12 16:02 ` Frank Li
2025-02-12 8:52 ` [PATCH v4 6/6] arm64: dts: Add dsp rproc related mem regions Daniel Baluta
5 siblings, 1 reply; 10+ messages in thread
From: Daniel Baluta @ 2025-02-12 8:52 UTC (permalink / raw)
To: shawnguo, robh
Cc: s.hauer, kernel, krzk+dt, conor+dt, festevam, devicetree, imx,
linux-arm-kernel, linux-kernel, frank.li, aisheng.dong,
daniel.baluta, laurentiu.mihalcea, shengjiu.wang, iuliana.prodan,
a.fatoum, Daniel Baluta, Peng Fan
Audio block control contains a set of registers and some of them used for
DSP configuration.
Drivers (rproc, SOF) are using fsl,dsp-ctrl property in order to control
the DSP, particularly for Run/Stall bit.
Note that audio block control doesn't offer the functionality to reset
thte DSP. Reset is done via DAP interface.
Reviewed-by: Iuliana Prodan <iuliana.prodan@nxp.com>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com>
---
arch/arm64/boot/dts/freescale/imx8mp.dtsi | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/arch/arm64/boot/dts/freescale/imx8mp.dtsi b/arch/arm64/boot/dts/freescale/imx8mp.dtsi
index 14cfbd228b45..46b33fbb9bd1 100644
--- a/arch/arm64/boot/dts/freescale/imx8mp.dtsi
+++ b/arch/arm64/boot/dts/freescale/imx8mp.dtsi
@@ -1609,7 +1609,7 @@ sdma2: dma-controller@30e10000 {
};
audio_blk_ctrl: clock-controller@30e20000 {
- compatible = "fsl,imx8mp-audio-blk-ctrl";
+ compatible = "fsl,imx8mp-audio-blk-ctrl", "syscon";
reg = <0x30e20000 0x10000>;
#clock-cells = <1>;
#reset-cells = <1>;
@@ -2425,6 +2425,7 @@ dsp: dsp@3b6e8000 {
mboxes = <&mu2 0 0>, <&mu2 1 0>, <&mu2 3 0>;
firmware-name = "imx/dsp/hifi4.bin";
memory-region = <&dsp_reserved>;
+ fsl,dsp-ctrl = <&audio_blk_ctrl>;
status = "disabled";
};
};
--
2.43.0
^ permalink raw reply related [flat|nested] 10+ messages in thread* Re: [PATCH v4 5/6] arm64: dts: imx8mp: Add fsl,dsp-ctrl property for dsp
2025-02-12 8:52 ` [PATCH v4 5/6] arm64: dts: imx8mp: Add fsl,dsp-ctrl property for dsp Daniel Baluta
@ 2025-02-12 16:02 ` Frank Li
2025-02-12 19:04 ` Laurentiu Mihalcea
0 siblings, 1 reply; 10+ messages in thread
From: Frank Li @ 2025-02-12 16:02 UTC (permalink / raw)
To: Daniel Baluta
Cc: shawnguo, robh, s.hauer, kernel, krzk+dt, conor+dt, festevam,
devicetree, imx, linux-arm-kernel, linux-kernel, aisheng.dong,
daniel.baluta, laurentiu.mihalcea, shengjiu.wang, iuliana.prodan,
a.fatoum, Peng Fan
On Wed, Feb 12, 2025 at 10:52:21AM +0200, Daniel Baluta wrote:
> Audio block control contains a set of registers and some of them used for
> DSP configuration.
>
> Drivers (rproc, SOF) are using fsl,dsp-ctrl property in order to control
> the DSP, particularly for Run/Stall bit.
>
> Note that audio block control doesn't offer the functionality to reset
> thte DSP. Reset is done via DAP interface.
>
> Reviewed-by: Iuliana Prodan <iuliana.prodan@nxp.com>
> Reviewed-by: Peng Fan <peng.fan@nxp.com>
> Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com>
> ---
> arch/arm64/boot/dts/freescale/imx8mp.dtsi | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/arch/arm64/boot/dts/freescale/imx8mp.dtsi b/arch/arm64/boot/dts/freescale/imx8mp.dtsi
> index 14cfbd228b45..46b33fbb9bd1 100644
> --- a/arch/arm64/boot/dts/freescale/imx8mp.dtsi
> +++ b/arch/arm64/boot/dts/freescale/imx8mp.dtsi
> @@ -1609,7 +1609,7 @@ sdma2: dma-controller@30e10000 {
> };
>
> audio_blk_ctrl: clock-controller@30e20000 {
> - compatible = "fsl,imx8mp-audio-blk-ctrl";
> + compatible = "fsl,imx8mp-audio-blk-ctrl", "syscon";
> reg = <0x30e20000 0x10000>;
> #clock-cells = <1>;
> #reset-cells = <1>;
> @@ -2425,6 +2425,7 @@ dsp: dsp@3b6e8000 {
> mboxes = <&mu2 0 0>, <&mu2 1 0>, <&mu2 3 0>;
> firmware-name = "imx/dsp/hifi4.bin";
> memory-region = <&dsp_reserved>;
> + fsl,dsp-ctrl = <&audio_blk_ctrl>;
I think kk's comments in v3
"This should have been implemented as reset controller, not syscon. It's
really poor choice to call everything syscon. It does not scale, does
not provide you runtime PM or probe ordering (device links). Quick look
at your drivers suggest that you have exacvtly that problems."
The above is quite good suggestion.
Your reply "But for Run/Stall bits we need to use a syscon.",
Run/Stall actually is reset, Most system, release reset signal means dsp/core
RUN.
Frank
> status = "disabled";
> };
> };
> --
> 2.43.0
>
^ permalink raw reply [flat|nested] 10+ messages in thread* Re: [PATCH v4 5/6] arm64: dts: imx8mp: Add fsl,dsp-ctrl property for dsp
2025-02-12 16:02 ` Frank Li
@ 2025-02-12 19:04 ` Laurentiu Mihalcea
2025-02-12 19:48 ` Frank Li
0 siblings, 1 reply; 10+ messages in thread
From: Laurentiu Mihalcea @ 2025-02-12 19:04 UTC (permalink / raw)
To: Frank Li, Daniel Baluta
Cc: shawnguo, robh, s.hauer, kernel, krzk+dt, conor+dt, festevam,
devicetree, imx, linux-arm-kernel, linux-kernel, aisheng.dong,
daniel.baluta, laurentiu.mihalcea, shengjiu.wang, iuliana.prodan,
a.fatoum, Peng Fan
On 2/12/2025 6:02 PM, Frank Li wrote:
> On Wed, Feb 12, 2025 at 10:52:21AM +0200, Daniel Baluta wrote:
>> Audio block control contains a set of registers and some of them used for
>> DSP configuration.
>>
>> Drivers (rproc, SOF) are using fsl,dsp-ctrl property in order to control
>> the DSP, particularly for Run/Stall bit.
>>
>> Note that audio block control doesn't offer the functionality to reset
>> thte DSP. Reset is done via DAP interface.
>>
>> Reviewed-by: Iuliana Prodan <iuliana.prodan@nxp.com>
>> Reviewed-by: Peng Fan <peng.fan@nxp.com>
>> Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com>
>> ---
>> arch/arm64/boot/dts/freescale/imx8mp.dtsi | 3 ++-
>> 1 file changed, 2 insertions(+), 1 deletion(-)
>>
>> diff --git a/arch/arm64/boot/dts/freescale/imx8mp.dtsi b/arch/arm64/boot/dts/freescale/imx8mp.dtsi
>> index 14cfbd228b45..46b33fbb9bd1 100644
>> --- a/arch/arm64/boot/dts/freescale/imx8mp.dtsi
>> +++ b/arch/arm64/boot/dts/freescale/imx8mp.dtsi
>> @@ -1609,7 +1609,7 @@ sdma2: dma-controller@30e10000 {
>> };
>>
>> audio_blk_ctrl: clock-controller@30e20000 {
>> - compatible = "fsl,imx8mp-audio-blk-ctrl";
>> + compatible = "fsl,imx8mp-audio-blk-ctrl", "syscon";
>> reg = <0x30e20000 0x10000>;
>> #clock-cells = <1>;
>> #reset-cells = <1>;
>> @@ -2425,6 +2425,7 @@ dsp: dsp@3b6e8000 {
>> mboxes = <&mu2 0 0>, <&mu2 1 0>, <&mu2 3 0>;
>> firmware-name = "imx/dsp/hifi4.bin";
>> memory-region = <&dsp_reserved>;
>> + fsl,dsp-ctrl = <&audio_blk_ctrl>;
> I think kk's comments in v3
>
> "This should have been implemented as reset controller, not syscon. It's
> really poor choice to call everything syscon. It does not scale, does
> not provide you runtime PM or probe ordering (device links). Quick look
> at your drivers suggest that you have exacvtly that problems."
>
> The above is quite good suggestion.
>
> Your reply "But for Run/Stall bits we need to use a syscon.",
>
> Run/Stall actually is reset, Most system, release reset signal means dsp/core
> RUN.
>
> Frank
RESET and STALL are quite different signals w/ different purposes so
calling them both RESET is confusing and inaccurate.
The syscon is used here to control the STALL signal (name of the bit we're using is RunStall)
and has nothing to do with the RESET signal, which is why it's implemented as a syscon rather
than a reset controller.
While Krzysztof's comment does make sense, I still find it odd to have this implemented as a
reset controller despite it not having anything to do with the RESET signal.
Also, do note that the two nodes are in clock provider-consumer relationship
so unless I'm gravely mistaken this should at least guarantee the probe order.
^ permalink raw reply [flat|nested] 10+ messages in thread* Re: [PATCH v4 5/6] arm64: dts: imx8mp: Add fsl,dsp-ctrl property for dsp
2025-02-12 19:04 ` Laurentiu Mihalcea
@ 2025-02-12 19:48 ` Frank Li
0 siblings, 0 replies; 10+ messages in thread
From: Frank Li @ 2025-02-12 19:48 UTC (permalink / raw)
To: Laurentiu Mihalcea
Cc: Daniel Baluta, shawnguo, robh, s.hauer, kernel, krzk+dt, conor+dt,
festevam, devicetree, imx, linux-arm-kernel, linux-kernel,
aisheng.dong, daniel.baluta, laurentiu.mihalcea, shengjiu.wang,
iuliana.prodan, a.fatoum, Peng Fan
On Wed, Feb 12, 2025 at 09:04:47PM +0200, Laurentiu Mihalcea wrote:
> On 2/12/2025 6:02 PM, Frank Li wrote:
> > On Wed, Feb 12, 2025 at 10:52:21AM +0200, Daniel Baluta wrote:
> >> Audio block control contains a set of registers and some of them used for
> >> DSP configuration.
> >>
> >> Drivers (rproc, SOF) are using fsl,dsp-ctrl property in order to control
> >> the DSP, particularly for Run/Stall bit.
> >>
> >> Note that audio block control doesn't offer the functionality to reset
> >> thte DSP. Reset is done via DAP interface.
> >>
> >> Reviewed-by: Iuliana Prodan <iuliana.prodan@nxp.com>
> >> Reviewed-by: Peng Fan <peng.fan@nxp.com>
> >> Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com>
> >> ---
> >> arch/arm64/boot/dts/freescale/imx8mp.dtsi | 3 ++-
> >> 1 file changed, 2 insertions(+), 1 deletion(-)
> >>
> >> diff --git a/arch/arm64/boot/dts/freescale/imx8mp.dtsi b/arch/arm64/boot/dts/freescale/imx8mp.dtsi
> >> index 14cfbd228b45..46b33fbb9bd1 100644
> >> --- a/arch/arm64/boot/dts/freescale/imx8mp.dtsi
> >> +++ b/arch/arm64/boot/dts/freescale/imx8mp.dtsi
> >> @@ -1609,7 +1609,7 @@ sdma2: dma-controller@30e10000 {
> >> };
> >>
> >> audio_blk_ctrl: clock-controller@30e20000 {
> >> - compatible = "fsl,imx8mp-audio-blk-ctrl";
> >> + compatible = "fsl,imx8mp-audio-blk-ctrl", "syscon";
> >> reg = <0x30e20000 0x10000>;
> >> #clock-cells = <1>;
> >> #reset-cells = <1>;
> >> @@ -2425,6 +2425,7 @@ dsp: dsp@3b6e8000 {
> >> mboxes = <&mu2 0 0>, <&mu2 1 0>, <&mu2 3 0>;
> >> firmware-name = "imx/dsp/hifi4.bin";
> >> memory-region = <&dsp_reserved>;
> >> + fsl,dsp-ctrl = <&audio_blk_ctrl>;
> > I think kk's comments in v3
> >
> > "This should have been implemented as reset controller, not syscon. It's
> > really poor choice to call everything syscon. It does not scale, does
> > not provide you runtime PM or probe ordering (device links). Quick look
> > at your drivers suggest that you have exacvtly that problems."
> >
> > The above is quite good suggestion.
> >
> > Your reply "But for Run/Stall bits we need to use a syscon.",
> >
> > Run/Stall actually is reset, Most system, release reset signal means dsp/core
> > RUN.
> >
> > Frank
>
> RESET and STALL are quite different signals w/ different purposes so
> calling them both RESET is confusing and inaccurate.
>
> The syscon is used here to control the STALL signal (name of the bit we're using is RunStall)
> and has nothing to do with the RESET signal, which is why it's implemented as a syscon rather
> than a reset controller.
>
> While Krzysztof's comment does make sense, I still find it odd to have this implemented as a
> reset controller despite it not having anything to do with the RESET signal.
Regardless hardware signal name, the logic function is that release a
signal and let DSP core running. So we still model it as reset-controllers.
Did you actaully pause/resume DSP running at your drivers?
Frank
>
> Also, do note that the two nodes are in clock provider-consumer relationship
> so unless I'm gravely mistaken this should at least guarantee the probe order.
^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH v4 6/6] arm64: dts: Add dsp rproc related mem regions
2025-02-12 8:52 [PATCH v4 0/6] Configure imx8mp dsp node for rproc usage Daniel Baluta
` (4 preceding siblings ...)
2025-02-12 8:52 ` [PATCH v4 5/6] arm64: dts: imx8mp: Add fsl,dsp-ctrl property for dsp Daniel Baluta
@ 2025-02-12 8:52 ` Daniel Baluta
5 siblings, 0 replies; 10+ messages in thread
From: Daniel Baluta @ 2025-02-12 8:52 UTC (permalink / raw)
To: shawnguo, robh
Cc: s.hauer, kernel, krzk+dt, conor+dt, festevam, devicetree, imx,
linux-arm-kernel, linux-kernel, frank.li, aisheng.dong,
daniel.baluta, laurentiu.mihalcea, shengjiu.wang, iuliana.prodan,
a.fatoum, Daniel Baluta, Peng Fan
With imx8mp-evk board we are now configuring 'dsp' node for rproc usage,
so add rproc specific memory regions.
Also, enable dsp node because it is ready to be used.
Reviewed-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
Reviewed-by: Iuliana Prodan <iuliana.prodan@nxp.com>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com>
---
arch/arm64/boot/dts/freescale/imx8mp-evk.dts | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/arch/arm64/boot/dts/freescale/imx8mp-evk.dts b/arch/arm64/boot/dts/freescale/imx8mp-evk.dts
index 68e12a752edd..468bbb84ceaf 100644
--- a/arch/arm64/boot/dts/freescale/imx8mp-evk.dts
+++ b/arch/arm64/boot/dts/freescale/imx8mp-evk.dts
@@ -291,6 +291,16 @@ &aud2htx {
status = "okay";
};
+&dsp_reserved {
+ status = "okay";
+};
+
+&dsp {
+ memory-region = <&dsp_vdev0buffer>, <&dsp_vdev0vring0>,
+ <&dsp_vdev0vring1>, <&dsp_reserved>;
+ status = "okay";
+};
+
&eqos {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_eqos>;
--
2.43.0
^ permalink raw reply related [flat|nested] 10+ messages in thread