Easy Installer drives high some pins unexpectedly

Easy Installer is a tool that allows installing TEZI images on SoMs.

To do this, some hardware peripherals are necessary and are properly initialized (video, ethernet, USB, …).

We should consider that the SoM is mounted on a customer carrier board where a lot of hardware peripherals can be used and connected to physical hardware.

I’ve designed my carrier board so that all the “potentially dangerous” pins have proper pull-up or pull-down resistors so that they’re keep to a safe state during reset or when not explicitly driven.

But I’ve just found that Easy Installer drives high some pins unexpectedly (i.e., pins not related to a hardware peripheral needed by Easy Installer to work).

And I thinkl that this is not acceptable, because the official Easy Installer should not drive high hardware pins withotu any reason (maybe a dts or a recipe copied from somewhere).

This is the list of pins driven high for Verdin iMX8MP:

  • PIN 21=>GPIO4_IO28
  • PIN 141=> GPIO2_IO7
  • PIN 143=> GPIO2_IO6
  • PIN 252=>GPIO4_IO0
  • PIN 210=> GPIO_IO5
  • PIN 244=> GPIO4_IO19

Can you fix this and release a new Easy Installer, please?

Hi, I’m the Toradex AI Assistant.

I might make mistakes or occasionally get you wrong. Our support team will step in if needed.


I understand your concern about unexpected GPIO pin behavior during Easy Installer operation on your custom carrier board. This is indeed an important consideration for custom carrier board designs.

Based on the available documentation, you have a few options to address this issue:

Creating a Custom Easy Installer Image

You can modify the Toradex Easy Installer image to better suit your custom carrier board requirements(1). The process involves:

  1. Extract the existing Easy Installer image to examine and modify the device tree configuration
  2. Create custom device tree modifications to set appropriate pin states
  3. Repack the image with your modifications

The documentation shows that you can extract images using the dumpimage command and modify the device tree files to control pin behavior(1).

Pin Control and Multiplexing

According to the Verdin iMX8M Plus datasheet, each pin has configurable settings through the Pad Mux Register (IOMUXC_SW_MUX_CTL_PAD_x) and Pad Control Register (IOMUXC_SW_PAD_CTL_PAD_x)(2). These registers allow you to configure:

  • Pull-up/pull-down resistors (PE, PUE bits)
  • Drive strength (DSE bits)
  • Pin multiplexing (MUX_MODE bits)

The datasheet specifically mentions: “For most pins, the ALT5 multiplexing option is reserved for the GPIO function”(2).

Device Tree Overlay Approach

You can also create device tree overlays to override the default pin configurations(3). This approach allows you to:

  1. Define custom pin control nodes to set safe states for unused pins
  2. Apply overlays during boot to ensure proper pin initialization
  3. Use TorizonCore Builder to integrate your modifications

Recommended Solution

For your custom carrier board, I recommend:

  1. Create a custom Easy Installer image with modified device tree settings for your specific pin requirements
  2. Use the device tree overlay approach to explicitly configure the pins you mentioned to safe states
  3. Implement proper pin control settings in your device tree to ensure consistent behavior

The pin control registers allow you to set pull-up or pull-down resistors and control drive strength, which should address your safety concerns(2).

Since this involves modifying the Easy Installer for your specific custom carrier board design, you’ll need to create your own customized version rather than requesting changes to the official release, as the official Easy Installer is designed to work with standard Toradex carrier boards.

Best regards,
Toradex AI Assistant.


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

If I answered your question, please tick the “Solution” checkbox.

For follow-up questions to me, please use @ToradexAI in your post.