Re: [PATCH 33/33] arm64: dts: ti: k3-j7*-ti-ipc-firmware: Switch MCU R5F cluster to Split-mode
From: Andrew Davis
Date: Fri Aug 22 2025 - 13:32:09 EST
On 8/22/25 12:26 PM, Beleswar Prasad Padhi wrote:
Hi Andrew, Nishanth,
On 8/15/2025 9:18 PM, Andrew Davis wrote:
On 8/14/25 5:38 PM, Beleswar Padhi wrote:
Several TI K3 SoCs like J7200, J721E, J721S2, J784S4 and J742S2 have a
R5F cluster in the MCU domain which is configured for LockStep mode at
the moment. The necessary support to use MCU R5F cluster in split mode
was added in the bootloader. And the TI IPC firmware for the split
processors is already available public.
Therefore, Switch this R5F cluster to Split mode by default in all the
boards using TI IPC Firmware config (k3-j7*-ti-ipc-firmware). This
gives out an extra general purpose R5F core free to run any applications
as required. Lockstep mode remains default in the SoC level dtsi, so
downstream board dts which do not use TI IPC Firmware config should not
be impacted by this switch.
Users who prefer to use the fault-tolerant lockstep mode with TI IPC
firmware config, can do that by setting `ti,cluster-mode` property to 1.
What a user prefers and other configuration like that does not belong
in devicetree, which should only describe the hardware.
Configuration should be done using the normal methods, like kernel
cmdline, module params, ioctls, etc.. Maybe we can even set the mode
based on some signal in the firmware itself, like in the resource table.
Agreed with your point.. But that is going to take a long time to implement
+ upstream. I interpreted from [0] that it was okay to enable this split mode
once we had refactored the firmware related nodes in an overlay? (Since
people can swap out the dtsi if they don't need the firmware config)
Nishanth/Andrew,
Please advise if this patch is okay or should be dropped in the revision...
I would drop this and send it later as part of its own series, it doesn't belong
in this series which should be refactors only, this patch is changing things, no
reason to mixed the two types of patches.
Andrew
[0]: https://lore.kernel.org/all/20250523114822.jrv73frz2wbzdd6d@falsify/
Thanks,
Beleswar
Andrew
Signed-off-by: Beleswar Padhi <b-padhi@xxxxxx>
---
arch/arm64/boot/dts/ti/k3-j7200-ti-ipc-firmware.dtsi | 1 +
arch/arm64/boot/dts/ti/k3-j721e-ti-ipc-firmware.dtsi | 1 +
arch/arm64/boot/dts/ti/k3-j721s2-ti-ipc-firmware.dtsi | 1 +
.../boot/dts/ti/k3-j784s4-j742s2-ti-ipc-firmware-common.dtsi | 1 +
4 files changed, 4 insertions(+)
diff --git a/arch/arm64/boot/dts/ti/k3-j7200-ti-ipc-firmware.dtsi b/arch/arm64/boot/dts/ti/k3-j7200-ti-ipc-firmware.dtsi
index 8eff7bd2e771..ddf3cd899d0e 100644
--- a/arch/arm64/boot/dts/ti/k3-j7200-ti-ipc-firmware.dtsi
+++ b/arch/arm64/boot/dts/ti/k3-j7200-ti-ipc-firmware.dtsi
@@ -94,6 +94,7 @@ &main_timer2 {
&mcu_r5fss0 {
status = "okay";
+ ti,cluster-mode = <0>;
};
&mcu_r5fss0_core0 {
diff --git a/arch/arm64/boot/dts/ti/k3-j721e-ti-ipc-firmware.dtsi b/arch/arm64/boot/dts/ti/k3-j721e-ti-ipc-firmware.dtsi
index 5b3fa95aed76..57890a3b38a2 100644
--- a/arch/arm64/boot/dts/ti/k3-j721e-ti-ipc-firmware.dtsi
+++ b/arch/arm64/boot/dts/ti/k3-j721e-ti-ipc-firmware.dtsi
@@ -211,6 +211,7 @@ &main_timer15 {
};
&mcu_r5fss0 {
+ ti,cluster-mode = <0>;
status = "okay";
};
diff --git a/arch/arm64/boot/dts/ti/k3-j721s2-ti-ipc-firmware.dtsi b/arch/arm64/boot/dts/ti/k3-j721s2-ti-ipc-firmware.dtsi
index 40c9f2b64e7e..7ee8a8615246 100644
--- a/arch/arm64/boot/dts/ti/k3-j721s2-ti-ipc-firmware.dtsi
+++ b/arch/arm64/boot/dts/ti/k3-j721s2-ti-ipc-firmware.dtsi
@@ -179,6 +179,7 @@ &main_timer5 {
};
&mcu_r5fss0 {
+ ti,cluster-mode = <0>;
status = "okay";
};
diff --git a/arch/arm64/boot/dts/ti/k3-j784s4-j742s2-ti-ipc-firmware-common.dtsi b/arch/arm64/boot/dts/ti/k3-j784s4-j742s2-ti-ipc-firmware-common.dtsi
index b5a4496a05bf..e12fa55a4df0 100644
--- a/arch/arm64/boot/dts/ti/k3-j784s4-j742s2-ti-ipc-firmware-common.dtsi
+++ b/arch/arm64/boot/dts/ti/k3-j784s4-j742s2-ti-ipc-firmware-common.dtsi
@@ -254,6 +254,7 @@ &main_timer9 {
};
&mcu_r5fss0 {
+ ti,cluster-mode = <0>;
status = "okay";
};