Confusion on getting started with Torizoncore and pin multiplexing



I am new to the Torizon environment and my company has chosen Toradex verdin imx8mm WBIT for their product. I went through the getting started section and successfully deployed and ran container on SoC using the verdin development board, Now I wanted try out the pin multiplexing functionality and device overlays. For that purpose I followed some documentation on toradex website and while following that I read in per-requisite section that I need torizoncore without containers for overlays to work. (I am not that good with containers at the moment.) So I followed THIS article and successfully installed and ran torizon-core-docker-verdin-imx8mm-Tezi_5.7.0+build.17. In the mean while I went through the data sheet of my SoC and read the chapter 4 specifically 4.4.

(Apologies in advance if these make no sense but I am totally confused at the moment)

1- How to access GPIOs from my current installation of torizon-core-docker-verdin-imx8mm-Tezi_5.7.0+build.17. I tried to follow the This but the ** Libgpiod** library is not available and I dont kow how to install it at the moment. Can someone help me access the available gpios and use the gpios?

2- I was looking at the chapter 4.4 of This document. I am confused about the defualt configuration of the pins. If we look at the column Default Mode almost all the pins who have gpio as alternative option, have default mode as ALT5. I am confused that is it means that all these pins are configured as gpios by default and we only need to make a device overlay to change to some other alternate functionality. Can someone please explain the table in section 4.4 and the meaning of columns and the default function of the pins.

A sub issue related to this, I was looking at UART3_RXD and UART3_TXD and I was unable to find their definition in device tree. can someone guide me on this, to which gpio does it bind and in which device tree file?

3- Can someone please guide me to the documentation or give me some kind of flowchart to follow? as at the moment I am opening documents over documents and getting more confused.

4- Can someone explain if device tree customization and device overlays work on pre-built evaluation container?

5- How to chose the perfect type of torizon OS for my device.

6- Where should I start or What things I should read to start my development journey on toradex torizon.

Hey @Sarim!

Welcome! And we’ll clear up all the confusions (I think they are small confusions that just need a bit of clarifying).

Great! You have on your verdin IMX8MM our torizon operating system TorizonCore! Version 5.7.0. Following that article, you are using our tool TorizonCore Builder. This tool is the foundation for alternating aspects you need in the done in in the operating system (like applying overlays/modifiying device tree).

What might be confusing is there are primarily two ways users will interact with the operating system for customization. The first one as in the article is focused on Yocto/BSP. The other method that is common and what we recommend for your situation is using TorizonCore Builder. I would start here and see how it helps"

This answer is a bit of a combination of a few related topics. I’ll link a few articles I think will help. If you want to modify pins functionality, the general steps are to modify the device tree to reflect what you need, this is done either by directly modifying the current device tree or creating a device tree overlay. This is done with use of our tool TorizonCore Builder.

Device tree overlay information.

Modifying pins article.

  1. Lots and lots of good information here (its where i’m finding the articles above)

  1. Device Tree customization are for telling the operating system what hardware it has available and it’s functionality. This is required when the linux os boots. Pre-built evaluation containers are on top of the operating system in application space. While there is aspects of containers built into the operating system. These are really different things.
  1. Right now TorizonCore 6.1.0 is released as a production-grade release and is the lastest. But some of the documentation and tooling are a work-in-progress. So it might be better to stay with 5.7 as the documentation and tooling are well developed.

  2. Our developer website is amazing with lots of information.

This is quite a bit of information to get started. But I would just focus on one task you want at a time, if you run into difficulty post another question specific to that problem!



Hi Eric,
Really thankful for your detailed reply. It surely clear a lot of stuff. Specially the Yocto/BSP and TorizonCore Builder approach. I will go through all the documents you provided links to. Thanks for your prompt support.


Glad I could help! Happy to provide support.