lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<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

Powered by Openwall GNU/*/Linux Powered by OpenVZ