Recovery mode on Colibri iMX7, Viola carrier board

I seem to be unable to successfully get the Toradex Easy Installer to load via recovery mode. When I apply power with the recovery pads shorted, the board draws power (about 950 mW, compare to 800ish mW normally) and the Ethernet jack lights up, but there is no serial console text, nor does anything enumerate in dmesg on the host computer (connected via the micro USB port on the Viola carrier board), and the recovery-linux.sh script fails with “no matching USB device found”. When booting normally (pads not shorted) I see both boot text on serial, and an RNDIS device enumerated on the host USB. I have tried several different host laptops.

Does the Viola carrier board not support loading the Toradex Easy Installer in this manner? Is this documented anywhere?

Hi @campbell

It is possible to use the Viola carrier board in recovery mode. Can you please add the output of lsusb after you put the device in recovery mode? Do you see a device from Freescale Semiconductor?

Regards
Stefan

lsusb -t reports no difference at all between the not booted and recovery mode states. When the board is booted normally, I see two RNDIS devices:

Port 1: Dev 6, If 0, Class=Communications, Driver=rndis_host, 480M
Port 1: Dev 6, If 1, Class=CDC Data, Driver=rndis_host, 480M

But shouldn’t I also see SOMETHING on the serial debug port when the board is in recovery mode, regardless of any USB issues with the host?

When the module is in recovery mode, nothing is output to the serial debug port.
Could you try to use another USB cable?

I’ve tried two cables. I’ve also tried adding a usb2 hub between the host and the carrier board. lsusb sees the hub but not the board.

In the absence of this working, is it possible to load the Toradex Easy Installer via the uboot menu?

edit: Also tried it from windows, still no luck.

Yes, you may distro boot the Toradex Easy Installer just as outlined here after it has been extracted to the root of an SD card or USB memory stick. From a regular U-Boot this may be initiated as follows:

setenv fdtfile ${soc}-colibri-${fdt_board}.dtb && run distro_bootcmd

Thanks, this worked. Perhaps this should be the recommended way of initiating the easy installer, rather than recovery mode, since it requires neither tweezers nor a direct connection to a host?

I’m also still interested to hear any other things I should try in order to get recovery mode working.

You are very welcome.

At this point I really have no clue why the USB recovery mode should not be working but now I also remember an alternate way how to enter it from a running U-Boot:

go 0x4

Could you give that a try and if that is successful we may document those as well.

Yes, the “go 0x4” method does work, with everything else (same usb cable, same Linux host) that was not working with the pad shorting method.

One caveat though, in this configuration I have to start /usr/bin/tezi -qws manually via the serial console - it appears to come up at boot, but then exits immediately when I try to make a VNC connection to it. When loading it from the sd card, it behaves normally.

Hm, that is unusual. What VNC client did you use? Can you check /var/volatile/tezi.log when it crashes next time?