[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <2c3d31f0-e690-4e67-acfa-931fca47dfeb@phytec.de>
Date: Fri, 15 Aug 2025 08:49:22 +0300
From: Wadim Egorov <w.egorov@...tec.de>
To: Beleswar Padhi <b-padhi@...com>, nm@...com, vigneshr@...com,
kristo@...nel.org, robh@...nel.org, krzk+dt@...nel.org, conor+dt@...nel.org
Cc: afd@...com, u-kumar1@...com, hnagalla@...com, jm@...com,
devicetree@...r.kernel.org, linux-kernel@...r.kernel.org,
linux-arm-kernel@...ts.infradead.org, Robert Nelson
<robertcnelson@...il.com>, Jo_o Paulo Gon_alves
<joao.goncalves@...adex.com>, Parth Pancholi <parth.pancholi@...adex.com>,
Emanuele Ghidoli <emanuele.ghidoli@...adex.com>,
Francesco Dolcini <francesco.dolcini@...adex.com>,
Matthias Schiffer <matthias.schiffer@...tq-group.com>,
Logan Bristol <logan.bristol@...xas.edu>, Josua Mayer <josua@...id-run.com>,
John Ma <jma@...tec.com>, Nathan Morrisson <nmorrisson@...tec.com>,
Garrett Giordano <ggiordano@...tec.com>, Matt McKee <mmckee@...tec.com>,
Andrejs Cainikovs <andrejs.cainikovs@...adex.com>,
Max Krummenacher <max.krummenacher@...adex.com>,
Stefan Eichenberger <stefan.eichenberger@...adex.com>,
Hiago De Franco <hiago.franco@...adex.com>
Subject: Re: [PATCH 00/33] Refactor TI IPC DT configs into dtsi
Hi Beleswar,
On 8/15/25 1:38 AM, Beleswar Padhi wrote:
> 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.
I remember I asked myself the same question on how to represent the
relation between used FW and memory carveouts+others when adding our
first K3 board.
This change comes quite late so I am wondering if there is any other
motivation besides code reduction / more freedom for custom FW behind it?
>
> 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
> ~~~~~~~~
While it's a good idea to keep backward compatibility for older devices,
have you considered using overlays for new/upcoming devices?
Regards,
Wadim
>
> I am not sure if this renaming of files is ideal?
>
> 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@...il.com>
> Cc: Jo_o Paulo Gon_alves <joao.goncalves@...adex.com>
> Cc: Parth Pancholi <parth.pancholi@...adex.com>
> Cc: Emanuele Ghidoli <emanuele.ghidoli@...adex.com>
> Cc: Francesco Dolcini <francesco.dolcini@...adex.com>
> Cc: Matthias Schiffer <matthias.schiffer@...tq-group.com>
> Cc: Logan Bristol <logan.bristol@...xas.edu>
> Cc: Josua Mayer <josua@...id-run.com>
> Cc: John Ma <jma@...tec.com>
> Cc: Nathan Morrisson <nmorrisson@...tec.com>
> Cc: Garrett Giordano <ggiordano@...tec.com>
> Cc: Matt McKee <mmckee@...tec.com>
> Cc: Wadim Egorov <w.egorov@...tec.de>
> Cc: Andrejs Cainikovs <andrejs.cainikovs@...adex.com>
> Cc: Max Krummenacher <max.krummenacher@...adex.com>
> Cc: Stefan Eichenberger <stefan.eichenberger@...adex.com>
> Cc: Hiago De Franco <hiago.franco@...adex.com>
>
> Thanks,
> Beleswar
>
> Beleswar Padhi (33):
> arm64: dts: ti: k3-j7200: Enable remote processors at board level
> arm64: dts: ti: k3-j7200-ti-ipc-firmware: Refactor IPC cfg into new
> dtsi
> 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: Enable remote processors at board level
> arm64: dts: ti: k3-j721e-beagleboneai64: Add missing cfg for TI IPC FW
> arm64: dts: ti: k3-j721e-ti-ipc-firmware: Refactor IPC cfg into new
> dtsi
> arm64: dts: ti: k3-j721s2: Enable remote processors at board level
> arm64: dts: ti: k3-j721s2-ti-ipc-firmware: Refactor IPC cfg into new
> dtsi
> arm64: dts: ti: k3-j784s4-j742s2: Enable remote processors at board
> level
> 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-am62p-j722s: Enable remote processors at board
> level
> arm64: dts: ti: k3-j722s-ti-ipc-firmware: Refactor IPC cfg into new
> dtsi
> arm64: dts: ti: k3-am6*-boards: Add label to reserved-memory node
> arm64: dts: ti: k3-am62p-verdin: Add missing cfg for TI IPC Firmware
> arm64: dts: ti: k3-am62p-ti-ipc-firmware: Refactor IPC cfg into new
> dtsi
> 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-am62: Enable Mailbox nodes at the board level
> arm64: dts: ti: k3-am62: Enable remote processors at board level
> arm64: dts: ti: k3-am62-ti-ipc-firmware: Refactor IPC cfg into new
> dtsi
> arm64: dts: ti: k3-am62a: Enable Mailbox nodes at the board level
> arm64: dts: ti: k3-am62a: Enable remote processors at board level
> arm64: dts: ti: k3-am62a-ti-ipc-firmware: Refactor IPC cfg into new
> dtsi
> arm64: dts: ti: k3-am64: Enable remote processors at board level
> 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
> arm64: dts: ti: k3-am64-ti-ipc-firmware: Refactor IPC cfg into new
> dtsi
> arm64: dts: ti: k3-am65: Enable remote processors at board level
> arm64: dts: ti: k3-am65-ti-ipc-firmware: Refactor IPC cfg into new
> dtsi
> arm64: dts: ti: k3-j7*-ti-ipc-firmware: Switch MCU R5F cluster to
> Split-mode
>
> 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 | 131 +++++++
> .../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 | 289 ++++++++++++++
> 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 | 250 +++++++++++++
> 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 | 351 ++++++++++++++++++
> .../dts/ti/k3-j784s4-ti-ipc-firmware.dtsi | 34 ++
> 57 files changed, 1820 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
>
Powered by blists - more mailing lists