Thread (23 messages) 23 messages, 4 authors, 2025-05-06

Re: [PATCH v8 03/11] arm64: dts: ti: k3-am62a-mcu: Add R5F remote proc node

From: Andrew Davis <hidden>
Date: 2025-05-05 17:23:28
Also in: linux-devicetree, lkml

On 5/5/25 11:00 AM, Daniel Schultz wrote:
Hey,

On 5/5/25 17:22, Andrew Davis wrote:
quoted
On 5/5/25 10:05 AM, Mendez, Judith wrote:
quoted
Hi Daniel,

On 5/5/2025 4:55 AM, Daniel Schultz wrote:
quoted
Hi,

I'm unable to load the latest TI firmware (98efd20ec71f8c1c8f909d34ab656731) with this patch.

[    7.012889] remoteproc remoteproc1: 79000000.r5f is available
[    7.032640] remoteproc remoteproc1: powering up 79000000.r5f
[    7.038626] remoteproc remoteproc1: Booting fw image am62a-mcu- r5f0_0-fw, size 53140
[    7.057209] remoteproc remoteproc1: bad phdr da 0x79100000 mem 0x47ea0
So this looks like the firmware has sections in the SRAM region. That would be the
issue here.
quoted
quoted
[    7.064716] remoteproc remoteproc1: Failed to load program segments: -22

I figured out that the mcu sram node disappeared in v5. Apparently adding it back manually doesn't solve this problem. Any idea what's wrong?
For am62ax, there should be several items changed with this v8
series in order for remoteproc to work with the TI default firmware:
What firmware did you use? I was using the latest public default firmware from ti-linux-firmware.
quoted
quoted
1. memory carveouts were reduced to 15MB [0] & edge-ai memory
carveouts are not included here
This shouldn't be an issue, the default firmware doesn't
use the extended carveouts.
Yes, this is just the echo firmware.
quoted
quoted
2. mcu_sram1 node removed [2]
So when you say you added back the SRAM node, did you also add the
sram = <&mcu_ram>; in the core node?
With that property added, I can load the firmware again! So, what's the problem with adding this sram node and did you remove it?
Good to hear that fixed it.

And we removed the SRAM node as I was unhappy with how we were handling reserving it.
The firmware should declare usage of shared resources like this in its resource table,
and the RProc driver should dynamically request the same from a normal SRAM pool.
What we were doing before was to statically block out the whole SRAM node for use by
the R5, and the driver would unconditionally map it, even if it was not used by the
loaded firmware at all.

I wanted us to fix the above before upstreaming it so we left it out of this
series. Next cycle we should have the better solution ready and posted for
upstream.

Andrew
- Daniel
quoted
Andrew
quoted
If you want to catch up on the general direction for this series,
please refer to [3]. atm remoteproc can fail with the default FW,
but we are trying to move away from that firmware and this is the
first step in that direction.

[0] https://lore.kernel.org/linux-devicetree/0ab5c5ec-cde3-41f1-8adf-2419b31497c1@ti.com/ (local)
[1] https://lore.kernel.org/linux-devicetree/04e77daf-e775-44fa-82bf-8b6ebf73bcef@ti.com/ (local)
[2] https://lore.kernel.org/linux-devicetree/32358aa1-0c02-4f4d-9782-2d8376c0d9fc@ti.com/ (local)
[3] https://lore.kernel.org/linux-devicetree/e131298f-3713-482a-a740-ff89709270b4@ti.com/ (local)

~ Judith
quoted
On 5/3/25 00:03, Judith Mendez wrote:
quoted
From: Hari Nagalla <redacted>

AM62A SoCs have a single R5F core in the MCU voltage domain.
Add the R5FSS node with the child node for core0 in MCU voltage
domain .dtsi file.

Signed-off-by: Hari Nagalla <redacted>
Signed-off-by: Judith Mendez <redacted>
Acked-by: Andrew Davis <redacted>
---
  arch/arm64/boot/dts/ti/k3-am62a-mcu.dtsi | 25 ++++++++++++++++++++++++
  1 file changed, 25 insertions(+)
diff --git a/arch/arm64/boot/dts/ti/k3-am62a-mcu.dtsi b/arch/arm64/ boot/dts/ti/k3-am62a-mcu.dtsi
index 9ed9d703ff24..ee961ced7208 100644
--- a/arch/arm64/boot/dts/ti/k3-am62a-mcu.dtsi
+++ b/arch/arm64/boot/dts/ti/k3-am62a-mcu.dtsi
@@ -174,4 +174,29 @@ mcu_mcan1: can@4e18000 {
          bosch,mram-cfg = <0x0 128 64 64 64 64 32 32>;
          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>;
+        status = "disabled";
+
+        mcu_r5fss0_core0: r5f@79000000 {
+            compatible = "ti,am62-r5f";
+            reg = <0x79000000 0x00008000>,
+                  <0x79020000 0x00008000>;
+            reg-names = "atcm", "btcm";
+            resets = <&k3_reset 9 1>;
+            firmware-name = "am62a-mcu-r5f0_0-fw";
+            ti,atcm-enable = <0>;
+            ti,btcm-enable = <1>;
+            ti,loczrama = <0>;
+            ti,sci = <&dmsc>;
+            ti,sci-dev-id = <9>;
+            ti,sci-proc-ids = <0x03 0xff>;
+        };
+    };
  };
  
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help