[PATCH v7 06/11] arm64: dts: ti: k3-am62a7-sk: Enable IPC with remote processors
Bryan Brattlof
bb at ti.com
Sat Apr 19 08:04:51 PDT 2025
On April 15, 2025 thus sayeth Judith Mendez:
> From: Devarsh Thakkar <devarsht at ti.com>
>
> For each remote proc, reserve memory for IPC and bind the mailbox
> assignments. 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
> for the resource table and for tracebuffer allocations.
>
> Signed-off-by: Devarsh Thakkar <devarsht at ti.com>
> Signed-off-by: Hari Nagalla <hnagalla at ti.com>
> Signed-off-by: Judith Mendez <jm at ti.com>
> Acked-by: Andrew Davis <afd at ti.com>
> Reviewed-by: Beleswar Padhi <b-padhi at ti.com>
> Reviewed-by: Jai Luthra <jai.luthra at ideasonboard.com>
> ---
> arch/arm64/boot/dts/ti/k3-am62a7-sk.dts | 96 +++++++++++++++++++++++--
> 1 file changed, 90 insertions(+), 6 deletions(-)
>
> diff --git a/arch/arm64/boot/dts/ti/k3-am62a7-sk.dts b/arch/arm64/boot/dts/ti/k3-am62a7-sk.dts
> index 1c9d95696c839..7d817b447c1d0 100644
> --- a/arch/arm64/boot/dts/ti/k3-am62a7-sk.dts
> +++ b/arch/arm64/boot/dts/ti/k3-am62a7-sk.dts
> @@ -52,6 +52,42 @@ linux,cma {
> linux,cma-default;
> };
>
> + c7x_0_dma_memory_region: c7x-dma-memory at 99800000 {
> + compatible = "shared-dma-pool";
> + reg = <0x00 0x99800000 0x00 0x100000>;
> + no-map;
> + };
> +
> + c7x_0_memory_region: c7x-memory at 99900000 {
> + compatible = "shared-dma-pool";
> + reg = <0x00 0x99900000 0x00 0xf00000>;
> + no-map;
> + };
> +
I know this has been a push for our IPC and MCU+ teams for a couple
windows now, though I do want to point out that some AM62A devices
(AM62A12AQMSIAMBRQ1) will not even have a C7x.
It's relatively easy to cut nodes out that describe the hardware in the
bootloaders, but once we start configuring them to demo something it
becomes impossible to unwind that during boot.
We can clam we only support the superset devices but I just wanted to
make this email so I could point people to it when they inevitably ask
why their parts do not work out of the box with Linux.
Naked-by: Bryan Brattlof <bb at ti.com>
~Bryan
> + mcu_r5fss0_core0_dma_memory_region: r5f-dma-memory at 9b800000 {
> + compatible = "shared-dma-pool";
> + reg = <0x00 0x9b800000 0x00 0x100000>;
> + no-map;
> + };
> +
> + mcu_r5fss0_core0_memory_region: r5f-dma-memory at 9b900000 {
> + compatible = "shared-dma-pool";
> + reg = <0x00 0x9b900000 0x00 0xf00000>;
> + no-map;
> + };
> +
> + wkup_r5fss0_core0_dma_memory_region: r5f-dma-memory at 9c800000 {
> + compatible = "shared-dma-pool";
> + reg = <0x00 0x9c800000 0x00 0x100000>;
> + no-map;
> + };
> +
> + wkup_r5fss0_core0_memory_region: r5f-dma-memory at 9c900000 {
> + compatible = "shared-dma-pool";
> + reg = <0x00 0x9c900000 0x00 0xf00000>;
> + no-map;
> + };
> +
> secure_tfa_ddr: tfa at 9e780000 {
> reg = <0x00 0x9e780000 0x00 0x80000>;
> alignment = <0x1000>;
> @@ -63,12 +99,6 @@ secure_ddr: optee at 9e800000 {
> alignment = <0x1000>;
> no-map;
> };
> -
> - wkup_r5fss0_core0_memory_region: r5f-dma-memory at 9c900000 {
> - compatible = "shared-dma-pool";
> - reg = <0x00 0x9c900000 0x00 0x01e00000>;
> - no-map;
> - };
> };
>
> opp-table {
> @@ -741,3 +771,57 @@ dpi1_out: endpoint {
> };
> };
> };
> +
> +&mailbox0_cluster0 {
> + status = "okay";
> +
> + mbox_r5_0: mbox-r5-0 {
> + ti,mbox-rx = <0 0 0>;
> + ti,mbox-tx = <1 0 0>;
> + };
> +};
> +
> +&mailbox0_cluster1 {
> + status = "okay";
> +
> + mbox_c7x_0: mbox-c7x-0 {
> + ti,mbox-rx = <0 0 0>;
> + ti,mbox-tx = <1 0 0>;
> + };
> +};
> +
> +&mailbox0_cluster2 {
> + status = "okay";
> +
> + mbox_mcu_r5_0: mbox-mcu-r5-0 {
> + ti,mbox-rx = <0 0 0>;
> + ti,mbox-tx = <1 0 0>;
> + };
> +};
> +
> +&wkup_r5fss0 {
> + status = "okay";
> +};
> +
> +&wkup_r5fss0_core0 {
> + mboxes = <&mailbox0_cluster0>, <&mbox_r5_0>;
> + memory-region = <&wkup_r5fss0_core0_dma_memory_region>,
> + <&wkup_r5fss0_core0_memory_region>;
> +};
> +
> +&mcu_r5fss0 {
> + status = "okay";
> +};
> +
> +&mcu_r5fss0_core0 {
> + mboxes = <&mailbox0_cluster2>, <&mbox_mcu_r5_0>;
> + memory-region = <&mcu_r5fss0_core0_dma_memory_region>,
> + <&mcu_r5fss0_core0_memory_region>;
> +};
> +
> +&c7x_0 {
> + mboxes = <&mailbox0_cluster1>, <&mbox_c7x_0>;
> + memory-region = <&c7x_0_dma_memory_region>,
> + <&c7x_0_memory_region>;
> + status = "okay";
> +};
> --
> 2.49.0
>
More information about the linux-arm-kernel
mailing list