Where are the dtsi device tree files for Ivy Carrier board?

I have an Ivy Plus carrier board with a Verdin imx8mp module. The second ethernet port is not coming up, so I am trying to investigate the device tree to see if there is some overlay missing or something. However I cannot figure out where to find the dtsi device tree files for this board.

I have visited device-trees/dts-arm64 at toradex_5.4-2.3.x-imx · toradex/device-trees · GitHub . However, after searching for “verdin” I only see dtsi files for the Dahlia, Yavia, and “Development Board” carrier boards. My carrier board is Ivy Plus. Which dtsi files belong to my board?

Meanwhile, I have another ticket already open to ask why Ethernet1 is not showing up in Torizon OS on this board by default. Can you please link me to the relevant dtsi file, and better yet, to the appropriate overlay for enabling Ethernet1?

Hi, I’m the Toradex AI Assistant.

I might make mistakes. Our support team will step in if needed. If I answered your question, please tick the “Solution” checkbox. For follow-up questions to me, please use @ToradexAI in your post.

Did you like my answer? :+1: :-1:


Hello!

Your question about the device tree source for the Ivy Plus carrier board with the Verdin iMX8M Plus is a good one. Currently, not all carrier boards have a separate .dtsi (device tree include) file named specifically for them in the official Toradex device tree repository. For the Ivy Plus carrier board, dedicated device tree fragments may not be available in the same way as they are for boards like the Dahlia or Yavia.

Which Device Tree Files Apply?

  • Base SOM support for the Verdin iMX8M Plus is handled in:
    • imx8mp-verdin.dtsi
  • Carrier board customization is mostly managed via overlay files.
  • Ivy Plus (and original Ivy) support is included through overlays, referenced in Torizon OS as verdin-imx8mp_carrier-board-ivy_overlay.dtbo or similar.

You can:

  1. View compatible overlays for different peripherals (including available Ethernet interfaces or carrier boards) in the official documentation:
    Device Tree Overlays for Peripherals and Add-on Products Provided by Toradex
  2. Ivy Carrier Board Compatibility Table – notes both Ethernet ports should be supported natively with the Verdin iMX8M Plus SOM.

About Ethernet1 Overlay

  • There is not a specific overlay listed in the documentation solely for Ethernet1 on Ivy. Both Ethernet ports should work out of the box with the compatible Verdin iMX8M Plus + Ivy (Plus) combination.
  • If Ethernet1 is not detected, this might point to a runtime or configuration issue rather than a missing overlay.
  • You can check which overlays are currently enabled via cat /proc/device-tree/chosen/overlays/ or similar methods from your running system.

Finding/Customizing Device Tree

  • For reference, the closest relevant files are in the toradex/device-trees GitHub dts-arm64 directory.
  • For carrier board-specific customizations, see if a verdin-imx8mp_carrier-board-ivy_overlay.dts exists (even if named just “ivy”, this covers both Ivy and Ivy Plus).
  • For general overlays, you can see a full list here.

Summary

  • Look for overlays related to Ivy/Ivy Plus, typically named as verdin-imx8mp_carrier-board-ivy_overlay.dts, rather than a board-specific .dtsi file.
  • Both Ethernet ports should function by default without user-added overlays.
  • If Ethernet1 is missing, investigate runtime issues (e.g., check dmesg, ip link, journalctl -b, or overlay application process).

If you need a general guide for troubleshooting why Ethernet1 does not appear, let me know!

Best regards,
Toradex AI Assistant.

References:

Can you please explain to me like I am an idiot where to find the dtbo files for this board.

There is no mention of Ethernet1 anywhere in my dmesg. It does not seem to exist as far as Torizon OS 7.3.0 is concerned.
Here is everything in my dmesg concerning the keyword “eth”. The only entries in there are for ethernet0 and “enu1”, which is a usb-to-ethernet dongle I have plugged in.

I am running a fresh installation of Torizon OS 7.3.0

torizon@verdin-imx8mp-15140174:/proc/device-tree/regulator-eth2phy$ journalctl -b | grep eth
Mar 05 15:13:30 verdin-imx8mp-15140174 kernel: psci: probing for conduit method from DT.
Mar 05 15:13:30 verdin-imx8mp-15140174 kernel: imx-dwmac 30bf0000.ethernet: IRQ eth_lpi not found
Mar 05 15:13:30 verdin-imx8mp-15140174 kernel: imx-dwmac 30bf0000.ethernet: User ID: 0x10, Synopsys ID: 0x51
Mar 05 15:13:30 verdin-imx8mp-15140174 kernel: imx-dwmac 30bf0000.ethernet: DWMAC4/5
Mar 05 15:13:30 verdin-imx8mp-15140174 kernel: imx-dwmac 30bf0000.ethernet: DMA HW capability register supported
Mar 05 15:13:30 verdin-imx8mp-15140174 kernel: imx-dwmac 30bf0000.ethernet: RX Checksum Offload Engine supported
Mar 05 15:13:30 verdin-imx8mp-15140174 kernel: imx-dwmac 30bf0000.ethernet: Wake-Up On Lan supported
Mar 05 15:13:30 verdin-imx8mp-15140174 kernel: imx-dwmac 30bf0000.ethernet: Enable RX Mitigation via HW Watchdog Timer
Mar 05 15:13:30 verdin-imx8mp-15140174 kernel: imx-dwmac 30bf0000.ethernet: Enabled L3L4 Flow TC (entries=8)
Mar 05 15:13:30 verdin-imx8mp-15140174 kernel: imx-dwmac 30bf0000.ethernet: Enabled RFS Flow TC (entries=10)
Mar 05 15:13:30 verdin-imx8mp-15140174 kernel: imx-dwmac 30bf0000.ethernet: Enabling HW TC (entries=256, max_off=256)
Mar 05 15:13:30 verdin-imx8mp-15140174 kernel: imx-dwmac 30bf0000.ethernet: Using 34/40 bits DMA host/device width
Mar 05 15:13:31 verdin-imx8mp-15140174 (udev-worker)[442]: eth0: Failed to get driver for ‘eth0’: Device or resource busy
Mar 05 15:13:32 verdin-imx8mp-15140174 kernel: imx-dwmac 30bf0000.ethernet ethernet0: renamed from eth0
Jun 26 22:39:54 verdin-imx8mp-15140174 kernel: imx-dwmac 30bf0000.ethernet ethernet0: Register MEM_TYPE_PAGE_POOL RxQ-0
Jun 26 22:39:54 verdin-imx8mp-15140174 kernel: imx-dwmac 30bf0000.ethernet ethernet0: Register MEM_TYPE_PAGE_POOL RxQ-1
Jun 26 22:39:54 verdin-imx8mp-15140174 kernel: imx-dwmac 30bf0000.ethernet ethernet0: Register MEM_TYPE_PAGE_POOL RxQ-2
Jun 26 22:39:54 verdin-imx8mp-15140174 kernel: imx-dwmac 30bf0000.ethernet ethernet0: Register MEM_TYPE_PAGE_POOL RxQ-3
Jun 26 22:39:54 verdin-imx8mp-15140174 kernel: imx-dwmac 30bf0000.ethernet ethernet0: Register MEM_TYPE_PAGE_POOL RxQ-4
Jun 26 22:39:54 verdin-imx8mp-15140174 kernel: imx-dwmac 30bf0000.ethernet ethernet0: PHY [stmmac-0:07] driver [Microchip KSZ9131 Gigabit PHY] (irq=43)
Jun 26 22:39:54 verdin-imx8mp-15140174 kernel: imx-dwmac 30bf0000.ethernet ethernet0: No Safety Features support found
Jun 26 22:39:54 verdin-imx8mp-15140174 kernel: imx-dwmac 30bf0000.ethernet ethernet0: IEEE 1588-2008 Advanced Timestamp supported
Jun 26 22:39:54 verdin-imx8mp-15140174 kernel: imx-dwmac 30bf0000.ethernet ethernet0: registered PTP clock
Jun 26 22:39:54 verdin-imx8mp-15140174 kernel: imx-dwmac 30bf0000.ethernet ethernet0: FPE workqueue start
Jun 26 22:39:54 verdin-imx8mp-15140174 kernel: imx-dwmac 30bf0000.ethernet ethernet0: configuring for phy/rgmii-id link mode
Jun 26 22:39:52 verdin-imx8mp-15140174 (udev-worker)[442]: ethernet0: Failed to get driver for ‘ethernet0’: Device or resource busy
Jun 26 22:39:52 verdin-imx8mp-15140174 NetworkManager[578]: [1750977592.9166] device (ethernet0): driver ‘(null)’ does not support carrier detection.
Jun 26 22:39:52 verdin-imx8mp-15140174 NetworkManager[578]: [1750977592.9177] device (ethernet0): driver ‘imx-dwmac’ does not support carrier detection.
Jun 26 22:39:52 verdin-imx8mp-15140174 NetworkManager[578]: [1750977592.9192] manager: (ethernet0): new Ethernet device (/org/freedesktop/NetworkManager/Devices/2)
Jun 26 22:39:52 verdin-imx8mp-15140174 NetworkManager[578]: [1750977592.9205] device (ethernet0): state change: unmanaged → unavailable (reason ‘managed’, sys-iface-state: ‘external’)
Jun 26 22:39:55 verdin-imx8mp-15140174 kernel: imx-dwmac 30bf0000.ethernet ethernet0: Link is Up - 1Gbps/Full - flow control rx/tx
Jun 26 22:39:55 verdin-imx8mp-15140174 kernel: r8152 3-1:1.0 eth0: v1.12.13
Jun 26 22:39:55 verdin-imx8mp-15140174 NetworkManager[578]: [1750977595.5928] device (ethernet0): carrier: link connected
Jun 26 22:39:55 verdin-imx8mp-15140174 avahi-daemon[561]: Joining mDNS multicast group on interface ethernet0.IPv6 with address fe80::8b91:7ed6:fc4a:3c37.
Jun 26 22:39:55 verdin-imx8mp-15140174 NetworkManager[578]: [1750977595.5941] device (ethernet0): state change: unavailable → disconnected (reason ‘carrier-changed’, sys-iface-state: ‘managed’)
Jun 26 22:39:55 verdin-imx8mp-15140174 avahi-daemon[561]: New relevant interface ethernet0.IPv6 for mDNS.
Jun 26 22:39:55 verdin-imx8mp-15140174 avahi-daemon[561]: Registering new address record for fe80::8b91:7ed6:fc4a:3c37 on ethernet0.*.
Jun 26 22:39:55 verdin-imx8mp-15140174 NetworkManager[578]: [1750977595.5981] device (ethernet0): Activation: starting connection ‘network0’ (958cc5e3-1bbf-3d64-beeb-020d4414e254)
Jun 26 22:39:55 verdin-imx8mp-15140174 NetworkManager[578]: [1750977595.5985] device (ethernet0): state change: disconnected → prepare (reason ‘none’, sys-iface-state: ‘managed’)
Jun 26 22:39:55 verdin-imx8mp-15140174 NetworkManager[578]: [1750977595.6004] device (ethernet0): state change: prepare → config (reason ‘none’, sys-iface-state: ‘managed’)
Jun 26 22:39:55 verdin-imx8mp-15140174 NetworkManager[578]: [1750977595.6034] device (ethernet0): state change: config → ip-config (reason ‘none’, sys-iface-state: ‘managed’)
Jun 26 22:39:55 verdin-imx8mp-15140174 NetworkManager[578]: [1750977595.6058] policy: set ‘network0’ (ethernet0) as default for IPv4 routing and DNS
Jun 26 22:39:55 verdin-imx8mp-15140174 NetworkManager[578]: [1750977595.6545] manager: (eth0): new Ethernet device (/org/freedesktop/NetworkManager/Devices/6)
Jun 26 22:39:55 verdin-imx8mp-15140174 kernel: usbcore: registered new interface driver cdc_ether
Jun 26 22:39:55 verdin-imx8mp-15140174 kernel: r8152 3-1:1.0 enu1: renamed from eth0
Jun 26 22:39:55 verdin-imx8mp-15140174 avahi-daemon[561]: Joining mDNS multicast group on interface ethernet0.IPv4 with address 192.168.1.20.
Jun 26 22:39:55 verdin-imx8mp-15140174 avahi-daemon[561]: New relevant interface ethernet0.IPv4 for mDNS.
Jun 26 22:39:55 verdin-imx8mp-15140174 avahi-daemon[561]: Registering new address record for 192.168.1.20 on ethernet0.IPv4.
Jun 26 22:39:55 verdin-imx8mp-15140174 NetworkManager[578]: [1750977595.7916] device (ethernet0): state change: ip-config → ip-check (reason ‘none’, sys-iface-state: ‘managed’)
Jun 26 22:39:55 verdin-imx8mp-15140174 NetworkManager[578]: [1750977595.7955] device (eth0): interface index 6 renamed iface from ‘eth0’ to ‘enu1’
Jun 26 22:39:55 verdin-imx8mp-15140174 NetworkManager[578]: [1750977595.7987] device (ethernet0): state change: ip-check → secondaries (reason ‘none’, sys-iface-state: ‘managed’)
Jun 26 22:39:55 verdin-imx8mp-15140174 NetworkManager[578]: [1750977595.7996] device (ethernet0): state change: secondaries → activated (reason ‘none’, sys-iface-state: ‘managed’)
Jun 26 22:39:55 verdin-imx8mp-15140174 NetworkManager[578]: [1750977595.8020] device (ethernet0): Activation: successful, device activated.
Jun 26 22:39:56 verdin-imx8mp-15140174 ModemManager[537]: [base-manager] couldn’t check support for device ‘/sys/devices/platform/soc@0/30800000.bus/30bf0000.ethernet’: not supported by any plugin
Jun 26 22:40:05 verdin-imx8mp-15140174 kernel: platform 30be0000.ethernet: deferred probe pending
Jun 26 23:07:52 verdin-imx8mp-15140174 NetworkManager[578]: [1750979272.4114] audit: op=“connection-activate” uuid=“78c31df4-8c89-31a6-9aeb-d5603e230e4e” name=“network1” result=“fail” reason=“No suitable device found for this connection (device ethernet0 not available because profile is not compatible with device (mismatching interface name)).”

Hi @jzylkin2

By default, this is not enabled.


There is - not yet - a readily available overlay for this.

For Torizon 7.3.0, the correct branch is toradex_6.6-2.2.x-imx
Check for imx8mp-verdin-ivy.dtsi.

https://git.toradex.com/cgit/linux-toradex.git/tree/arch/arm64/boot/dts/freescale?h=toradex_6.6-2.2.x-imx


This article has a great explanation about the hierarchy in the device tree includes.
It’s still missing the ivy, but the idea should be the same.


Small summary about each component.

File Extension Stands For Description Typical Usage
.dts Device Tree Source Main human-readable source file describing hardware layout in plain text. Developers write or edit this to describe a board’s hardware.
.dtsi Device Tree Source Include Include file to be reused in multiple .dts files. Used for common components. Stores shared definitions (e.g., SoC-level config used by multiple boards).
.dtb Device Tree Blob Binary version of a .dts, compiled using dtc. Used by the bootloader/kernel. Loaded by the bootloader to inform the kernel about hardware configuration.
.dtbo Device Tree Blob Overlay Overlay that modifies a base .dtb at runtime (e.g., to add peripherals). Used with tools like U-Boot or configfs to apply hardware overlays dynamically.

Additionally, you can check this thread.

Hi Allan,

Thank you – that thread is very helpful. I would have no idea how to get this working otherwise. At first I was a little stumped at the part of that thread where your team says to enable the CONFIG_DP83867_PHY kernel config option. I was not aware it was possible to set kernel configs using torizon core builder, so I did not know how to proceed with that part. Luckily, looking at my /proc/config.gz file I see this option is already enabled, so I will skip this step and simply try to enable the dtbo using torizoncore builder.

Thank you.