* [PATCH v3 0/7] arm64: dts: ti: k3-am62a7-sk: Split r5f memory region
@ 2026-03-18 15:13 Markus Schneider-Pargmann (TI)
2026-03-18 15:13 ` [PATCH v3 1/7] dt-bindings: remoteproc: k3-r5f: Split up memory regions Markus Schneider-Pargmann (TI)
` (7 more replies)
0 siblings, 8 replies; 11+ messages in thread
From: Markus Schneider-Pargmann (TI) @ 2026-03-18 15:13 UTC (permalink / raw)
To: Bjorn Andersson, Mathieu Poirier, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Suman Anna, Nishanth Menon,
Vignesh Raghavendra, Tero Kristo
Cc: Vishal Mahaveer, Kevin Hilman, Dhruva Gole, Sebin Francis,
Kendall Willis, Akashdeep Kaur, linux-remoteproc, devicetree,
linux-kernel, linux-arm-kernel, Markus Schneider-Pargmann (TI)
Hi,
Split the firmware memory region in more specific parts so it is better
described where which information is stored. Specifically the LPM metadata
region is important as bootloader software like U-Boot has to know where
that data is to be able to read that data and resume from RAM.
IO+DDR is a deep sleep state in which a few pins are set to be sensitive
for wakeup while the DDR is kept in self refresh. Everything else is
powered off.
The changes in this series were suggested as part of the IO+DDR u-boot series:
https://lore.kernel.org/r/814c211f-a9eb-4311-bb84-165b1a69755f@ti.com
There are currently no real users of the memory-region that is split in
this series. The size of the memory-region in total stays the same.
The new layout is derived from the software running on the r5f
processor:
https://github.com/TexasInstruments/mcupsdk-core-k3/blob/k3_main/examples/drivers/ipc/ipc_rpmsg_echo_linux/am62ax-sk/r5fss0-0_freertos/ti-arm-clang/linker.cmd#L172
https://github.com/TexasInstruments/mcupsdk-core-k3/blob/k3_main/source/drivers/device_manager/sciclient.h#L459
Additionally the two important devicetree nodes for resuming from IO+DDR
have the bootph-pre-ram flag added as this data needs to be read before
the RAM is in use.
Best
Markus
Signed-off-by: Markus Schneider-Pargmann (TI) <msp@baylibre.com>
---
Changes in v3:
- Squash the enforcement of the memory-region-names requirement in the
patch adding the memory-region-names, as suggested.
- Link to v2: https://lore.kernel.org/r/20260312-topic-am62a-ioddr-dt-v6-19-v2-0-37cb7ceec658@baylibre.com
Changes in v2:
- Make memory-region-names required if memory-region is present
- Fixup memory-region and memory-region-names conditions. Require either
2 or 6 regions for memory-region and memory-region-names
- Reword and restructure the binding documentation for memory-region and
memory-region-names
- Add memory-region-names to all uses of memory-region
- Link to v1: https://lore.kernel.org/r/20260303-topic-am62a-ioddr-dt-v6-19-v1-0-12fe72bb40d2@baylibre.com
---
Markus Schneider-Pargmann (TI) (7):
dt-bindings: remoteproc: k3-r5f: Split up memory regions
dt-bindings: remoteproc: k3-r5f: Add memory-region-names
arm64: dts: ti: k3: Use memory-region-names for r5f
arm64: dts: ti: k3-am62a7-sk: Split r5f memory region
arm64: dts: ti: k3-am62p5-sk: Split r5f memory region
arm64: dts: ti: k3-am62a7-sk: Add r5f nodes to pre-ram bootphase
arm64: dts: ti: k3-am62p5-sk: Add r5f nodes to pre-ram bootphase
.../bindings/remoteproc/ti,k3-r5f-rproc.yaml | 55 ++++++++++++++++++----
.../arm64/boot/dts/ti/k3-am62-ti-ipc-firmware.dtsi | 1 +
.../boot/dts/ti/k3-am62a-ti-ipc-firmware.dtsi | 2 +
arch/arm64/boot/dts/ti/k3-am62a7-sk.dts | 42 ++++++++++++++++-
.../boot/dts/ti/k3-am62p-ti-ipc-firmware.dtsi | 2 +
arch/arm64/boot/dts/ti/k3-am62p5-sk.dts | 42 ++++++++++++++++-
.../arm64/boot/dts/ti/k3-am64-ti-ipc-firmware.dtsi | 4 ++
.../arm64/boot/dts/ti/k3-am65-ti-ipc-firmware.dtsi | 2 +
.../boot/dts/ti/k3-j7200-ti-ipc-firmware.dtsi | 4 ++
.../boot/dts/ti/k3-j721e-ti-ipc-firmware.dtsi | 6 +++
.../boot/dts/ti/k3-j721s2-ti-ipc-firmware.dtsi | 6 +++
.../boot/dts/ti/k3-j722s-ti-ipc-firmware.dtsi | 3 ++
.../k3-j784s4-j742s2-ti-ipc-firmware-common.dtsi | 8 ++++
13 files changed, 163 insertions(+), 14 deletions(-)
---
base-commit: 6de23f81a5e08be8fbf5e8d7e9febc72a5b5f27f
change-id: 20260210-topic-am62a-ioddr-dt-v6-19-0da7712081d7
Best regards,
--
Markus Schneider-Pargmann (TI) <msp@baylibre.com>
^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH v3 1/7] dt-bindings: remoteproc: k3-r5f: Split up memory regions
2026-03-18 15:13 [PATCH v3 0/7] arm64: dts: ti: k3-am62a7-sk: Split r5f memory region Markus Schneider-Pargmann (TI)
@ 2026-03-18 15:13 ` Markus Schneider-Pargmann (TI)
2026-03-26 14:53 ` Rob Herring (Arm)
2026-03-18 15:13 ` [PATCH v3 2/7] dt-bindings: remoteproc: k3-r5f: Add memory-region-names Markus Schneider-Pargmann (TI)
` (6 subsequent siblings)
7 siblings, 1 reply; 11+ messages in thread
From: Markus Schneider-Pargmann (TI) @ 2026-03-18 15:13 UTC (permalink / raw)
To: Bjorn Andersson, Mathieu Poirier, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Suman Anna, Nishanth Menon,
Vignesh Raghavendra, Tero Kristo
Cc: Vishal Mahaveer, Kevin Hilman, Dhruva Gole, Sebin Francis,
Kendall Willis, Akashdeep Kaur, linux-remoteproc, devicetree,
linux-kernel, linux-arm-kernel, Markus Schneider-Pargmann (TI)
Split up the region reserved for the firmware image in more specific
sections to expose the full fixed layout. Especially the LPM metadata
section is important for bootloaders as it contains information about
how to exit IO+DDR. This is read by the bootloader but is written by the
firmware.
Signed-off-by: Markus Schneider-Pargmann (TI) <msp@baylibre.com>
---
.../bindings/remoteproc/ti,k3-r5f-rproc.yaml | 29 ++++++++++++++--------
1 file changed, 19 insertions(+), 10 deletions(-)
diff --git a/Documentation/devicetree/bindings/remoteproc/ti,k3-r5f-rproc.yaml b/Documentation/devicetree/bindings/remoteproc/ti,k3-r5f-rproc.yaml
index a927551356e69d3961b3c5c6b72d027fabe83d3c..15e0286e4926865d88b693998e5aa64543ae125d 100644
--- a/Documentation/devicetree/bindings/remoteproc/ti,k3-r5f-rproc.yaml
+++ b/Documentation/devicetree/bindings/remoteproc/ti,k3-r5f-rproc.yaml
@@ -154,17 +154,26 @@ patternProperties:
memory-region:
description: |
phandle to the reserved memory nodes to be associated with the
- remoteproc device. There should be at least two reserved memory nodes
- defined. The reserved memory nodes should be carveout nodes, and
- should be defined with a "no-map" property as per the bindings in
+ remoteproc device. There should be two reserved memory nodes defined
+ for the basic layout or 6 partitions for a detailed layout. The
+ reserved memory nodes should be carveout nodes, and should be defined
+ with a "no-map" property as per the bindings in
Documentation/devicetree/bindings/reserved-memory/reserved-memory.txt
- minItems: 2
- maxItems: 8
- items:
- - description: region used for dynamic DMA allocations like vrings and
- vring buffers
- - description: region reserved for firmware image sections
- additionalItems: true
+ oneOf:
+ - description: Basic layout
+ items:
+ - description: region used for dynamic DMA allocations like vrings and
+ vring buffers
+ - description: region reserved for firmware image sections
+ - description: Detailed layout
+ items:
+ - description: region used for dynamic DMA allocations like vrings and
+ vring buffers
+ - description: region reserved for IPC resources
+ - description: LPM FS stub binary
+ - description: LPM metadata
+ - description: LPM FS context data and reserved sections
+ - description: DM RM/PM trace and firmware code/data
# Optional properties:
# --------------------
--
2.53.0
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH v3 2/7] dt-bindings: remoteproc: k3-r5f: Add memory-region-names
2026-03-18 15:13 [PATCH v3 0/7] arm64: dts: ti: k3-am62a7-sk: Split r5f memory region Markus Schneider-Pargmann (TI)
2026-03-18 15:13 ` [PATCH v3 1/7] dt-bindings: remoteproc: k3-r5f: Split up memory regions Markus Schneider-Pargmann (TI)
@ 2026-03-18 15:13 ` Markus Schneider-Pargmann (TI)
2026-03-26 14:53 ` Rob Herring (Arm)
2026-03-18 15:13 ` [PATCH v3 3/7] arm64: dts: ti: k3: Use memory-region-names for r5f Markus Schneider-Pargmann (TI)
` (5 subsequent siblings)
7 siblings, 1 reply; 11+ messages in thread
From: Markus Schneider-Pargmann (TI) @ 2026-03-18 15:13 UTC (permalink / raw)
To: Bjorn Andersson, Mathieu Poirier, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Suman Anna, Nishanth Menon,
Vignesh Raghavendra, Tero Kristo
Cc: Vishal Mahaveer, Kevin Hilman, Dhruva Gole, Sebin Francis,
Kendall Willis, Akashdeep Kaur, linux-remoteproc, devicetree,
linux-kernel, linux-arm-kernel, Markus Schneider-Pargmann (TI)
Add names to the memory-region-names for easier identification of memory
regions. As the meaning of the second memory region can be different
also require the use of memory-region-names if memory-region is in use.
Signed-off-by: Markus Schneider-Pargmann (TI) <msp@baylibre.com>
---
.../bindings/remoteproc/ti,k3-r5f-rproc.yaml | 26 ++++++++++++++++++++++
1 file changed, 26 insertions(+)
diff --git a/Documentation/devicetree/bindings/remoteproc/ti,k3-r5f-rproc.yaml b/Documentation/devicetree/bindings/remoteproc/ti,k3-r5f-rproc.yaml
index 15e0286e4926865d88b693998e5aa64543ae125d..775e9b3a193878349590c5036aa884617ebbcc9f 100644
--- a/Documentation/devicetree/bindings/remoteproc/ti,k3-r5f-rproc.yaml
+++ b/Documentation/devicetree/bindings/remoteproc/ti,k3-r5f-rproc.yaml
@@ -175,6 +175,24 @@ patternProperties:
- description: LPM FS context data and reserved sections
- description: DM RM/PM trace and firmware code/data
+ memory-region-names:
+ description: |
+ Names for the memory regions specified in the memory-region property.
+ The names must correspond with the entries in memory-region.
+ oneOf:
+ - description: Basic layout
+ items:
+ - const: dma
+ - const: firmware
+ - description: Detailed layout
+ items:
+ - const: dma
+ - const: ipc
+ - const: lpm-stub
+ - const: lpm-metadata
+ - const: lpm-context
+ - const: dm-firmware
+
# Optional properties:
# --------------------
# The following properties are optional properties for each of the R5F cores:
@@ -227,6 +245,13 @@ patternProperties:
- resets
- firmware-name
+ if:
+ required:
+ - memory-region
+ then:
+ required:
+ - memory-region-names
+
unevaluatedProperties: false
allOf:
@@ -330,6 +355,7 @@ examples:
mboxes = <&mailbox0 &mbox_mcu_r5fss0_core0>;
memory-region = <&mcu_r5fss0_core0_dma_memory_region>,
<&mcu_r5fss0_core0_memory_region>;
+ memory-region-names = "dma", "firmware";
sram = <&mcu_r5fss0_core0_sram>;
};
--
2.53.0
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH v3 3/7] arm64: dts: ti: k3: Use memory-region-names for r5f
2026-03-18 15:13 [PATCH v3 0/7] arm64: dts: ti: k3-am62a7-sk: Split r5f memory region Markus Schneider-Pargmann (TI)
2026-03-18 15:13 ` [PATCH v3 1/7] dt-bindings: remoteproc: k3-r5f: Split up memory regions Markus Schneider-Pargmann (TI)
2026-03-18 15:13 ` [PATCH v3 2/7] dt-bindings: remoteproc: k3-r5f: Add memory-region-names Markus Schneider-Pargmann (TI)
@ 2026-03-18 15:13 ` Markus Schneider-Pargmann (TI)
2026-03-18 15:13 ` [PATCH v3 4/7] arm64: dts: ti: k3-am62a7-sk: Split r5f memory region Markus Schneider-Pargmann (TI)
` (4 subsequent siblings)
7 siblings, 0 replies; 11+ messages in thread
From: Markus Schneider-Pargmann (TI) @ 2026-03-18 15:13 UTC (permalink / raw)
To: Bjorn Andersson, Mathieu Poirier, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Suman Anna, Nishanth Menon,
Vignesh Raghavendra, Tero Kristo
Cc: Vishal Mahaveer, Kevin Hilman, Dhruva Gole, Sebin Francis,
Kendall Willis, Akashdeep Kaur, linux-remoteproc, devicetree,
linux-kernel, linux-arm-kernel, Markus Schneider-Pargmann (TI)
Add the newly introduced memory-region-names to all occurences of
ti,*-r5f. This helps adding a name to each memory-region so it is
easier to see what memory regions are for.
Signed-off-by: Markus Schneider-Pargmann (TI) <msp@baylibre.com>
---
arch/arm64/boot/dts/ti/k3-am62-ti-ipc-firmware.dtsi | 1 +
arch/arm64/boot/dts/ti/k3-am62a-ti-ipc-firmware.dtsi | 2 ++
arch/arm64/boot/dts/ti/k3-am62p-ti-ipc-firmware.dtsi | 2 ++
arch/arm64/boot/dts/ti/k3-am64-ti-ipc-firmware.dtsi | 4 ++++
arch/arm64/boot/dts/ti/k3-am65-ti-ipc-firmware.dtsi | 2 ++
arch/arm64/boot/dts/ti/k3-j7200-ti-ipc-firmware.dtsi | 4 ++++
arch/arm64/boot/dts/ti/k3-j721e-ti-ipc-firmware.dtsi | 6 ++++++
arch/arm64/boot/dts/ti/k3-j721s2-ti-ipc-firmware.dtsi | 6 ++++++
arch/arm64/boot/dts/ti/k3-j722s-ti-ipc-firmware.dtsi | 3 +++
.../boot/dts/ti/k3-j784s4-j742s2-ti-ipc-firmware-common.dtsi | 8 ++++++++
10 files changed, 38 insertions(+)
diff --git a/arch/arm64/boot/dts/ti/k3-am62-ti-ipc-firmware.dtsi b/arch/arm64/boot/dts/ti/k3-am62-ti-ipc-firmware.dtsi
index ea69fab9b52b0458a830c03adbccbf3c2842a9c9..ad247f53fe82da57504e5ffc0351c8cc3c4a0e67 100644
--- a/arch/arm64/boot/dts/ti/k3-am62-ti-ipc-firmware.dtsi
+++ b/arch/arm64/boot/dts/ti/k3-am62-ti-ipc-firmware.dtsi
@@ -48,5 +48,6 @@ &wkup_r5fss0_core0 {
mboxes = <&mailbox0_cluster0 &mbox_r5_0>;
memory-region = <&wkup_r5fss0_core0_dma_memory_region>,
<&wkup_r5fss0_core0_memory_region>;
+ memory-region-names = "dma", "firmware";
status = "okay";
};
diff --git a/arch/arm64/boot/dts/ti/k3-am62a-ti-ipc-firmware.dtsi b/arch/arm64/boot/dts/ti/k3-am62a-ti-ipc-firmware.dtsi
index 950f4f37d477a32b5eb5f66c97daed4c8fd09aca..06d4e815b1670beafb8852b76a3f6a79295ce8ca 100644
--- a/arch/arm64/boot/dts/ti/k3-am62a-ti-ipc-firmware.dtsi
+++ b/arch/arm64/boot/dts/ti/k3-am62a-ti-ipc-firmware.dtsi
@@ -66,6 +66,7 @@ &wkup_r5fss0_core0 {
mboxes = <&mailbox0_cluster0>, <&mbox_r5_0>;
memory-region = <&wkup_r5fss0_core0_dma_memory_region>,
<&wkup_r5fss0_core0_memory_region>;
+ memory-region-names = "dma", "firmware";
status = "okay";
};
@@ -77,6 +78,7 @@ &mcu_r5fss0_core0 {
mboxes = <&mailbox0_cluster2>, <&mbox_mcu_r5_0>;
memory-region = <&mcu_r5fss0_core0_dma_memory_region>,
<&mcu_r5fss0_core0_memory_region>;
+ memory-region-names = "dma", "firmware";
status = "okay";
};
diff --git a/arch/arm64/boot/dts/ti/k3-am62p-ti-ipc-firmware.dtsi b/arch/arm64/boot/dts/ti/k3-am62p-ti-ipc-firmware.dtsi
index d29a5dbe13ef7e66e7df8e8c3542ab5c4dc64262..5d7f701420e2d8308b637f3064c560e485ed85f2 100644
--- a/arch/arm64/boot/dts/ti/k3-am62p-ti-ipc-firmware.dtsi
+++ b/arch/arm64/boot/dts/ti/k3-am62p-ti-ipc-firmware.dtsi
@@ -45,6 +45,7 @@ &wkup_r5fss0_core0 {
mboxes = <&mailbox0_cluster0 &mbox_r5_0>;
memory-region = <&wkup_r5fss0_core0_dma_memory_region>,
<&wkup_r5fss0_core0_memory_region>;
+ memory-region-names = "dma", "firmware";
status = "okay";
};
@@ -56,5 +57,6 @@ &mcu_r5fss0_core0 {
mboxes = <&mailbox0_cluster1 &mbox_mcu_r5_0>;
memory-region = <&mcu_r5fss0_core0_dma_memory_region>,
<&mcu_r5fss0_core0_memory_region>;
+ memory-region-names = "dma", "firmware";
status = "okay";
};
diff --git a/arch/arm64/boot/dts/ti/k3-am64-ti-ipc-firmware.dtsi b/arch/arm64/boot/dts/ti/k3-am64-ti-ipc-firmware.dtsi
index 6b10646ae64a62e19067b80bead7c99643d1702b..51fd9b68f58d1f8ae3a7a77a48f74a77c2c795f3 100644
--- a/arch/arm64/boot/dts/ti/k3-am64-ti-ipc-firmware.dtsi
+++ b/arch/arm64/boot/dts/ti/k3-am64-ti-ipc-firmware.dtsi
@@ -126,6 +126,7 @@ &main_r5fss0_core0 {
mboxes = <&mailbox0_cluster2 &mbox_main_r5fss0_core0>;
memory-region = <&main_r5fss0_core0_dma_memory_region>,
<&main_r5fss0_core0_memory_region>;
+ memory-region-names = "dma", "firmware";
status = "okay";
};
@@ -133,6 +134,7 @@ &main_r5fss0_core1 {
mboxes = <&mailbox0_cluster2 &mbox_main_r5fss0_core1>;
memory-region = <&main_r5fss0_core1_dma_memory_region>,
<&main_r5fss0_core1_memory_region>;
+ memory-region-names = "dma", "firmware";
status = "okay";
};
@@ -144,6 +146,7 @@ &main_r5fss1_core0 {
mboxes = <&mailbox0_cluster4 &mbox_main_r5fss1_core0>;
memory-region = <&main_r5fss1_core0_dma_memory_region>,
<&main_r5fss1_core0_memory_region>;
+ memory-region-names = "dma", "firmware";
status = "okay";
};
@@ -151,6 +154,7 @@ &main_r5fss1_core1 {
mboxes = <&mailbox0_cluster4 &mbox_main_r5fss1_core1>;
memory-region = <&main_r5fss1_core1_dma_memory_region>,
<&main_r5fss1_core1_memory_region>;
+ memory-region-names = "dma", "firmware";
status = "okay";
};
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
index 61ab0357fc0de01df641b887b47e88ee26b4f2fb..e5f37cfd18bc55c86e9970cbfd25d354371ac079 100644
--- a/arch/arm64/boot/dts/ti/k3-am65-ti-ipc-firmware.dtsi
+++ b/arch/arm64/boot/dts/ti/k3-am65-ti-ipc-firmware.dtsi
@@ -52,6 +52,7 @@ &mcu_r5fss0 {
&mcu_r5fss0_core0 {
memory-region = <&mcu_r5fss0_core0_dma_memory_region>,
<&mcu_r5fss0_core0_memory_region>;
+ memory-region-names = "dma", "firmware";
mboxes = <&mailbox0_cluster0 &mbox_mcu_r5fss0_core0>;
status = "okay";
};
@@ -59,6 +60,7 @@ &mcu_r5fss0_core0 {
&mcu_r5fss0_core1 {
memory-region = <&mcu_r5fss0_core1_dma_memory_region>,
<&mcu_r5fss0_core1_memory_region>;
+ memory-region-names = "dma", "firmware";
mboxes = <&mailbox0_cluster1 &mbox_mcu_r5fss0_core1>;
status = "okay";
};
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 9477f1efbbc61d0befc56368436ccbc5007a1411..d65f68c7d43210b5af8eff52c5cec6ddb54e5c68 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
@@ -100,6 +100,7 @@ &mcu_r5fss0_core0 {
mboxes = <&mailbox0_cluster0 &mbox_mcu_r5fss0_core0>;
memory-region = <&mcu_r5fss0_core0_dma_memory_region>,
<&mcu_r5fss0_core0_memory_region>;
+ memory-region-names = "dma", "firmware";
status = "okay";
};
@@ -107,6 +108,7 @@ &mcu_r5fss0_core1 {
mboxes = <&mailbox0_cluster0 &mbox_mcu_r5fss0_core1>;
memory-region = <&mcu_r5fss0_core1_dma_memory_region>,
<&mcu_r5fss0_core1_memory_region>;
+ memory-region-names = "dma", "firmware";
status = "okay";
};
@@ -119,6 +121,7 @@ &main_r5fss0_core0 {
mboxes = <&mailbox0_cluster1 &mbox_main_r5fss0_core0>;
memory-region = <&main_r5fss0_core0_dma_memory_region>,
<&main_r5fss0_core0_memory_region>;
+ memory-region-names = "dma", "firmware";
status = "okay";
};
@@ -126,5 +129,6 @@ &main_r5fss0_core1 {
mboxes = <&mailbox0_cluster1 &mbox_main_r5fss0_core1>;
memory-region = <&main_r5fss0_core1_dma_memory_region>,
<&main_r5fss0_core1_memory_region>;
+ memory-region-names = "dma", "firmware";
status = "okay";
};
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 40c6cc99c4056009e9ff66adb831400b8842de9e..5d4fc26b413b22a9c2168e5d37f04475511a75a4 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
@@ -219,6 +219,7 @@ &mcu_r5fss0_core0 {
mboxes = <&mailbox0_cluster0 &mbox_mcu_r5fss0_core0>;
memory-region = <&mcu_r5fss0_core0_dma_memory_region>,
<&mcu_r5fss0_core0_memory_region>;
+ memory-region-names = "dma", "firmware";
};
&mcu_r5fss0_core1 {
@@ -226,6 +227,7 @@ &mcu_r5fss0_core1 {
mboxes = <&mailbox0_cluster0 &mbox_mcu_r5fss0_core1>;
memory-region = <&mcu_r5fss0_core1_dma_memory_region>,
<&mcu_r5fss0_core1_memory_region>;
+ memory-region-names = "dma", "firmware";
};
&main_r5fss0 {
@@ -238,6 +240,7 @@ &main_r5fss0_core0 {
mboxes = <&mailbox0_cluster1 &mbox_main_r5fss0_core0>;
memory-region = <&main_r5fss0_core0_dma_memory_region>,
<&main_r5fss0_core0_memory_region>;
+ memory-region-names = "dma", "firmware";
};
&main_r5fss0_core1 {
@@ -245,6 +248,7 @@ &main_r5fss0_core1 {
mboxes = <&mailbox0_cluster1 &mbox_main_r5fss0_core1>;
memory-region = <&main_r5fss0_core1_dma_memory_region>,
<&main_r5fss0_core1_memory_region>;
+ memory-region-names = "dma", "firmware";
};
&main_r5fss1 {
@@ -257,6 +261,7 @@ &main_r5fss1_core0 {
mboxes = <&mailbox0_cluster2 &mbox_main_r5fss1_core0>;
memory-region = <&main_r5fss1_core0_dma_memory_region>,
<&main_r5fss1_core0_memory_region>;
+ memory-region-names = "dma", "firmware";
};
&main_r5fss1_core1 {
@@ -264,6 +269,7 @@ &main_r5fss1_core1 {
mboxes = <&mailbox0_cluster2 &mbox_main_r5fss1_core1>;
memory-region = <&main_r5fss1_core1_dma_memory_region>,
<&main_r5fss1_core1_memory_region>;
+ memory-region-names = "dma", "firmware";
};
&c66_0 {
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 ebab0cc580bbb2fb2b101450ea7def0bf717be0e..5253d028da0946e6dd619c0adebdfcf88400cb14 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
@@ -190,6 +190,7 @@ &mcu_r5fss0_core0 {
mboxes = <&mailbox0_cluster0 &mbox_mcu_r5fss0_core0>;
memory-region = <&mcu_r5fss0_core0_dma_memory_region>,
<&mcu_r5fss0_core0_memory_region>;
+ memory-region-names = "dma", "firmware";
status = "okay";
};
@@ -197,6 +198,7 @@ &mcu_r5fss0_core1 {
mboxes = <&mailbox0_cluster0 &mbox_mcu_r5fss0_core1>;
memory-region = <&mcu_r5fss0_core1_dma_memory_region>,
<&mcu_r5fss0_core1_memory_region>;
+ memory-region-names = "dma", "firmware";
status = "okay";
};
@@ -209,6 +211,7 @@ &main_r5fss0_core0 {
mboxes = <&mailbox0_cluster1 &mbox_main_r5fss0_core0>;
memory-region = <&main_r5fss0_core0_dma_memory_region>,
<&main_r5fss0_core0_memory_region>;
+ memory-region-names = "dma", "firmware";
status = "okay";
};
@@ -216,6 +219,7 @@ &main_r5fss0_core1 {
mboxes = <&mailbox0_cluster1 &mbox_main_r5fss0_core1>;
memory-region = <&main_r5fss0_core1_dma_memory_region>,
<&main_r5fss0_core1_memory_region>;
+ memory-region-names = "dma", "firmware";
status = "okay";
};
@@ -228,6 +232,7 @@ &main_r5fss1_core0 {
mboxes = <&mailbox0_cluster2 &mbox_main_r5fss1_core0>;
memory-region = <&main_r5fss1_core0_dma_memory_region>,
<&main_r5fss1_core0_memory_region>;
+ memory-region-names = "dma", "firmware";
status = "okay";
};
@@ -235,6 +240,7 @@ &main_r5fss1_core1 {
mboxes = <&mailbox0_cluster2 &mbox_main_r5fss1_core1>;
memory-region = <&main_r5fss1_core1_dma_memory_region>,
<&main_r5fss1_core1_memory_region>;
+ memory-region-names = "dma", "firmware";
status = "okay";
};
diff --git a/arch/arm64/boot/dts/ti/k3-j722s-ti-ipc-firmware.dtsi b/arch/arm64/boot/dts/ti/k3-j722s-ti-ipc-firmware.dtsi
index cb7cd385a1655375931bac1d65fc766ae174234a..a59c3648d8056c8a759fcc536e51bc9adb04a62b 100644
--- a/arch/arm64/boot/dts/ti/k3-j722s-ti-ipc-firmware.dtsi
+++ b/arch/arm64/boot/dts/ti/k3-j722s-ti-ipc-firmware.dtsi
@@ -123,6 +123,7 @@ &wkup_r5fss0_core0 {
mboxes = <&mailbox0_cluster0 &mbox_wkup_r5_0>;
memory-region = <&wkup_r5fss0_core0_dma_memory_region>,
<&wkup_r5fss0_core0_memory_region>;
+ memory-region-names = "dma", "firmware";
status = "okay";
};
@@ -134,6 +135,7 @@ &mcu_r5fss0_core0 {
mboxes = <&mailbox0_cluster1 &mbox_mcu_r5_0>;
memory-region = <&mcu_r5fss0_core0_dma_memory_region>,
<&mcu_r5fss0_core0_memory_region>;
+ memory-region-names = "dma", "firmware";
status = "okay";
};
@@ -145,6 +147,7 @@ &main_r5fss0_core0 {
mboxes = <&mailbox0_cluster3 &mbox_main_r5_0>;
memory-region = <&main_r5fss0_core0_dma_memory_region>,
<&main_r5fss0_core0_memory_region>;
+ memory-region-names = "dma", "firmware";
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 455397227d4a1081a1579061208b7e92db32ebd1..d08fd3ff8a8902b7dc1f0f55c251e5546f1bdd2c 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
@@ -262,6 +262,7 @@ &mcu_r5fss0_core0 {
mboxes = <&mailbox0_cluster0 &mbox_mcu_r5fss0_core0>;
memory-region = <&mcu_r5fss0_core0_dma_memory_region>,
<&mcu_r5fss0_core0_memory_region>;
+ memory-region-names = "dma", "firmware";
};
&mcu_r5fss0_core1 {
@@ -269,6 +270,7 @@ &mcu_r5fss0_core1 {
mboxes = <&mailbox0_cluster0 &mbox_mcu_r5fss0_core1>;
memory-region = <&mcu_r5fss0_core1_dma_memory_region>,
<&mcu_r5fss0_core1_memory_region>;
+ memory-region-names = "dma", "firmware";
};
&main_r5fss0 {
@@ -281,6 +283,7 @@ &main_r5fss0_core0 {
mboxes = <&mailbox0_cluster1 &mbox_main_r5fss0_core0>;
memory-region = <&main_r5fss0_core0_dma_memory_region>,
<&main_r5fss0_core0_memory_region>;
+ memory-region-names = "dma", "firmware";
};
&main_r5fss0_core1 {
@@ -288,6 +291,7 @@ &main_r5fss0_core1 {
mboxes = <&mailbox0_cluster1 &mbox_main_r5fss0_core1>;
memory-region = <&main_r5fss0_core1_dma_memory_region>,
<&main_r5fss0_core1_memory_region>;
+ memory-region-names = "dma", "firmware";
};
&main_r5fss1 {
@@ -300,6 +304,7 @@ &main_r5fss1_core0 {
mboxes = <&mailbox0_cluster2 &mbox_main_r5fss1_core0>;
memory-region = <&main_r5fss1_core0_dma_memory_region>,
<&main_r5fss1_core0_memory_region>;
+ memory-region-names = "dma", "firmware";
};
&main_r5fss1_core1 {
@@ -307,6 +312,7 @@ &main_r5fss1_core1 {
mboxes = <&mailbox0_cluster2 &mbox_main_r5fss1_core1>;
memory-region = <&main_r5fss1_core1_dma_memory_region>,
<&main_r5fss1_core1_memory_region>;
+ memory-region-names = "dma", "firmware";
};
&main_r5fss2 {
@@ -319,6 +325,7 @@ &main_r5fss2_core0 {
mboxes = <&mailbox0_cluster3 &mbox_main_r5fss2_core0>;
memory-region = <&main_r5fss2_core0_dma_memory_region>,
<&main_r5fss2_core0_memory_region>;
+ memory-region-names = "dma", "firmware";
};
&main_r5fss2_core1 {
@@ -326,6 +333,7 @@ &main_r5fss2_core1 {
mboxes = <&mailbox0_cluster3 &mbox_main_r5fss2_core1>;
memory-region = <&main_r5fss2_core1_dma_memory_region>,
<&main_r5fss2_core1_memory_region>;
+ memory-region-names = "dma", "firmware";
};
&c71_0 {
--
2.53.0
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH v3 4/7] arm64: dts: ti: k3-am62a7-sk: Split r5f memory region
2026-03-18 15:13 [PATCH v3 0/7] arm64: dts: ti: k3-am62a7-sk: Split r5f memory region Markus Schneider-Pargmann (TI)
` (2 preceding siblings ...)
2026-03-18 15:13 ` [PATCH v3 3/7] arm64: dts: ti: k3: Use memory-region-names for r5f Markus Schneider-Pargmann (TI)
@ 2026-03-18 15:13 ` Markus Schneider-Pargmann (TI)
2026-03-18 15:13 ` [PATCH v3 5/7] arm64: dts: ti: k3-am62p5-sk: " Markus Schneider-Pargmann (TI)
` (3 subsequent siblings)
7 siblings, 0 replies; 11+ messages in thread
From: Markus Schneider-Pargmann (TI) @ 2026-03-18 15:13 UTC (permalink / raw)
To: Bjorn Andersson, Mathieu Poirier, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Suman Anna, Nishanth Menon,
Vignesh Raghavendra, Tero Kristo
Cc: Vishal Mahaveer, Kevin Hilman, Dhruva Gole, Sebin Francis,
Kendall Willis, Akashdeep Kaur, linux-remoteproc, devicetree,
linux-kernel, linux-arm-kernel, Markus Schneider-Pargmann (TI)
Split the firmware memory region in more specific parts so it is better
described where to find which information. Specifically the LPM metadata
region is important as bootloader software like U-Boot has to know where
that data is to be able to read that data.
Signed-off-by: Markus Schneider-Pargmann (TI) <msp@baylibre.com>
---
arch/arm64/boot/dts/ti/k3-am62a7-sk.dts | 40 +++++++++++++++++++++++++++++++--
1 file changed, 38 insertions(+), 2 deletions(-)
diff --git a/arch/arm64/boot/dts/ti/k3-am62a7-sk.dts b/arch/arm64/boot/dts/ti/k3-am62a7-sk.dts
index e99bdbc2e0cbdf858f1631096f9c2a086191bab3..c381cc33064ec427751a9ac5bcdff745a9559a89 100644
--- a/arch/arm64/boot/dts/ti/k3-am62a7-sk.dts
+++ b/arch/arm64/boot/dts/ti/k3-am62a7-sk.dts
@@ -59,9 +59,33 @@ wkup_r5fss0_core0_dma_memory_region: memory@9c800000 {
no-map;
};
- wkup_r5fss0_core0_memory_region: memory@9c900000 {
+ wkup_r5fss0_core0_ipc_region: memory@9c900000 {
compatible = "shared-dma-pool";
- reg = <0x00 0x9c900000 0x00 0xf00000>;
+ reg = <0x00 0x9c900000 0x00 0x100000>;
+ no-map;
+ };
+
+ wkup_r5fss0_core0_lpm_fs_stub_region: memory@9ca00000 {
+ compatible = "shared-dma-pool";
+ reg = <0x00 0x9ca00000 0x00 0x8000>;
+ no-map;
+ };
+
+ wkup_r5fss0_core0_lpm_metadata_region: memory@9ca08000 {
+ compatible = "shared-dma-pool";
+ reg = <0x00 0x9ca08000 0x00 0x1000>;
+ no-map;
+ };
+
+ wkup_r5fss0_core0_lpm_rest_region: memory@9ca09000 {
+ compatible = "shared-dma-pool";
+ reg = <0x00 0x9ca09000 0x00 0x97000>;
+ no-map;
+ };
+
+ wkup_r5fss0_core0_dm_region: memory@9caa0000 {
+ compatible = "shared-dma-pool";
+ reg = <0x00 0x9caa0000 0x00 0xd60000>;
no-map;
};
@@ -922,3 +946,15 @@ &mcu_uart0 {
};
#include "k3-am62a-ti-ipc-firmware.dtsi"
+
+&wkup_r5fss0_core0 {
+ memory-region = <&wkup_r5fss0_core0_dma_memory_region>,
+ <&wkup_r5fss0_core0_ipc_region>,
+ <&wkup_r5fss0_core0_lpm_fs_stub_region>,
+ <&wkup_r5fss0_core0_lpm_metadata_region>,
+ <&wkup_r5fss0_core0_lpm_rest_region>,
+ <&wkup_r5fss0_core0_dm_region>;
+ memory-region-names = "dma", "ipc", "lpm-stub",
+ "lpm-metadata", "lpm-context",
+ "dm-firmware";
+};
--
2.53.0
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH v3 5/7] arm64: dts: ti: k3-am62p5-sk: Split r5f memory region
2026-03-18 15:13 [PATCH v3 0/7] arm64: dts: ti: k3-am62a7-sk: Split r5f memory region Markus Schneider-Pargmann (TI)
` (3 preceding siblings ...)
2026-03-18 15:13 ` [PATCH v3 4/7] arm64: dts: ti: k3-am62a7-sk: Split r5f memory region Markus Schneider-Pargmann (TI)
@ 2026-03-18 15:13 ` Markus Schneider-Pargmann (TI)
2026-03-18 15:13 ` [PATCH v3 6/7] arm64: dts: ti: k3-am62a7-sk: Add r5f nodes to pre-ram bootphase Markus Schneider-Pargmann (TI)
` (2 subsequent siblings)
7 siblings, 0 replies; 11+ messages in thread
From: Markus Schneider-Pargmann (TI) @ 2026-03-18 15:13 UTC (permalink / raw)
To: Bjorn Andersson, Mathieu Poirier, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Suman Anna, Nishanth Menon,
Vignesh Raghavendra, Tero Kristo
Cc: Vishal Mahaveer, Kevin Hilman, Dhruva Gole, Sebin Francis,
Kendall Willis, Akashdeep Kaur, linux-remoteproc, devicetree,
linux-kernel, linux-arm-kernel, Markus Schneider-Pargmann (TI)
Split the firmware memory region in more specific parts so it is better
described where to find which information. Specifically the LPM metadata
region is important as bootloader software like U-Boot has to know where
that data is to be able to read that data.
Signed-off-by: Markus Schneider-Pargmann (TI) <msp@baylibre.com>
---
arch/arm64/boot/dts/ti/k3-am62p5-sk.dts | 40 +++++++++++++++++++++++++++++++--
1 file changed, 38 insertions(+), 2 deletions(-)
diff --git a/arch/arm64/boot/dts/ti/k3-am62p5-sk.dts b/arch/arm64/boot/dts/ti/k3-am62p5-sk.dts
index 4f7f6f95b02ef94a140edcef595ad8f6cc4b4113..7fa4924ab52484c7ac4243a0cd6c0d7aacaf8b30 100644
--- a/arch/arm64/boot/dts/ti/k3-am62p5-sk.dts
+++ b/arch/arm64/boot/dts/ti/k3-am62p5-sk.dts
@@ -55,9 +55,33 @@ wkup_r5fss0_core0_dma_memory_region: memory@9c800000 {
no-map;
};
- wkup_r5fss0_core0_memory_region: memory@9c900000 {
+ wkup_r5fss0_core0_ipc_region: memory@9c900000 {
compatible = "shared-dma-pool";
- reg = <0x00 0x9c900000 0x00 0xf00000>;
+ reg = <0x00 0x9c900000 0x00 0x100000>;
+ no-map;
+ };
+
+ wkup_r5fss0_core0_lpm_fs_stub_region: memory@9ca00000 {
+ compatible = "shared-dma-pool";
+ reg = <0x00 0x9ca00000 0x00 0x8000>;
+ no-map;
+ };
+
+ wkup_r5fss0_core0_lpm_metadata_region: memory@9ca08000 {
+ compatible = "shared-dma-pool";
+ reg = <0x00 0x9ca08000 0x00 0x1000>;
+ no-map;
+ };
+
+ wkup_r5fss0_core0_lpm_rest_region: memory@9ca09000 {
+ compatible = "shared-dma-pool";
+ reg = <0x00 0x9ca09000 0x00 0x97000>;
+ no-map;
+ };
+
+ wkup_r5fss0_core0_dm_region: memory@9caa0000 {
+ compatible = "shared-dma-pool";
+ reg = <0x00 0x9caa0000 0x00 0xd60000>;
no-map;
};
@@ -833,3 +857,15 @@ &mcu_uart0 {
};
#include "k3-am62p-ti-ipc-firmware.dtsi"
+
+&wkup_r5fss0_core0 {
+ memory-region = <&wkup_r5fss0_core0_dma_memory_region>,
+ <&wkup_r5fss0_core0_ipc_region>,
+ <&wkup_r5fss0_core0_lpm_fs_stub_region>,
+ <&wkup_r5fss0_core0_lpm_metadata_region>,
+ <&wkup_r5fss0_core0_lpm_rest_region>,
+ <&wkup_r5fss0_core0_dm_region>;
+ memory-region-names = "dma", "ipc", "lpm-stub",
+ "lpm-metadata", "lpm-context",
+ "dm-firmware";
+};
--
2.53.0
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH v3 6/7] arm64: dts: ti: k3-am62a7-sk: Add r5f nodes to pre-ram bootphase
2026-03-18 15:13 [PATCH v3 0/7] arm64: dts: ti: k3-am62a7-sk: Split r5f memory region Markus Schneider-Pargmann (TI)
` (4 preceding siblings ...)
2026-03-18 15:13 ` [PATCH v3 5/7] arm64: dts: ti: k3-am62p5-sk: " Markus Schneider-Pargmann (TI)
@ 2026-03-18 15:13 ` Markus Schneider-Pargmann (TI)
2026-03-18 15:13 ` [PATCH v3 7/7] arm64: dts: ti: k3-am62p5-sk: " Markus Schneider-Pargmann (TI)
2026-03-30 14:56 ` [PATCH v3 0/7] arm64: dts: ti: k3-am62a7-sk: Split r5f memory region Mathieu Poirier
7 siblings, 0 replies; 11+ messages in thread
From: Markus Schneider-Pargmann (TI) @ 2026-03-18 15:13 UTC (permalink / raw)
To: Bjorn Andersson, Mathieu Poirier, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Suman Anna, Nishanth Menon,
Vignesh Raghavendra, Tero Kristo
Cc: Vishal Mahaveer, Kevin Hilman, Dhruva Gole, Sebin Francis,
Kendall Willis, Akashdeep Kaur, linux-remoteproc, devicetree,
linux-kernel, linux-arm-kernel, Markus Schneider-Pargmann (TI)
For IO+DDR the wkup_r5fss0_core0 and the
wkup_r5fss0_core0_lpm_metadata_region need to be accessed before RAM
setup is done. These are used to read the lpm metadata region in which
data is stored to resume. This needs to be done before RAM is in use to
avoid overwriting data.
Signed-off-by: Markus Schneider-Pargmann (TI) <msp@baylibre.com>
---
arch/arm64/boot/dts/ti/k3-am62a7-sk.dts | 2 ++
1 file changed, 2 insertions(+)
diff --git a/arch/arm64/boot/dts/ti/k3-am62a7-sk.dts b/arch/arm64/boot/dts/ti/k3-am62a7-sk.dts
index c381cc33064ec427751a9ac5bcdff745a9559a89..46483d4085c20fc297d28a49ca7ef5d4bfc4ae9a 100644
--- a/arch/arm64/boot/dts/ti/k3-am62a7-sk.dts
+++ b/arch/arm64/boot/dts/ti/k3-am62a7-sk.dts
@@ -75,6 +75,7 @@ wkup_r5fss0_core0_lpm_metadata_region: memory@9ca08000 {
compatible = "shared-dma-pool";
reg = <0x00 0x9ca08000 0x00 0x1000>;
no-map;
+ bootph-pre-ram;
};
wkup_r5fss0_core0_lpm_rest_region: memory@9ca09000 {
@@ -957,4 +958,5 @@ &wkup_r5fss0_core0 {
memory-region-names = "dma", "ipc", "lpm-stub",
"lpm-metadata", "lpm-context",
"dm-firmware";
+ bootph-pre-ram;
};
--
2.53.0
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH v3 7/7] arm64: dts: ti: k3-am62p5-sk: Add r5f nodes to pre-ram bootphase
2026-03-18 15:13 [PATCH v3 0/7] arm64: dts: ti: k3-am62a7-sk: Split r5f memory region Markus Schneider-Pargmann (TI)
` (5 preceding siblings ...)
2026-03-18 15:13 ` [PATCH v3 6/7] arm64: dts: ti: k3-am62a7-sk: Add r5f nodes to pre-ram bootphase Markus Schneider-Pargmann (TI)
@ 2026-03-18 15:13 ` Markus Schneider-Pargmann (TI)
2026-03-30 14:56 ` [PATCH v3 0/7] arm64: dts: ti: k3-am62a7-sk: Split r5f memory region Mathieu Poirier
7 siblings, 0 replies; 11+ messages in thread
From: Markus Schneider-Pargmann (TI) @ 2026-03-18 15:13 UTC (permalink / raw)
To: Bjorn Andersson, Mathieu Poirier, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Suman Anna, Nishanth Menon,
Vignesh Raghavendra, Tero Kristo
Cc: Vishal Mahaveer, Kevin Hilman, Dhruva Gole, Sebin Francis,
Kendall Willis, Akashdeep Kaur, linux-remoteproc, devicetree,
linux-kernel, linux-arm-kernel, Markus Schneider-Pargmann (TI)
For IO+DDR the wkup_r5fss0_core0 and the
wkup_r5fss0_core0_lpm_metadata_region need to be accessed before RAM
setup is done. These are used to read the lpm metadata region in which
data is stored to resume. This needs to be done before RAM is in use to
avoid overwriting data.
Signed-off-by: Markus Schneider-Pargmann (TI) <msp@baylibre.com>
---
arch/arm64/boot/dts/ti/k3-am62p5-sk.dts | 2 ++
1 file changed, 2 insertions(+)
diff --git a/arch/arm64/boot/dts/ti/k3-am62p5-sk.dts b/arch/arm64/boot/dts/ti/k3-am62p5-sk.dts
index 7fa4924ab52484c7ac4243a0cd6c0d7aacaf8b30..55e75e9946f75d4d787c933d1d87de6ea9670a13 100644
--- a/arch/arm64/boot/dts/ti/k3-am62p5-sk.dts
+++ b/arch/arm64/boot/dts/ti/k3-am62p5-sk.dts
@@ -71,6 +71,7 @@ wkup_r5fss0_core0_lpm_metadata_region: memory@9ca08000 {
compatible = "shared-dma-pool";
reg = <0x00 0x9ca08000 0x00 0x1000>;
no-map;
+ bootph-pre-ram;
};
wkup_r5fss0_core0_lpm_rest_region: memory@9ca09000 {
@@ -868,4 +869,5 @@ &wkup_r5fss0_core0 {
memory-region-names = "dma", "ipc", "lpm-stub",
"lpm-metadata", "lpm-context",
"dm-firmware";
+ bootph-pre-ram;
};
--
2.53.0
^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [PATCH v3 1/7] dt-bindings: remoteproc: k3-r5f: Split up memory regions
2026-03-18 15:13 ` [PATCH v3 1/7] dt-bindings: remoteproc: k3-r5f: Split up memory regions Markus Schneider-Pargmann (TI)
@ 2026-03-26 14:53 ` Rob Herring (Arm)
0 siblings, 0 replies; 11+ messages in thread
From: Rob Herring (Arm) @ 2026-03-26 14:53 UTC (permalink / raw)
To: Markus Schneider-Pargmann (TI)
Cc: Nishanth Menon, Mathieu Poirier, Conor Dooley,
Vignesh Raghavendra, Tero Kristo, Dhruva Gole, Akashdeep Kaur,
Kevin Hilman, Bjorn Andersson, linux-remoteproc, linux-kernel,
Kendall Willis, devicetree, Vishal Mahaveer, Sebin Francis,
Krzysztof Kozlowski, linux-arm-kernel
On Wed, 18 Mar 2026 16:13:07 +0100, Markus Schneider-Pargmann (TI) wrote:
> Split up the region reserved for the firmware image in more specific
> sections to expose the full fixed layout. Especially the LPM metadata
> section is important for bootloaders as it contains information about
> how to exit IO+DDR. This is read by the bootloader but is written by the
> firmware.
>
> Signed-off-by: Markus Schneider-Pargmann (TI) <msp@baylibre.com>
> ---
> .../bindings/remoteproc/ti,k3-r5f-rproc.yaml | 29 ++++++++++++++--------
> 1 file changed, 19 insertions(+), 10 deletions(-)
>
Reviewed-by: Rob Herring (Arm) <robh@kernel.org>
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v3 2/7] dt-bindings: remoteproc: k3-r5f: Add memory-region-names
2026-03-18 15:13 ` [PATCH v3 2/7] dt-bindings: remoteproc: k3-r5f: Add memory-region-names Markus Schneider-Pargmann (TI)
@ 2026-03-26 14:53 ` Rob Herring (Arm)
0 siblings, 0 replies; 11+ messages in thread
From: Rob Herring (Arm) @ 2026-03-26 14:53 UTC (permalink / raw)
To: Markus Schneider-Pargmann (TI)
Cc: Nishanth Menon, devicetree, Conor Dooley, Vignesh Raghavendra,
Mathieu Poirier, Dhruva Gole, Akashdeep Kaur, Kevin Hilman,
Bjorn Andersson, linux-remoteproc, linux-kernel, Kendall Willis,
Vishal Mahaveer, Sebin Francis, Krzysztof Kozlowski, Tero Kristo,
linux-arm-kernel
On Wed, 18 Mar 2026 16:13:08 +0100, Markus Schneider-Pargmann (TI) wrote:
> Add names to the memory-region-names for easier identification of memory
> regions. As the meaning of the second memory region can be different
> also require the use of memory-region-names if memory-region is in use.
>
> Signed-off-by: Markus Schneider-Pargmann (TI) <msp@baylibre.com>
> ---
> .../bindings/remoteproc/ti,k3-r5f-rproc.yaml | 26 ++++++++++++++++++++++
> 1 file changed, 26 insertions(+)
>
Reviewed-by: Rob Herring (Arm) <robh@kernel.org>
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v3 0/7] arm64: dts: ti: k3-am62a7-sk: Split r5f memory region
2026-03-18 15:13 [PATCH v3 0/7] arm64: dts: ti: k3-am62a7-sk: Split r5f memory region Markus Schneider-Pargmann (TI)
` (6 preceding siblings ...)
2026-03-18 15:13 ` [PATCH v3 7/7] arm64: dts: ti: k3-am62p5-sk: " Markus Schneider-Pargmann (TI)
@ 2026-03-30 14:56 ` Mathieu Poirier
7 siblings, 0 replies; 11+ messages in thread
From: Mathieu Poirier @ 2026-03-30 14:56 UTC (permalink / raw)
To: Markus Schneider-Pargmann (TI)
Cc: Nishanth Menon, Rob Herring, Conor Dooley, Vignesh Raghavendra,
Tero Kristo, Dhruva Gole, Akashdeep Kaur, Kevin Hilman,
Bjorn Andersson, linux-remoteproc, linux-kernel, Kendall Willis,
devicetree, Vishal Mahaveer, Sebin Francis, Krzysztof Kozlowski,
linux-arm-kernel
On Wed, Mar 18, 2026 at 04:13:06PM +0100, Markus Schneider-Pargmann (TI) wrote:
> Hi,
>
> Split the firmware memory region in more specific parts so it is better
> described where which information is stored. Specifically the LPM metadata
> region is important as bootloader software like U-Boot has to know where
> that data is to be able to read that data and resume from RAM.
>
> IO+DDR is a deep sleep state in which a few pins are set to be sensitive
> for wakeup while the DDR is kept in self refresh. Everything else is
> powered off.
>
> The changes in this series were suggested as part of the IO+DDR u-boot series:
> https://lore.kernel.org/r/814c211f-a9eb-4311-bb84-165b1a69755f@ti.com
>
> There are currently no real users of the memory-region that is split in
> this series. The size of the memory-region in total stays the same.
> The new layout is derived from the software running on the r5f
> processor:
> https://github.com/TexasInstruments/mcupsdk-core-k3/blob/k3_main/examples/drivers/ipc/ipc_rpmsg_echo_linux/am62ax-sk/r5fss0-0_freertos/ti-arm-clang/linker.cmd#L172
> https://github.com/TexasInstruments/mcupsdk-core-k3/blob/k3_main/source/drivers/device_manager/sciclient.h#L459
>
> Additionally the two important devicetree nodes for resuming from IO+DDR
> have the bootph-pre-ram flag added as this data needs to be read before
> the RAM is in use.
>
> Best
> Markus
>
> Signed-off-by: Markus Schneider-Pargmann (TI) <msp@baylibre.com>
> ---
> Changes in v3:
> - Squash the enforcement of the memory-region-names requirement in the
> patch adding the memory-region-names, as suggested.
> - Link to v2: https://lore.kernel.org/r/20260312-topic-am62a-ioddr-dt-v6-19-v2-0-37cb7ceec658@baylibre.com
>
> Changes in v2:
> - Make memory-region-names required if memory-region is present
> - Fixup memory-region and memory-region-names conditions. Require either
> 2 or 6 regions for memory-region and memory-region-names
> - Reword and restructure the binding documentation for memory-region and
> memory-region-names
> - Add memory-region-names to all uses of memory-region
> - Link to v1: https://lore.kernel.org/r/20260303-topic-am62a-ioddr-dt-v6-19-v1-0-12fe72bb40d2@baylibre.com
>
> ---
> Markus Schneider-Pargmann (TI) (7):
> dt-bindings: remoteproc: k3-r5f: Split up memory regions
> dt-bindings: remoteproc: k3-r5f: Add memory-region-names
I have picked-up the above two. The .dtsi files need to go through the TI
tree.
Thanks,
Mathieu
> arm64: dts: ti: k3: Use memory-region-names for r5f
> arm64: dts: ti: k3-am62a7-sk: Split r5f memory region
> arm64: dts: ti: k3-am62p5-sk: Split r5f memory region
> arm64: dts: ti: k3-am62a7-sk: Add r5f nodes to pre-ram bootphase
> arm64: dts: ti: k3-am62p5-sk: Add r5f nodes to pre-ram bootphase
>
> .../bindings/remoteproc/ti,k3-r5f-rproc.yaml | 55 ++++++++++++++++++----
> .../arm64/boot/dts/ti/k3-am62-ti-ipc-firmware.dtsi | 1 +
> .../boot/dts/ti/k3-am62a-ti-ipc-firmware.dtsi | 2 +
> arch/arm64/boot/dts/ti/k3-am62a7-sk.dts | 42 ++++++++++++++++-
> .../boot/dts/ti/k3-am62p-ti-ipc-firmware.dtsi | 2 +
> arch/arm64/boot/dts/ti/k3-am62p5-sk.dts | 42 ++++++++++++++++-
> .../arm64/boot/dts/ti/k3-am64-ti-ipc-firmware.dtsi | 4 ++
> .../arm64/boot/dts/ti/k3-am65-ti-ipc-firmware.dtsi | 2 +
> .../boot/dts/ti/k3-j7200-ti-ipc-firmware.dtsi | 4 ++
> .../boot/dts/ti/k3-j721e-ti-ipc-firmware.dtsi | 6 +++
> .../boot/dts/ti/k3-j721s2-ti-ipc-firmware.dtsi | 6 +++
> .../boot/dts/ti/k3-j722s-ti-ipc-firmware.dtsi | 3 ++
> .../k3-j784s4-j742s2-ti-ipc-firmware-common.dtsi | 8 ++++
> 13 files changed, 163 insertions(+), 14 deletions(-)
> ---
> base-commit: 6de23f81a5e08be8fbf5e8d7e9febc72a5b5f27f
> change-id: 20260210-topic-am62a-ioddr-dt-v6-19-0da7712081d7
>
> Best regards,
> --
> Markus Schneider-Pargmann (TI) <msp@baylibre.com>
>
^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2026-03-30 14:56 UTC | newest]
Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-03-18 15:13 [PATCH v3 0/7] arm64: dts: ti: k3-am62a7-sk: Split r5f memory region Markus Schneider-Pargmann (TI)
2026-03-18 15:13 ` [PATCH v3 1/7] dt-bindings: remoteproc: k3-r5f: Split up memory regions Markus Schneider-Pargmann (TI)
2026-03-26 14:53 ` Rob Herring (Arm)
2026-03-18 15:13 ` [PATCH v3 2/7] dt-bindings: remoteproc: k3-r5f: Add memory-region-names Markus Schneider-Pargmann (TI)
2026-03-26 14:53 ` Rob Herring (Arm)
2026-03-18 15:13 ` [PATCH v3 3/7] arm64: dts: ti: k3: Use memory-region-names for r5f Markus Schneider-Pargmann (TI)
2026-03-18 15:13 ` [PATCH v3 4/7] arm64: dts: ti: k3-am62a7-sk: Split r5f memory region Markus Schneider-Pargmann (TI)
2026-03-18 15:13 ` [PATCH v3 5/7] arm64: dts: ti: k3-am62p5-sk: " Markus Schneider-Pargmann (TI)
2026-03-18 15:13 ` [PATCH v3 6/7] arm64: dts: ti: k3-am62a7-sk: Add r5f nodes to pre-ram bootphase Markus Schneider-Pargmann (TI)
2026-03-18 15:13 ` [PATCH v3 7/7] arm64: dts: ti: k3-am62p5-sk: " Markus Schneider-Pargmann (TI)
2026-03-30 14:56 ` [PATCH v3 0/7] arm64: dts: ti: k3-am62a7-sk: Split r5f memory region Mathieu Poirier
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox