linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 00/33] Refactor TI IPC DT configs into dtsi
@ 2025-08-23 16:08 Beleswar Padhi
  2025-08-23 16:08 ` [PATCH v2 01/33] arm64: dts: ti: k3-j7200: Enable remote processors at board level Beleswar Padhi
                   ` (32 more replies)
  0 siblings, 33 replies; 41+ messages in thread
From: Beleswar Padhi @ 2025-08-23 16:08 UTC (permalink / raw)
  To: nm, vigneshr, kristo, robh, krzk+dt, conor+dt
  Cc: afd, u-kumar1, hnagalla, jm, b-padhi, devicetree, linux-kernel,
	linux-arm-kernel, Robert Nelson, Jo_o Paulo Gon_alves,
	Parth Pancholi, Emanuele Ghidoli, Francesco Dolcini,
	Matthias Schiffer, Logan Bristol, Josua Mayer, John Ma,
	Nathan Morrisson, Garrett Giordano, Matt McKee, Wadim Egorov,
	Andrejs Cainikovs, Max Krummenacher, Stefan Eichenberger,
	Hiago De Franco

The TI K3 SoCs have multiple programmable remote processors like
R5F, M4F, C6x/C7x etc. The TI SDKs for these SoCs offer sample firmware
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.

Refactor these firmware dependent 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 (>50%) 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 existing boards.

DTSI vs Overlay:
1. I chose DTSI over overlay as both the ways required including the
refactored file in existing board-level files to maintain backward
compatibility, so didn't see the advantage of using overlays here.
2. If we do down the overlay path, existing board-level file names have
to be changed to indicate they are without the IPC support; so that
they can be combined with the overlay to generate the same-named DTBs.
For example:
k3-am69-sk.dtb := k3-am69-sk-sans-ipc.dtb k3-j784s4-ti-ipc-firmware.dtbo
			     ~~~~~~~~

I am not sure if this renaming of files is ideal?

v2: Changelog:
* Andrew:
1. Re-ordered patches in the following flow:
	Patches 01-11: Enables remoteprocs/mailboxes at board level.
	Patches 12-19: Adds missing configs for TI IPC firmware.
	Patches 20-22: Some fixes and cleanups before refactoring.
	Patches 23-33: Actual refactoring of FW nodes into dtsi.
2. Split out [PATCH 06/33] into [PATCH v2 13/33] and [PATCH v2 22/33].
3. Dropped "[PATCH 33/33] Switch MCU R5F cluster to Split-mode" in v2.

* Francesco Dolcini:
4. Added new-line before sub-nodes.

* General:
5. Carried T/B tags from Hiago De Franco.

Link to v1:
https://lore.kernel.org/all/20250814223839.3256046-1-b-padhi@ti.com/

Testing Done:
1. Tested Boot across all TI K3 EVM/SK boards.
2. Tested IPC on all TI K3 J7* EVM/SK boards (& AM62x SK).
3. Tested that each patch in the series generates no new warnings/errors.
4. HELP needed: Boot/IPC test on vendor boards utilizing TI K3 SoCs. 

Note for vendors:
1. This series streamlines all boards(external vendors included) to use the
TI IPC DTSI config. In the process, several new nodes related to remote
processors have been added/enabled in the final DTS. Need vendors help in
performing a sanity boot & IPC functionality test with the changes included
(More info in indivdual patch)
2. If you wish to not include all of the TI IPC DTSI configs and leave the
board files as it is currently, just let me know so and I will drop those
patches in the next revision.
Cc: Robert Nelson <robertcnelson@gmail.com>
Cc: Jo_o Paulo Gon_alves <joao.goncalves@toradex.com>
Cc: Parth Pancholi <parth.pancholi@toradex.com>
Cc: Emanuele Ghidoli <emanuele.ghidoli@toradex.com>
Cc: Francesco Dolcini <francesco.dolcini@toradex.com>
Cc: Matthias Schiffer <matthias.schiffer@ew.tq-group.com>
Cc: Logan Bristol <logan.bristol@utexas.edu>
Cc: Josua Mayer <josua@solid-run.com>
Cc: John Ma <jma@phytec.com>
Cc: Nathan Morrisson <nmorrisson@phytec.com>
Cc: Garrett Giordano <ggiordano@phytec.com>
Cc: Matt McKee <mmckee@phytec.com>
Cc: Wadim Egorov <w.egorov@phytec.de>
Cc: Andrejs Cainikovs <andrejs.cainikovs@toradex.com>
Cc: Max Krummenacher <max.krummenacher@toradex.com>
Cc: Stefan Eichenberger <stefan.eichenberger@toradex.com>
Cc: Hiago De Franco <hiago.franco@toradex.com>

Thanks,
Beleswar

Beleswar Padhi (33):
  arm64: dts: ti: k3-j7200: Enable remote processors at board level
  arm64: dts: ti: k3-j721e: Enable remote processors at board level
  arm64: dts: ti: k3-j721s2: Enable remote processors at board level
  arm64: dts: ti: k3-j784s4-j742s2: Enable remote processors at board
    level
  arm64: dts: ti: k3-am62p-j722s: Enable remote processors at board
    level
  arm64: dts: ti: k3-am62: Enable remote processors at board level
  arm64: dts: ti: k3-am62a: Enable remote processors at board level
  arm64: dts: ti: k3-am64: Enable remote processors at board level
  arm64: dts: ti: k3-am65: Enable remote processors at board level
  arm64: dts: ti: k3-am62: Enable Mailbox nodes at the board level
  arm64: dts: ti: k3-am62a: Enable Mailbox nodes at the board level
  arm64: dts: ti: k3-am6*-boards: Add label to reserved-memory node
  arm64: dts: ti: k3-j721e-beagleboneai64: Add missing cfg for TI IPC FW
  arm64: dts: ti: k3-am62p-verdin: Add missing cfg for TI IPC Firmware
  arm64: dts: ti: k3-am62-verdin: Add missing cfg for TI IPC Firmware
  arm64: dts: ti: k3-am62-pocketbeagle2: Add missing cfg for TI IPC
    Firmware
  arm64: dts: ti: k3-am642-sr-som: Add missing cfg for TI IPC Firmware
  arm64: dts: ti: k3-am64-phycore-som: Add missing cfg for TI IPC
    Firmware
  arm64: dts: ti: k3-am642-tqma64xxl: Add missing cfg for TI IPC
    Firmware
  Revert "arm64: dts: ti: k3-j721e-sk: Fix reversed C6x carveout
    locations"
  Revert "arm64: dts: ti: k3-j721e-beagleboneai64: Fix reversed C6x
    carveout locations"
  arm64: dts: ti: k3-j721e-beagleboneai64: Switch MAIN R5F clusters to
    Split-mode
  arm64: dts: ti: k3-j7200-ti-ipc-firmware: Refactor IPC cfg into new
    dtsi
  arm64: dts: ti: k3-j721e-ti-ipc-firmware: Refactor IPC cfg into new
    dtsi
  arm64: dts: ti: k3-j721s2-ti-ipc-firmware: Refactor IPC cfg into new
    dtsi
  arm64: dts: ti: k3-j784s4-j742s2-ti-ipc-firmware-common: Refactor IPC
    cfg into new dtsi
  arm64: dts: ti: k3-j784s4-ti-ipc-firmware: Refactor IPC cfg into new
    dtsi
  arm64: dts: ti: k3-j722s-ti-ipc-firmware: Refactor IPC cfg into new
    dtsi
  arm64: dts: ti: k3-am62p-ti-ipc-firmware: Refactor IPC cfg into new
    dtsi
  arm64: dts: ti: k3-am62-ti-ipc-firmware: Refactor IPC cfg into new
    dtsi
  arm64: dts: ti: k3-am62a-ti-ipc-firmware: Refactor IPC cfg into new
    dtsi
  arm64: dts: ti: k3-am64-ti-ipc-firmware: Refactor IPC cfg into new
    dtsi
  arm64: dts: ti: k3-am65-ti-ipc-firmware: Refactor IPC cfg into new
    dtsi

 arch/arm64/boot/dts/ti/k3-am62-main.dtsi      |   1 +
 .../boot/dts/ti/k3-am62-phycore-som.dtsi      |  43 +--
 .../boot/dts/ti/k3-am62-pocketbeagle2.dts     |  36 +-
 .../boot/dts/ti/k3-am62-ti-ipc-firmware.dtsi  |  52 +++
 arch/arm64/boot/dts/ti/k3-am62-verdin.dtsi    |  31 +-
 arch/arm64/boot/dts/ti/k3-am62-wakeup.dtsi    |   1 +
 arch/arm64/boot/dts/ti/k3-am62a-main.dtsi     |   4 +
 arch/arm64/boot/dts/ti/k3-am62a-mcu.dtsi      |   1 +
 .../boot/dts/ti/k3-am62a-phycore-som.dtsi     |  90 +----
 .../boot/dts/ti/k3-am62a-ti-ipc-firmware.dtsi |  98 +++++
 arch/arm64/boot/dts/ti/k3-am62a-wakeup.dtsi   |   1 +
 arch/arm64/boot/dts/ti/k3-am62a7-sk.dts       |  92 +----
 arch/arm64/boot/dts/ti/k3-am62d2-evm.dts      |  77 +---
 .../dts/ti/k3-am62p-j722s-common-mcu.dtsi     |   1 +
 .../dts/ti/k3-am62p-j722s-common-wakeup.dtsi  |   1 +
 .../boot/dts/ti/k3-am62p-ti-ipc-firmware.dtsi |  60 +++
 arch/arm64/boot/dts/ti/k3-am62p-verdin.dtsi   |  42 ++-
 arch/arm64/boot/dts/ti/k3-am62p5-sk.dts       |  54 +--
 .../arm64/boot/dts/ti/k3-am62x-sk-common.dtsi |  47 +--
 arch/arm64/boot/dts/ti/k3-am64-main.dtsi      |   6 +
 .../boot/dts/ti/k3-am64-phycore-som.dtsi      | 124 +------
 .../boot/dts/ti/k3-am64-ti-ipc-firmware.dtsi  | 162 ++++++++
 arch/arm64/boot/dts/ti/k3-am642-evm.dts       | 146 +-------
 arch/arm64/boot/dts/ti/k3-am642-sk.dts        | 146 +-------
 arch/arm64/boot/dts/ti/k3-am642-sr-som.dtsi   |  92 +----
 .../arm64/boot/dts/ti/k3-am642-tqma64xxl.dtsi | 107 +-----
 .../boot/dts/ti/k3-am65-iot2050-common.dtsi   |  58 +--
 arch/arm64/boot/dts/ti/k3-am65-mcu.dtsi       |   3 +
 .../boot/dts/ti/k3-am65-ti-ipc-firmware.dtsi  |  64 ++++
 .../arm64/boot/dts/ti/k3-am654-base-board.dts |  54 +--
 .../arm64/boot/dts/ti/k3-am67a-beagley-ai.dts | 152 +-------
 .../boot/dts/ti/k3-am68-phycore-som.dtsi      | 235 +-----------
 arch/arm64/boot/dts/ti/k3-am68-sk-som.dtsi    | 229 +-----------
 arch/arm64/boot/dts/ti/k3-am69-sk.dts         | 348 +----------------
 arch/arm64/boot/dts/ti/k3-j7200-main.dtsi     |   3 +
 .../boot/dts/ti/k3-j7200-mcu-wakeup.dtsi      |   3 +
 arch/arm64/boot/dts/ti/k3-j7200-som-p0.dtsi   | 115 +-----
 .../boot/dts/ti/k3-j7200-ti-ipc-firmware.dtsi | 130 +++++++
 .../boot/dts/ti/k3-j721e-beagleboneai64.dts   | 229 +-----------
 arch/arm64/boot/dts/ti/k3-j721e-main.dtsi     |   6 +
 .../boot/dts/ti/k3-j721e-mcu-wakeup.dtsi      |   3 +
 arch/arm64/boot/dts/ti/k3-j721e-sk.dts        | 266 +------------
 arch/arm64/boot/dts/ti/k3-j721e-som-p0.dtsi   | 266 +------------
 .../boot/dts/ti/k3-j721e-ti-ipc-firmware.dtsi | 288 ++++++++++++++
 arch/arm64/boot/dts/ti/k3-j721s2-main.dtsi    |   6 +
 .../boot/dts/ti/k3-j721s2-mcu-wakeup.dtsi     |   3 +
 arch/arm64/boot/dts/ti/k3-j721s2-som-p0.dtsi  | 231 +-----------
 .../dts/ti/k3-j721s2-ti-ipc-firmware.dtsi     | 253 +++++++++++++
 arch/arm64/boot/dts/ti/k3-j722s-evm.dts       | 154 +-------
 arch/arm64/boot/dts/ti/k3-j722s-main.dtsi     |   1 +
 .../boot/dts/ti/k3-j722s-ti-ipc-firmware.dtsi | 163 ++++++++
 arch/arm64/boot/dts/ti/k3-j784s4-evm.dts      |  26 +-
 .../dts/ti/k3-j784s4-j742s2-evm-common.dtsi   | 337 +----------------
 .../dts/ti/k3-j784s4-j742s2-main-common.dtsi  |   9 +
 .../k3-j784s4-j742s2-mcu-wakeup-common.dtsi   |   3 +
 ...-j784s4-j742s2-ti-ipc-firmware-common.dtsi | 350 ++++++++++++++++++
 .../dts/ti/k3-j784s4-ti-ipc-firmware.dtsi     |  35 ++
 57 files changed, 1821 insertions(+), 3717 deletions(-)
 create mode 100644 arch/arm64/boot/dts/ti/k3-am62-ti-ipc-firmware.dtsi
 create mode 100644 arch/arm64/boot/dts/ti/k3-am62a-ti-ipc-firmware.dtsi
 create mode 100644 arch/arm64/boot/dts/ti/k3-am62p-ti-ipc-firmware.dtsi
 create mode 100644 arch/arm64/boot/dts/ti/k3-am64-ti-ipc-firmware.dtsi
 create mode 100644 arch/arm64/boot/dts/ti/k3-am65-ti-ipc-firmware.dtsi
 create mode 100644 arch/arm64/boot/dts/ti/k3-j7200-ti-ipc-firmware.dtsi
 create mode 100644 arch/arm64/boot/dts/ti/k3-j721e-ti-ipc-firmware.dtsi
 create mode 100644 arch/arm64/boot/dts/ti/k3-j721s2-ti-ipc-firmware.dtsi
 create mode 100644 arch/arm64/boot/dts/ti/k3-j722s-ti-ipc-firmware.dtsi
 create mode 100644 arch/arm64/boot/dts/ti/k3-j784s4-j742s2-ti-ipc-firmware-common.dtsi
 create mode 100644 arch/arm64/boot/dts/ti/k3-j784s4-ti-ipc-firmware.dtsi

-- 
2.34.1



^ permalink raw reply	[flat|nested] 41+ messages in thread

end of thread, other threads:[~2025-08-29  6:13 UTC | newest]

Thread overview: 41+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-08-23 16:08 [PATCH v2 00/33] Refactor TI IPC DT configs into dtsi Beleswar Padhi
2025-08-23 16:08 ` [PATCH v2 01/33] arm64: dts: ti: k3-j7200: Enable remote processors at board level Beleswar Padhi
2025-08-25 14:18   ` Andrew Davis
2025-08-23 16:08 ` [PATCH v2 02/33] arm64: dts: ti: k3-j721e: " Beleswar Padhi
2025-08-23 16:08 ` [PATCH v2 03/33] arm64: dts: ti: k3-j721s2: " Beleswar Padhi
2025-08-23 16:08 ` [PATCH v2 04/33] arm64: dts: ti: k3-j784s4-j742s2: " Beleswar Padhi
2025-08-23 16:08 ` [PATCH v2 05/33] arm64: dts: ti: k3-am62p-j722s: " Beleswar Padhi
2025-08-23 16:08 ` [PATCH v2 06/33] arm64: dts: ti: k3-am62: " Beleswar Padhi
2025-08-28 11:43   ` Wadim Egorov
2025-08-23 16:08 ` [PATCH v2 07/33] arm64: dts: ti: k3-am62a: " Beleswar Padhi
2025-08-23 16:08 ` [PATCH v2 08/33] arm64: dts: ti: k3-am64: " Beleswar Padhi
2025-08-28 11:46   ` Wadim Egorov
2025-08-23 16:08 ` [PATCH v2 09/33] arm64: dts: ti: k3-am65: " Beleswar Padhi
2025-08-23 16:08 ` [PATCH v2 10/33] arm64: dts: ti: k3-am62: Enable Mailbox nodes at the " Beleswar Padhi
2025-08-23 16:08 ` [PATCH v2 11/33] arm64: dts: ti: k3-am62a: " Beleswar Padhi
2025-08-23 16:08 ` [PATCH v2 12/33] arm64: dts: ti: k3-am6*-boards: Add label to reserved-memory node Beleswar Padhi
2025-08-23 16:08 ` [PATCH v2 13/33] arm64: dts: ti: k3-j721e-beagleboneai64: Add missing cfg for TI IPC FW Beleswar Padhi
2025-08-23 16:08 ` [PATCH v2 14/33] arm64: dts: ti: k3-am62p-verdin: Add missing cfg for TI IPC Firmware Beleswar Padhi
2025-08-23 16:08 ` [PATCH v2 15/33] arm64: dts: ti: k3-am62-verdin: " Beleswar Padhi
2025-08-23 16:08 ` [PATCH v2 16/33] arm64: dts: ti: k3-am62-pocketbeagle2: " Beleswar Padhi
2025-08-23 16:08 ` [PATCH v2 17/33] arm64: dts: ti: k3-am642-sr-som: " Beleswar Padhi
2025-08-23 16:08 ` [PATCH v2 18/33] arm64: dts: ti: k3-am64-phycore-som: " Beleswar Padhi
2025-08-28 11:42   ` Wadim Egorov
2025-08-29  6:02     ` Beleswar Prasad Padhi
2025-08-23 16:08 ` [PATCH v2 19/33] arm64: dts: ti: k3-am642-tqma64xxl: " Beleswar Padhi
2025-08-23 16:08 ` [PATCH v2 20/33] Revert "arm64: dts: ti: k3-j721e-sk: Fix reversed C6x carveout locations" Beleswar Padhi
2025-08-23 16:08 ` [PATCH v2 21/33] Revert "arm64: dts: ti: k3-j721e-beagleboneai64: " Beleswar Padhi
2025-08-23 16:08 ` [PATCH v2 22/33] arm64: dts: ti: k3-j721e-beagleboneai64: Switch MAIN R5F clusters to Split-mode Beleswar Padhi
2025-08-23 16:08 ` [PATCH v2 23/33] arm64: dts: ti: k3-j7200-ti-ipc-firmware: Refactor IPC cfg into new dtsi Beleswar Padhi
2025-08-23 16:08 ` [PATCH v2 24/33] arm64: dts: ti: k3-j721e-ti-ipc-firmware: " Beleswar Padhi
2025-08-23 16:08 ` [PATCH v2 25/33] arm64: dts: ti: k3-j721s2-ti-ipc-firmware: " Beleswar Padhi
2025-08-23 16:08 ` [PATCH v2 26/33] arm64: dts: ti: k3-j784s4-j742s2-ti-ipc-firmware-common: " Beleswar Padhi
2025-08-23 16:08 ` [PATCH v2 27/33] arm64: dts: ti: k3-j784s4-ti-ipc-firmware: " Beleswar Padhi
2025-08-23 16:08 ` [PATCH v2 28/33] arm64: dts: ti: k3-j722s-ti-ipc-firmware: " Beleswar Padhi
2025-08-23 16:08 ` [PATCH v2 29/33] arm64: dts: ti: k3-am62p-ti-ipc-firmware: " Beleswar Padhi
2025-08-23 16:08 ` [PATCH v2 30/33] arm64: dts: ti: k3-am62-ti-ipc-firmware: " Beleswar Padhi
2025-08-28 11:51   ` Wadim Egorov
2025-08-23 16:08 ` [PATCH v2 31/33] arm64: dts: ti: k3-am62a-ti-ipc-firmware: " Beleswar Padhi
2025-08-23 16:09 ` [PATCH v2 32/33] arm64: dts: ti: k3-am64-ti-ipc-firmware: " Beleswar Padhi
2025-08-28 11:52   ` Wadim Egorov
2025-08-23 16:09 ` [PATCH v2 33/33] arm64: dts: ti: k3-am65-ti-ipc-firmware: " Beleswar Padhi

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).