2023-05-02 14:16:56

by Hari Nagalla

[permalink] [raw]
Subject: [PATCH 0/2] Add R5F and C7x DSP nodes for AM62a SoC

This series adds the R5F processor nodes and C7x DSP node for
AM62a SoC.

The first patch adds the nodes to the SoC device tree and the second
patch reserves the memory for remote rpoc IPCs on AM62a-SK.

Hari Nagalla (2):
arm64: dts: ti: k3-am62a: Add remote proc nodes
arm64: dts: ti: k3-am62a7-sk: Enable remote proc nodes

arch/arm64/boot/dts/ti/k3-am62a-main.dtsi | 11 ++++
arch/arm64/boot/dts/ti/k3-am62a-mcu.dtsi | 23 +++++++
arch/arm64/boot/dts/ti/k3-am62a-wakeup.dtsi | 23 +++++++
arch/arm64/boot/dts/ti/k3-am62a7-sk.dts | 69 +++++++++++++++++++++
4 files changed, 126 insertions(+)

--
2.34.1


2023-05-02 14:17:03

by Hari Nagalla

[permalink] [raw]
Subject: [PATCH 1/2] arm64: dts: ti: k3-am62a: Add remote proc nodes

AM62A SoC devices have a C7x DSP in main voltage domain and two single
core R5F processors in MCU and Wakeup domains respectively. The C7x
DSP subsystem has various accelerators for Deep learning purposes. The
R5F processor in wakeup domain is used as a device manager for the SoC.

Signed-off-by: Jai Luthra <[email protected]>
Signed-off-by: Devarsh Thakkar <[email protected]>
Signed-off-by: Hari Nagalla <[email protected]>
---
arch/arm64/boot/dts/ti/k3-am62a-main.dtsi | 11 ++++++++++
arch/arm64/boot/dts/ti/k3-am62a-mcu.dtsi | 23 +++++++++++++++++++++
arch/arm64/boot/dts/ti/k3-am62a-wakeup.dtsi | 23 +++++++++++++++++++++
3 files changed, 57 insertions(+)

diff --git a/arch/arm64/boot/dts/ti/k3-am62a-main.dtsi b/arch/arm64/boot/dts/ti/k3-am62a-main.dtsi
index 393a1a40b68b..81a017b2f2b2 100644
--- a/arch/arm64/boot/dts/ti/k3-am62a-main.dtsi
+++ b/arch/arm64/boot/dts/ti/k3-am62a-main.dtsi
@@ -660,4 +660,15 @@ ecap2: pwm@23120000 {
clock-names = "fck";
status = "disabled";
};
+
+ c7x_0: dsp@7e000000 {
+ compatible = "ti,am62a-c7xv-dsp";
+ reg = <0x00 0x7e000000 0x00 0x00100000>;
+ reg-names = "l2sram";
+ ti,sci = <&dmsc>;
+ ti,sci-dev-id = <208>;
+ ti,sci-proc-ids = <0x04 0xff>;
+ resets = <&k3_reset 208 1>;
+ firmware-name = "am62a-c71_0-fw";
+ };
};
diff --git a/arch/arm64/boot/dts/ti/k3-am62a-mcu.dtsi b/arch/arm64/boot/dts/ti/k3-am62a-mcu.dtsi
index 2bb813e784a2..605df62d1d28 100644
--- a/arch/arm64/boot/dts/ti/k3-am62a-mcu.dtsi
+++ b/arch/arm64/boot/dts/ti/k3-am62a-mcu.dtsi
@@ -87,4 +87,27 @@ mcu_gpio0: gpio@4201000 {
clock-names = "gpio";
status = "disabled";
};
+
+ mcu_r5fss0: r5fss@79000000 {
+ compatible = "ti,am62-r5fss";
+ #address-cells = <1>;
+ #size-cells = <1>;
+ ranges = <0x79000000 0x00 0x79000000 0x8000>,
+ <0x79020000 0x00 0x79020000 0x8000>;
+ power-domains = <&k3_pds 7 TI_SCI_PD_EXCLUSIVE>;
+ mcu_r5fss0_core0: r5f@79000000 {
+ compatible = "ti,am62-r5f";
+ reg = <0x79000000 0x00008000>,
+ <0x79020000 0x00008000>;
+ reg-names = "atcm", "btcm";
+ ti,sci = <&dmsc>;
+ ti,sci-dev-id = <9>;
+ ti,sci-proc-ids = <0x03 0xff>;
+ resets = <&k3_reset 9 1>;
+ firmware-name = "am62a-mcu-r5f0_0-fw";
+ ti,atcm-enable = <0>;
+ ti,btcm-enable = <1>;
+ ti,loczrama = <0>;
+ };
+ };
};
diff --git a/arch/arm64/boot/dts/ti/k3-am62a-wakeup.dtsi b/arch/arm64/boot/dts/ti/k3-am62a-wakeup.dtsi
index 81d984414fd4..c75f6e59dff3 100644
--- a/arch/arm64/boot/dts/ti/k3-am62a-wakeup.dtsi
+++ b/arch/arm64/boot/dts/ti/k3-am62a-wakeup.dtsi
@@ -51,4 +51,27 @@ wkup_rtc0: rtc@2b1f0000 {
wakeup-source;
status = "disabled";
};
+
+ wkup_r5fss0: r5fss@78000000 {
+ compatible = "ti,am62-r5fss";
+ #address-cells = <1>;
+ #size-cells = <1>;
+ ranges = <0x78000000 0x00 0x78000000 0x8000>,
+ <0x78100000 0x00 0x78100000 0x8000>;
+ power-domains = <&k3_pds 119 TI_SCI_PD_EXCLUSIVE>;
+ wkup_r5fss0_core0: r5f@78000000 {
+ compatible = "ti,am62-r5f";
+ reg = <0x78000000 0x00008000>,
+ <0x78100000 0x00008000>;
+ reg-names = "atcm", "btcm";
+ ti,sci = <&dmsc>;
+ ti,sci-dev-id = <121>;
+ ti,sci-proc-ids = <0x01 0xff>;
+ resets = <&k3_reset 121 1>;
+ firmware-name = "am62-wkup-r5f0_0-fw";
+ ti,atcm-enable = <1>;
+ ti,btcm-enable = <1>;
+ ti,loczrama = <1>;
+ };
+ };
};
--
2.34.1

2023-05-02 14:17:08

by Hari Nagalla

[permalink] [raw]
Subject: [PATCH 2/2] arm64: dts: ti: k3-am62a7-sk: Enable remote proc nodes

Reserve memory for remote rpoc IPC and bind the mailbox assignments
for each remote proc. Two memory regions are reserved for each
remote processor. The first region of 1Mb of memory is used for Vring
shared buffers and the second region is used as external memory to the
remote processor, resource table and as tracebuffer.

Signed-off-by: Devarsh Thakkar <[email protected]>
Signed-off-by: Hari Nagalla <[email protected]>
---
arch/arm64/boot/dts/ti/k3-am62a7-sk.dts | 69 +++++++++++++++++++++++++
1 file changed, 69 insertions(+)

diff --git a/arch/arm64/boot/dts/ti/k3-am62a7-sk.dts b/arch/arm64/boot/dts/ti/k3-am62a7-sk.dts
index f6a67f072dca..231ff393e241 100644
--- a/arch/arm64/boot/dts/ti/k3-am62a7-sk.dts
+++ b/arch/arm64/boot/dts/ti/k3-am62a7-sk.dts
@@ -49,11 +49,41 @@ secure_ddr: optee@9e800000 {
no-map;
};

+ wkup_r5fss0_core0_dma_memory_region: r5f-dma-memory@9c800000 {
+ compatible = "shared-dma-pool";
+ reg = <0x00 0x9c800000 0x00 0x100000>;
+ no-map;
+ };
+
wkup_r5fss0_core0_memory_region: r5f-dma-memory@9c900000 {
compatible = "shared-dma-pool";
reg = <0x00 0x9c900000 0x00 0x01e00000>;
no-map;
};
+
+ mcu_r5fss0_core0_dma_memory_region: r5f-dma-memory@9b800000 {
+ compatible = "shared-dma-pool";
+ reg = <0x00 0x9b800000 0x00 0x100000>;
+ no-map;
+ };
+
+ mcu_r5fss0_core0_memory_region: r5f-dma-memory@9b900000 {
+ compatible = "shared-dma-pool";
+ reg = <0x00 0x9b900000 0x00 0x0f00000>;
+ no-map;
+ };
+
+ c7x_0_dma_memory_region: c7x-dma-memory@99800000 {
+ compatible = "shared-dma-pool";
+ reg = <0x00 0x99800000 0x00 0x100000>;
+ no-map;
+ };
+
+ c7x_0_memory_region: c7x-memory@99900000 {
+ compatible = "shared-dma-pool";
+ reg = <0x00 0x99900000 0x00 0x01efffff>;
+ no-map;
+ };
};

vmain_pd: regulator-0 {
@@ -292,3 +322,42 @@ cpsw3g_phy0: ethernet-phy@0 {
ti,min-output-impedance;
};
};
+
+&mailbox0_cluster0 {
+ mbox_r5_0: mbox-r5-0 {
+ ti,mbox-rx = <0 0 0>;
+ ti,mbox-tx = <1 0 0>;
+ };
+};
+
+&mailbox0_cluster1 {
+ mbox_c7x_0: mbox-c7x-0 {
+ ti,mbox-rx = <0 0 0>;
+ ti,mbox-tx = <1 0 0>;
+ };
+};
+
+&mailbox0_cluster2 {
+ mbox_mcu_r5_0: mbox-mcu_r5-0 {
+ ti,mbox-rx = <0 0 0>;
+ ti,mbox-tx = <1 0 0>;
+ };
+};
+
+&c7x_0 {
+ mboxes = <&mailbox0_cluster1 &mbox_c7x_0>;
+ memory-region = <&c7x_0_dma_memory_region>,
+ <&c7x_0_memory_region>;
+};
+
+&wkup_r5fss0_core0 {
+ mboxes = <&mailbox0_cluster0 &mbox_r5_0>;
+ memory-region = <&wkup_r5fss0_core0_dma_memory_region>,
+ <&wkup_r5fss0_core0_memory_region>;
+};
+
+&mcu_r5fss0_core0 {
+ mboxes = <&mailbox0_cluster2 &mbox_mcu_r5_0>;
+ memory-region = <&mcu_r5fss0_core0_dma_memory_region>,
+ <&mcu_r5fss0_core0_memory_region>;
+};
--
2.34.1

2023-05-09 16:39:45

by Devarsh Thakkar

[permalink] [raw]
Subject: Re: [PATCH 0/2] Add R5F and C7x DSP nodes for AM62a SoC

Hi Hari,

Thanks for the series.

On 02/05/23 19:44, Hari Nagalla wrote:
> This series adds the R5F processor nodes and C7x DSP node for
> AM62a SoC.
>
> The first patch adds the nodes to the SoC device tree and the second
> patch reserves the memory for remote rpoc IPCs on AM62a-SK.
>
> Hari Nagalla (2):
> arm64: dts: ti: k3-am62a: Add remote proc nodes
> arm64: dts: ti: k3-am62a7-sk: Enable remote proc nodes
>

I think good to preserve the authorship if porting from an existing
tree. Also in my opinion good to keep split patches if coming from
different authors and to different files.

Regards
Devarsh

> arch/arm64/boot/dts/ti/k3-am62a-main.dtsi | 11 ++++
> arch/arm64/boot/dts/ti/k3-am62a-mcu.dtsi | 23 +++++++
> arch/arm64/boot/dts/ti/k3-am62a-wakeup.dtsi | 23 +++++++
> arch/arm64/boot/dts/ti/k3-am62a7-sk.dts | 69 +++++++++++++++++++++
> 4 files changed, 126 insertions(+)
>

2023-06-15 05:44:14

by Vignesh Raghavendra

[permalink] [raw]
Subject: Re: [PATCH 0/2] Add R5F and C7x DSP nodes for AM62a SoC



On 02/05/23 19:44, Hari Nagalla wrote:
> This series adds the R5F processor nodes and C7x DSP node for
> AM62a SoC.
>
> The first patch adds the nodes to the SoC device tree and the second
> patch reserves the memory for remote rpoc IPCs on AM62a-SK.
>
> Hari Nagalla (2):
> arm64: dts: ti: k3-am62a: Add remote proc nodes
> arm64: dts: ti: k3-am62a7-sk: Enable remote proc nodes
>
> arch/arm64/boot/dts/ti/k3-am62a-main.dtsi | 11 ++++
> arch/arm64/boot/dts/ti/k3-am62a-mcu.dtsi | 23 +++++++
> arch/arm64/boot/dts/ti/k3-am62a-wakeup.dtsi | 23 +++++++
> arch/arm64/boot/dts/ti/k3-am62a7-sk.dts | 69 +++++++++++++++++++++
> 4 files changed, 126 insertions(+)
>

Please fix dtbs_check issues:

+arch/arm64/boot/dts/ti/k3-am62a7-sk.dts: /bus@f0000/mailbox@29020000/mbox-mcu_r5-0: Character '_' not recommended in node name
+/workdir/arch/arm64/boot/dts/ti/k3-am62a7-sk.dtb: dsp@7e000000: reg: [[0, 2113929216, 0, 1048576]] is too short
+/workdir/arch/arm64/boot/dts/ti/k3-am62a7-sk.dtb: dsp@7e000000: reg-names: ['l2sram'] is too short
+/workdir/arch/arm64/boot/dts/ti/k3-am62a7-sk.dtb: dsp@7e000000: Unevaluated properties are not allowed ('reg', 'reg-names' were unexpected)
+arch/arm64/boot/dts/ti/k3-am62a7-sk.dts: /bus@f0000/mailbox@29020000/mbox-mcu_r5-0: Character '_' not recommended in node name
+/workdir/arch/arm64/boot/dts/ti/k3-am62a7-sk.dtb: mailbox@29020000: 'mbox-mcu_r5-0' does not match any of the regexes: '^mbox-[a-z0-9-]+$', 'pinctrl-[0-9]+'


--
Regards
Vignesh