Re: [PATCH v1] arm64: dts: freescale: imx95-toradex-smarc: Support Cortex M7

From: Frank Li

Date: Tue Mar 03 2026 - 10:45:06 EST


On Tue, Mar 03, 2026 at 01:13:06PM +0100, Emanuele Ghidoli wrote:
> From: Emanuele Ghidoli <emanuele.ghidoli@xxxxxxxxxxx>
>
> Enable Cortex M7, the vring nodes, a mailbox and reserve DDR memory for
> the M7. The remoteproc framework is so capable to load and run the M7
> firmware.
>
> Signed-off-by: Emanuele Ghidoli <emanuele.ghidoli@xxxxxxxxxxx>
> ---
> .../dts/freescale/imx95-toradex-smarc.dtsi | 50 +++++++++++++++++++
> 1 file changed, 50 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/freescale/imx95-toradex-smarc.dtsi b/arch/arm64/boot/dts/freescale/imx95-toradex-smarc.dtsi
> index 5932ba238a8a..77c4a6dee098 100644
> --- a/arch/arm64/boot/dts/freescale/imx95-toradex-smarc.dtsi
> +++ b/arch/arm64/boot/dts/freescale/imx95-toradex-smarc.dtsi
> @@ -42,6 +42,16 @@ clk_serdes_eth_ref: clock-eth-ref {
> enable-gpios = <&som_gpio_expander_1 13 GPIO_ACTIVE_HIGH>;
> };
>
> + cm7: remoteproc-cm7 {
> + compatible = "fsl,imx95-cm7";
> + mbox-names = "tx", "rx", "rxdb";
> + mboxes = <&mu7 0 1
> + &mu7 1 1
> + &mu7 3 1>;
> + memory-region = <&vdevbuffer>, <&vdev0vring0>, <&vdev0vring1>,
> + <&vdev1vring0>, <&vdev1vring1>, <&rsc_table>, <&m7_reserved>;
> + };
> +
> connector {
> compatible = "gpio-usb-b-connector", "usb-b-connector";
> /* SMARC P64 - USB0_OTG_ID */
> @@ -156,6 +166,42 @@ linux_cma: linux,cma {
> alloc-ranges = <0 0x80000000 0 0x7f000000>;
> linux,cma-default;
> };
> +
> + m7_reserved: memory@80000000 {
> + reg = <0 0x80000000 0 0x1000000>;
> + no-map;
> + };
> +
> + rsc_table: memory@88220000 {

I remember driver use hardcode rsc-table, I suggest fan pan to update
driver to support memory-region-names to avoid use hidden ABI.

Fan peng, what's current status?

Frank

> + reg = <0 0x88220000 0 0x1000>;
> + no-map;
> + };
> +
> + vdev0vring0: memory@88000000 {
> + reg = <0 0x88000000 0 0x8000>;
> + no-map;
> + };
> +
> + vdev0vring1: memory@88008000 {
> + reg = <0 0x88008000 0 0x8000>;
> + no-map;
> + };
> +
> + vdev1vring0: memory@88010000 {
> + reg = <0 0x88010000 0 0x8000>;
> + no-map;
> + };
> +
> + vdev1vring1: memory@88018000 {
> + reg = <0 0x88018000 0 0x8000>;
> + no-map;
> + };
> +
> + vdevbuffer: memory@88020000 {
> + compatible = "shared-dma-pool";
> + reg = <0 0x88020000 0 0x100000>;
> + no-map;
> + };
> };
> };
>
> @@ -572,6 +618,10 @@ &lpuart3 {
> pinctrl-0 = <&pinctrl_uart3>;
> };
>
> +&mu7 {
> + status = "okay";
> +};
> +
> /* SMARC MDIO, shared between all ethernet ports */
> &netc_emdio {
> pinctrl-names = "default";
> --
> 2.43.0
>