From: Beleswar Padhi <b-padhi@ti.com>
To: <nm@ti.com>, <vigneshr@ti.com>, <kristo@kernel.org>,
<robh@kernel.org>, <krzk+dt@kernel.org>, <conor+dt@kernel.org>
Cc: <afd@ti.com>, <u-kumar1@ti.com>, <hnagalla@ti.com>, <jm@ti.com>,
<d-gole@ti.com>, <b-padhi@ti.com>, <devicetree@vger.kernel.org>,
<linux-kernel@vger.kernel.org>,
<linux-arm-kernel@lists.infradead.org>,
Diogo Ivo <diogo.ivo@siemens.com>,
Li Hua Qian <huaqian.li@siemens.com>,
Jan Kiszka <jan.kiszka@siemens.com>,
Baocheng Su <baocheng.su@siemens.com>,
Benedikt Niedermayr <benedikt.niedermayr@siemens.com>
Subject: [PATCH v4 34/34] arm64: dts: ti: k3-am65-ti-ipc-firmware: Refactor IPC cfg into new dtsi
Date: Mon, 8 Sep 2025 19:58:26 +0530 [thread overview]
Message-ID: <20250908142826.1828676-35-b-padhi@ti.com> (raw)
In-Reply-To: <20250908142826.1828676-1-b-padhi@ti.com>
The TI K3 AM65 SoCs have multiple programmable remote processors like
R5Fs. The TI SDKs for AM65 SoCs offer sample firmwares which could be
run on these cores to demonstrate an "echo" IPC test. Those firmware
require certain memory carveouts to be reserved from system memory,
timers to be reserved, and certain mailbox configurations for interrupt
based messaging. These configurations could be different for a different
firmware.
While DT is not meant for system configurations, at least refactor these
configurations from board level DTS into a dtsi for now. This dtsi for
TI IPC firmware is board-independent and can be applied to all boards
from the same SoC Family. This gets rid of code duplication and allows
more freedom for users developing custom firmware (or no firmware) to
utilize system resources better; easily by swapping out this dtsi. To
maintain backward compatibility, the dtsi is included in all boards.
Signed-off-by: Beleswar Padhi <b-padhi@ti.com>
---
Cc: Diogo Ivo <diogo.ivo@siemens.com>
Cc: Li Hua Qian <huaqian.li@siemens.com>
Cc: Jan Kiszka <jan.kiszka@siemens.com>
Cc: Baocheng Su <baocheng.su@siemens.com>
Cc: Benedikt Niedermayr <benedikt.niedermayr@siemens.com>
Requesting for review/test of this patch.
v4: Changelog:
1. Updated carveout node names to generic 'memory@addr'
Link to v3:
https://lore.kernel.org/all/20250905051846.1189612-34-b-padhi@ti.com/
v3: Changelog:
1. None
Link to v2:
https://lore.kernel.org/all/20250823160901.2177841-34-b-padhi@ti.com/
v2: Changelog:
1. Re-ordered patch from [PATCH 32/33] to [PATCH v2 33/33].
Link to v1:
https://lore.kernel.org/all/20250814223839.3256046-33-b-padhi@ti.com/
.../boot/dts/ti/k3-am65-iot2050-common.dtsi | 62 ++----------------
.../boot/dts/ti/k3-am65-ti-ipc-firmware.dtsi | 64 +++++++++++++++++++
.../arm64/boot/dts/ti/k3-am654-base-board.dts | 58 +----------------
3 files changed, 72 insertions(+), 112 deletions(-)
create mode 100644 arch/arm64/boot/dts/ti/k3-am65-ti-ipc-firmware.dtsi
diff --git a/arch/arm64/boot/dts/ti/k3-am65-iot2050-common.dtsi b/arch/arm64/boot/dts/ti/k3-am65-iot2050-common.dtsi
index df2eed0b4048..42ba3dab2fc1 100644
--- a/arch/arm64/boot/dts/ti/k3-am65-iot2050-common.dtsi
+++ b/arch/arm64/boot/dts/ti/k3-am65-iot2050-common.dtsi
@@ -59,24 +59,6 @@ mcu_r5fss0_core0_memory_region: memory@a0100000 {
no-map;
};
- mcu_r5fss0_core1_dma_memory_region: memory@a1000000 {
- compatible = "shared-dma-pool";
- reg = <0 0xa1000000 0 0x100000>;
- no-map;
- };
-
- mcu_r5fss0_core1_memory_region: memory@a1100000 {
- compatible = "shared-dma-pool";
- reg = <0 0xa1100000 0 0xf00000>;
- no-map;
- };
-
- rtos_ipc_memory_region: memory@a2000000 {
- reg = <0x00 0xa2000000 0x00 0x00200000>;
- alignment = <0x1000>;
- no-map;
- };
-
/* To reserve the power-on(PON) reason for watchdog reset */
wdt_reset_memory_region: wdt-memory@a2200000 {
reg = <0x00 0xa2200000 0x00 0x1000>;
@@ -582,44 +564,6 @@ &pcie1_rc {
reset-gpios = <&wkup_gpio0 27 GPIO_ACTIVE_HIGH>;
};
-&mailbox0_cluster0 {
- status = "okay";
- interrupts = <436>;
-
- mbox_mcu_r5fss0_core0: mbox-mcu-r5fss0-core0 {
- ti,mbox-tx = <1 0 0>;
- ti,mbox-rx = <0 0 0>;
- };
-};
-
-&mailbox0_cluster1 {
- status = "okay";
- interrupts = <432>;
-
- mbox_mcu_r5fss0_core1: mbox-mcu-r5fss0-core1 {
- ti,mbox-tx = <1 0 0>;
- ti,mbox-rx = <0 0 0>;
- };
-};
-
-&mcu_r5fss0 {
- status = "okay";
-};
-
-&mcu_r5fss0_core0 {
- memory-region = <&mcu_r5fss0_core0_dma_memory_region>,
- <&mcu_r5fss0_core0_memory_region>;
- mboxes = <&mailbox0_cluster0 &mbox_mcu_r5fss0_core0>;
- status = "okay";
-};
-
-&mcu_r5fss0_core1 {
- memory-region = <&mcu_r5fss0_core1_dma_memory_region>,
- <&mcu_r5fss0_core1_memory_region>;
- mboxes = <&mailbox0_cluster1 &mbox_mcu_r5fss0_core1>;
- status = "okay";
-};
-
&mcu_rti1 {
memory-region = <&wdt_reset_memory_region>;
};
@@ -692,3 +636,9 @@ &mcu_r5fss0 {
/* lock-step mode not supported on iot2050 boards */
ti,cluster-mode = <0>;
};
+
+#include "k3-am65-ti-ipc-firmware.dtsi"
+
+&rtos_ipc_memory_region {
+ reg = <0x00 0xa2000000 0x00 0x00200000>;
+};
diff --git a/arch/arm64/boot/dts/ti/k3-am65-ti-ipc-firmware.dtsi b/arch/arm64/boot/dts/ti/k3-am65-ti-ipc-firmware.dtsi
new file mode 100644
index 000000000000..61ab0357fc0d
--- /dev/null
+++ b/arch/arm64/boot/dts/ti/k3-am65-ti-ipc-firmware.dtsi
@@ -0,0 +1,64 @@
+// SPDX-License-Identifier: GPL-2.0-only OR MIT
+/**
+ * Device Tree Source for enabling IPC using TI SDK firmware on AM65 SoCs
+ *
+ * Copyright (C) 2016-2025 Texas Instruments Incorporated - https://www.ti.com/
+ */
+
+&reserved_memory {
+ mcu_r5fss0_core1_dma_memory_region: memory@a1000000 {
+ compatible = "shared-dma-pool";
+ reg = <0 0xa1000000 0 0x100000>;
+ no-map;
+ };
+
+ mcu_r5fss0_core1_memory_region: memory@a1100000 {
+ compatible = "shared-dma-pool";
+ reg = <0 0xa1100000 0 0xf00000>;
+ no-map;
+ };
+
+ rtos_ipc_memory_region: memory@a2000000 {
+ reg = <0x00 0xa2000000 0x00 0x00100000>;
+ alignment = <0x1000>;
+ no-map;
+ };
+};
+
+&mailbox0_cluster0 {
+ status = "okay";
+ interrupts = <436>;
+
+ mbox_mcu_r5fss0_core0: mbox-mcu-r5fss0-core0 {
+ ti,mbox-tx = <1 0 0>;
+ ti,mbox-rx = <0 0 0>;
+ };
+};
+
+&mailbox0_cluster1 {
+ status = "okay";
+ interrupts = <432>;
+
+ mbox_mcu_r5fss0_core1: mbox-mcu-r5fss0-core1 {
+ ti,mbox-tx = <1 0 0>;
+ ti,mbox-rx = <0 0 0>;
+ };
+};
+
+&mcu_r5fss0 {
+ status = "okay";
+};
+
+&mcu_r5fss0_core0 {
+ memory-region = <&mcu_r5fss0_core0_dma_memory_region>,
+ <&mcu_r5fss0_core0_memory_region>;
+ mboxes = <&mailbox0_cluster0 &mbox_mcu_r5fss0_core0>;
+ status = "okay";
+};
+
+&mcu_r5fss0_core1 {
+ memory-region = <&mcu_r5fss0_core1_dma_memory_region>,
+ <&mcu_r5fss0_core1_memory_region>;
+ mboxes = <&mailbox0_cluster1 &mbox_mcu_r5fss0_core1>;
+ status = "okay";
+};
diff --git a/arch/arm64/boot/dts/ti/k3-am654-base-board.dts b/arch/arm64/boot/dts/ti/k3-am654-base-board.dts
index 3ca771a4f9c7..0c42c486d83a 100644
--- a/arch/arm64/boot/dts/ti/k3-am654-base-board.dts
+++ b/arch/arm64/boot/dts/ti/k3-am654-base-board.dts
@@ -61,24 +61,6 @@ mcu_r5fss0_core0_memory_region: memory@a0100000 {
reg = <0 0xa0100000 0 0xf00000>;
no-map;
};
-
- mcu_r5fss0_core1_dma_memory_region: memory@a1000000 {
- compatible = "shared-dma-pool";
- reg = <0 0xa1000000 0 0x100000>;
- no-map;
- };
-
- mcu_r5fss0_core1_memory_region: memory@a1100000 {
- compatible = "shared-dma-pool";
- reg = <0 0xa1100000 0 0xf00000>;
- no-map;
- };
-
- rtos_ipc_memory_region: memory@a2000000 {
- reg = <0x00 0xa2000000 0x00 0x00100000>;
- alignment = <0x1000>;
- no-map;
- };
};
gpio-keys {
@@ -521,44 +503,6 @@ &serdes1 {
status = "disabled";
};
-&mailbox0_cluster0 {
- status = "okay";
- interrupts = <436>;
-
- mbox_mcu_r5fss0_core0: mbox-mcu-r5fss0-core0 {
- ti,mbox-tx = <1 0 0>;
- ti,mbox-rx = <0 0 0>;
- };
-};
-
-&mailbox0_cluster1 {
- status = "okay";
- interrupts = <432>;
-
- mbox_mcu_r5fss0_core1: mbox-mcu-r5fss0-core1 {
- ti,mbox-tx = <1 0 0>;
- ti,mbox-rx = <0 0 0>;
- };
-};
-
-&mcu_r5fss0 {
- status = "okay";
-};
-
-&mcu_r5fss0_core0 {
- memory-region = <&mcu_r5fss0_core0_dma_memory_region>,
- <&mcu_r5fss0_core0_memory_region>;
- mboxes = <&mailbox0_cluster0 &mbox_mcu_r5fss0_core0>;
- status = "okay";
-};
-
-&mcu_r5fss0_core1 {
- memory-region = <&mcu_r5fss0_core1_dma_memory_region>,
- <&mcu_r5fss0_core1_memory_region>;
- mboxes = <&mailbox0_cluster1 &mbox_mcu_r5fss0_core1>;
- status = "okay";
-};
-
&ospi0 {
status = "okay";
pinctrl-names = "default";
@@ -653,3 +597,5 @@ &dss {
&wkup_gpio0 {
bootph-all;
};
+
+#include "k3-am65-ti-ipc-firmware.dtsi"
--
2.34.1
next prev parent reply other threads:[~2025-09-08 14:31 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-09-08 14:27 [PATCH v4 00/34] Refactor TI IPC DT configs into dtsi Beleswar Padhi
2025-09-08 14:27 ` [PATCH v4 01/34] arm64: dts: ti: k3-j7200: Enable R5F remote processors at board level Beleswar Padhi
2025-09-08 14:27 ` [PATCH v4 02/34] arm64: dts: ti: k3-j721e: Enable " Beleswar Padhi
2025-09-08 14:27 ` [PATCH v4 03/34] arm64: dts: ti: k3-j721s2: " Beleswar Padhi
2025-09-08 14:27 ` [PATCH v4 04/34] arm64: dts: ti: k3-j784s4-j742s2: " Beleswar Padhi
2025-09-08 14:27 ` [PATCH v4 05/34] arm64: dts: ti: k3-am62p-j722s: " Beleswar Padhi
2025-09-08 14:27 ` [PATCH v4 06/34] arm64: dts: ti: k3-am62: " Beleswar Padhi
2025-09-08 14:27 ` [PATCH v4 07/34] arm64: dts: ti: k3-am62a: " Beleswar Padhi
2025-09-08 14:28 ` [PATCH v4 08/34] arm64: dts: ti: k3-am64: " Beleswar Padhi
2025-09-08 14:28 ` [PATCH v4 09/34] arm64: dts: ti: k3-am65: " Beleswar Padhi
2025-09-08 14:28 ` [PATCH v4 10/34] arm64: dts: ti: k3-am62: Enable Mailbox nodes at the " Beleswar Padhi
2025-09-08 14:28 ` [PATCH v4 11/34] arm64: dts: ti: k3-am62a: " Beleswar Padhi
2025-09-08 14:28 ` [PATCH v4 12/34] arm64: dts: ti: k3-am6*-boards: Add label to reserved-memory node Beleswar Padhi
2025-09-08 14:28 ` [PATCH v4 13/34] arm64: dts: ti: k3: Rename rproc reserved-mem nodes to 'memory@addr' Beleswar Padhi
2025-09-08 19:23 ` Francesco Dolcini
2025-09-08 14:28 ` [PATCH v4 14/34] arm64: dts: ti: k3-j721e-beagleboneai64: Add missing cfg for TI IPC FW Beleswar Padhi
2025-09-08 14:28 ` [PATCH v4 15/34] arm64: dts: ti: k3-am62p-verdin: Add missing cfg for TI IPC Firmware Beleswar Padhi
2025-09-08 19:20 ` Francesco Dolcini
2025-09-08 14:28 ` [PATCH v4 16/34] arm64: dts: ti: k3-am62-verdin: " Beleswar Padhi
2025-09-08 19:21 ` Francesco Dolcini
2025-09-08 14:28 ` [PATCH v4 17/34] arm64: dts: ti: k3-am62-pocketbeagle2: " Beleswar Padhi
2025-09-08 14:28 ` [PATCH v4 18/34] arm64: dts: ti: k3-am642-sr-som: " Beleswar Padhi
2025-09-08 14:28 ` [PATCH v4 19/34] arm64: dts: ti: k3-am64-phycore-som: " Beleswar Padhi
2025-09-08 14:28 ` [PATCH v4 20/34] arm64: dts: ti: k3-am642-tqma64xxl: " Beleswar Padhi
2025-09-08 14:28 ` [PATCH v4 21/34] Revert "arm64: dts: ti: k3-j721e-sk: Fix reversed C6x carveout locations" Beleswar Padhi
2025-09-10 14:07 ` Andrew Davis
2025-09-08 14:28 ` [PATCH v4 22/34] Revert "arm64: dts: ti: k3-j721e-beagleboneai64: " Beleswar Padhi
2025-09-10 14:07 ` Andrew Davis
2025-09-08 14:28 ` [PATCH v4 23/34] arm64: dts: ti: k3-j721e-beagleboneai64: Switch MAIN R5F clusters to Split-mode Beleswar Padhi
2025-09-08 14:28 ` [PATCH v4 24/34] arm64: dts: ti: k3-j7200-ti-ipc-firmware: Refactor IPC cfg into new dtsi Beleswar Padhi
2025-09-08 14:28 ` [PATCH v4 25/34] arm64: dts: ti: k3-j721e-ti-ipc-firmware: " Beleswar Padhi
2025-09-08 14:28 ` [PATCH v4 26/34] arm64: dts: ti: k3-j721s2-ti-ipc-firmware: " Beleswar Padhi
2025-09-08 14:28 ` [PATCH v4 27/34] arm64: dts: ti: k3-j784s4-j742s2-ti-ipc-firmware-common: " Beleswar Padhi
2025-09-08 14:28 ` [PATCH v4 28/34] arm64: dts: ti: k3-j784s4-ti-ipc-firmware: " Beleswar Padhi
2025-09-08 14:28 ` [PATCH v4 29/34] arm64: dts: ti: k3-j722s-ti-ipc-firmware: " Beleswar Padhi
2025-09-08 14:28 ` [PATCH v4 30/34] arm64: dts: ti: k3-am62p-ti-ipc-firmware: " Beleswar Padhi
2025-09-08 14:28 ` [PATCH v4 31/34] arm64: dts: ti: k3-am62-ti-ipc-firmware: " Beleswar Padhi
2025-09-08 14:28 ` [PATCH v4 32/34] arm64: dts: ti: k3-am62a-ti-ipc-firmware: " Beleswar Padhi
2025-09-08 14:28 ` [PATCH v4 33/34] arm64: dts: ti: k3-am64-ti-ipc-firmware: " Beleswar Padhi
2025-09-08 14:28 ` Beleswar Padhi [this message]
2025-09-12 9:49 ` [PATCH v4 00/34] Refactor TI IPC DT configs into dtsi Nishanth Menon
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20250908142826.1828676-35-b-padhi@ti.com \
--to=b-padhi@ti.com \
--cc=afd@ti.com \
--cc=baocheng.su@siemens.com \
--cc=benedikt.niedermayr@siemens.com \
--cc=conor+dt@kernel.org \
--cc=d-gole@ti.com \
--cc=devicetree@vger.kernel.org \
--cc=diogo.ivo@siemens.com \
--cc=hnagalla@ti.com \
--cc=huaqian.li@siemens.com \
--cc=jan.kiszka@siemens.com \
--cc=jm@ti.com \
--cc=kristo@kernel.org \
--cc=krzk+dt@kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=nm@ti.com \
--cc=robh@kernel.org \
--cc=u-kumar1@ti.com \
--cc=vigneshr@ti.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox