YAVIA + Verdin iMX8 Plus – Enter Recovery Mode Without PC

Hello,

I am currently using a YAVIA carrier board with Verdin iMX8 Plus modules.

I would like to know if there is a way to boot the module into recovery mode without requiring a PC connection.

I am setting up a flashing station where it won’t be possible to connect a computer directly to the board. For that reason, I am looking for an autonomous method to trigger recovery mode (for example via SD card boot, hardware configuration, or any other supported mechanism).

Could you please let me know what the recommended approach is in this situation?

Thank you in advance for your help.

Best regards,
Tewfik

Hi, I’m the Toradex AI Assistant.

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


Hello Tewfik,

Based on the Verdin iMX8M Plus recovery mode requirements, the module requires a PC/host connection to function properly in recovery mode. Let me explain the technical details:

Recovery Mode Requirements

The recovery mode (USB serial loader) is specifically designed to work with a host computer connection (1). When the module enters recovery mode, the USB_1 interface connects it to a host computer for downloading new software (1).

How Recovery Mode is Triggered

To enter recovery mode, the dedicated recovery pin (SODIMM pin 246, CTRL_RECOVERY_MICO#) needs to be pulled down with <1kΩ during the initial power on (cold boot) of the module (1). The CTRL_RECOVERY_MICO# function on SODIMM pin 246 is standardized in the Verdin module specifications (1).

Important Constraints

There are critical limitations that affect your autonomous flashing station concept:

  1. No bootable SD card: Make sure that there is no bootable SD card plugged into the slot, otherwise the module tries to boot from the external SD card instead of going into the USB serial loader (1).

  2. Host connection required: The recovery mode functionality is inherently designed around USB communication with a host computer for the software download process.

Alternative Approaches for Your Flashing Station

Since recovery mode requires PC connectivity, consider these alternatives for your flashing station:

  • Toradex Easy Installer: This can be pre-installed and accessed via network connection or local display interface
  • SD card flashing: Use bootable SD cards with your desired images
  • Network-based updates: Implement OTA (Over-The-Air) update mechanisms

The recovery mode’s design as a USB serial loader means it cannot operate autonomously without a host computer connection for the software download process.

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.

Hello @ToradexAI

Could you please provide more details about the SD card flashing method (using a bootable SD card with the desired image)?

For example, would it be possible to place a Toradex Easy Installer (Tezi) image on the SD card and have it automatically flash the module when powering up the YAVIA board?

In other words, can the system be configured to boot from the SD card and start the flashing process autonomously, without any user interaction or PC connection?

Thank you for your clarification.

Best regards,
Tewfik

Hello Tewfik,

Yes, absolutely! You can use SD card-based autonomous flashing for your production setup. Let me explain the different approaches available:

SD Card Boot with OS Images

You can boot directly from an SD card containing a Torizon OS or Reference Image as an alternative to Toradex Easy Installer (1). This approach might be useful for offline and/or isolated systems that have no other means of installing or upgrading their system (1).

SD Card Preparation Methods

There are two ways to prepare your SD card (1):

Method 1: Using Toradex Images

  1. Create two partitions: a FAT partition for kernel image and device trees, and an ext4 partition for the rootfs (1)
  2. Extract the downloaded Toradex image files to these partitions (1)

Method 2: Using wic Files
If you build your own images, you can use the wic images that can be directly burned to an SD card (1). These compressed images (named xxx.wic.gz) can be written directly using the dd utility (1).

Autonomous Flashing with Toradex Easy Installer

For your autonomous flashing station requirement, Toradex Easy Installer supports auto-installation (2). Here’s how it works:

Auto Installation Feature

To automatically install an image, the image can be marked as “auto install” using the autoinstall property in the image.json file (2). If that property is set to true, the image will be flashed to the module automatically and unattended (2).

Production Programming Setup

For production environments, you can use SD Card/USB Drive methods with bash scripts to flash images automatically (3). The system supports:

  • Automatic image detection: Toradex Easy Installer continuously monitors external devices and scans for images when new devices are detected (2)
  • Unattended operation: When an image is marked with ‘auto install,’ it will be necessary to delete the license file in the image.json to bypass the acceptance check (2)

Important Considerations

  • Boot order: Make sure your module is configured to boot from SD card first
  • Single auto-install image: It’s recommended to only use one local media with only one image having the autoinstall property set to true (2)
  • SD card reliability: Standard SD cards aren’t reliable for long-term use, so this approach is recommended for development/production setup phases (1)

Alternative: Network-Based Auto Installation

You can also set up auto-installation over Ethernet using Zeroconf announcement, which allows automatic installation from a local server without manual intervention (2).

This autonomous SD card flashing approach should work perfectly for your YAVIA-based flashing station setup without requiring PC connectivity.

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.

Hello @ToradexAI,

Thx for these informations.
I understand that autonomous flashing is possible using an SD card.

However, I would like to know if it is also possible to perform the flashing process directly from a USB flash drive instead of an SD card.

Can the Verdin iMX8 Plus boot from a USB device in a way that would allow Toradex Easy Installer (or another flashing mechanism) to run automatically at power-up?

Thank you for your clarification.

Best regards,

Tewfik

Hello Tewfik,

Yes, USB boot is technically possible on the Verdin iMX8M Plus, but there are important considerations and potential challenges for your autonomous flashing station.

USB Boot Capability

The Verdin iMX8M Plus does support booting from USB devices (1). However, USB boot functionality has some important limitations and requirements that you need to understand.

U-Boot Environment Configuration

For USB boot to work, the U-Boot environment needs to be properly configured. By default, many Toradex modules don’t include USB in their boot targets (1). The boot order is defined in the U-Boot environment as (1):

boot_targets=mmc1 mmc2 dhcp 
distro_bootcmd=for target in ${boot_targets}; do run bootcmd_${target}; done

(1)

To enable USB boot, you would need to add usb0 as a boot target and modify the environment to use distro_bootcmd instead of the default bootcmd=run bootcmd_mmc2 (1).

Known USB Boot Issues

There are documented USB compatibility issues in U-Boot that could affect your setup (2). Some USB devices may not be recognized properly during the boot process, with errors like “USB device not accepting new address” (2). This inconsistency could be problematic for a production flashing station where reliability is crucial.

Alternative Approach: USB Boot Configuration

Based on community discussions, you can configure the system to boot from USB with fallback to eMMC (1). The theoretical approach involves:

  1. Modifying the U-Boot environment file (u-boot-initial-env-sd) to include USB as a boot target (1)
  2. Setting the boot command to use distro_bootcmd so it searches through boot targets in order (1)
  3. Building a custom Torizon OS image using TorizonCore Builder with these modifications (1)

USB Boot Target Configuration

The USB boot target name in U-Boot should be usb0 (1). However, it’s important to note that USB is not included as a boot target by default starting from BSP 6 (1).

Compatibility Considerations

There’s a significant compatibility concern: the compatibility between the U-Boot version running on the eMMC and the image stored on the USB device must be ensured (1). This is crucial for reliable operation in your production environment.

Recommendation

While USB boot is technically possible, SD card boot is more reliable and better supported for autonomous flashing stations. The USB boot method requires more customization and has potential compatibility issues that could affect the reliability of your production setup.

If you still want to pursue USB boot, I recommend thorough testing with your specific USB devices and careful attention to U-Boot environment configuration and compatibility between versions.

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.