Apalis iMX6 doesn't boot after flashing custom image

Hi all,
I tried to install a custom linux image on an Apalis iMX6q via “Toradex Easy Installer”.
The installation didn’t return any error, but after the required power off it is impossible to communicate with the module.
Neither the serial port nor the Ethernet give me a message.
I tried to connect via USB on port X29 but on my host PC I can see only an USB <> Serial adapter:

[107814.436748] usb 2-2.2: new full-speed USB device number 8 using uhci_hcd
[107814.685209] usb 2-2.2: New USB device found, idVendor=0403, idProduct=6001
[107814.685220] usb 2-2.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[107814.685223] usb 2-2.2: Product: FT232R USB UART
[107814.685226] usb 2-2.2: Manufacturer: FTDI
[107814.685228] usb 2-2.2: SerialNumber: AI03HOKJ
[107814.696678] ftdi_sio 2-2.2:1.0: FTDI USB Serial Device converter detected
[107814.696734] usb 2-2.2: Detected FT232RL
[107814.705132] usb 2-2.2: FTDI USB Serial Device converter now attached to ttyUSB0

Actually I don’t know how to reset the module.

Thanks in advance,
Regards.
Massimo

To restore the module you can use hardware mechanism described here - Downloads & Installers | Toradex Developer Center
and than flash a Toradex provided image.
Most likely you have an issue with an SPL at your custom image.

I tried but without a working serial/USB connection I can’t launch the recovery script.

config file <recovery\\\imx_usb.conf>
vid=0x15a2 pid=0x0054 file_name=mx6_usb_rom.conf
-> vid=0x1b67 pid=0x4fff file_name=mx6_usb_sdp_spl.conf
-> vid=0x1b67 pid=0x4000 file_name=mx6_usb_sdp_uboot.conf
vid=0x15a2 pid=0x0061 file_name=mx6_usb_rom.conf
-> vid=0x1b67 pid=0x4fff file_name=mx6_usb_sdp_spl.conf
-> vid=0x1b67 pid=0x4000 file_name=mx6_usb_sdp_uboot.conf
vid=0x15a2 pid=0x0076 file_name=mx7_usb_rom.conf
-> vid=0x1b67 pid=0x4000 file_name=mx7_usb_sdp_uboot.conf
vid=0x15a2 pid=0x0080 file_name=mx6ull_usb_rom.conf
-> vid=0x1b67 pid=0x4000 file_name=mx6ull_usb_sdp_uboot.conf
no matching USB device found
Press any key to continue . . .

I have another doubt: you talked about a SPL issue. I have to build my image with the file “no_spl” defconfig because otherwise I can’t generate the “u-boot.imx” file (I got an error during building).
Could it be the reason of the failure?

Did you shorten the pads before supplying power to Apalis module as described here - Downloads & Installers | Toradex Developer Center ?

Yes, but nothing changed

Did you connect both USB cables?
X29 and (X50 or X49)?

Apalis iMX6
Connect the Carrier Board USB OTG port to your Linux or Windows host machine

Apalis Evaluation Board

Connect X49 or X50 (USBO1_CL/USBO1)

Ixora Carrier Board

Connect X9 on the underside of the Carrier Board. Be sure to remove JP2 to be able to use X9 in OTG Client mode.

Hi Alex,
Yes I did.
I tried with X49, X28, X29 and all together…The module could not be found.

Massimo,
Toradex are doing a big mess with u-boot binary file names.
I spent days on this issue.
Do not use “no_spl” defconfig, use the standard one and eventually rename u-boot-img into u-boot.imx

Thanks koan. Are *.img and *.imx equals? Because I’m not sure. Anyway now the problem is that I cannot connect to the module

I’m not sure what exactly you are talking about but the build procedure is all very well explained in the following article on our developer website.

As I specified I cannot use OpenEmbedded, so far I cannot follow the guide.

Yes I did. I tried with X49, X28, X29 and all together…The module could not be found.

For the module to be found you will have to put it into recovery mode first as outlined in the Toradex Easy Installer article @alex.tx linked to.

I have another doubt: you talked about a SPL issue. I have to build my image with the file “no_spl” defconfig because otherwise I can’t generate the “u-boot.imx” file (I got an error during building). Could it be the reason of the failure?

As that doubt has nothing to do with your initial question could you please open a new question about it? Thanks!

Hi marcel.
As I said previously, I followed the instructions linked by @alex.tx.
I turned off the board, shorten the pins showed in the image and turned on again.
[upload|t8j4r5MitGYveNNToIXsNz4Qnps=]

This is how the evaluation board is connected to the PC:
[upload|OUA/1WZMLqcBeCCJg+vPc5rN8BU=]

And the COM list when the board is ON
[upload|jQ9mKDvzNJSTKTq1lUmvQrlIhJA=]

I run the “recovery-windows.bat” file and this is the result:
[upload|Yb5XsyAnL/83T0fJy/eSfFgp47g=]

Putty can’t see anything neither on COM1, nor on COM4. Never.
[upload|BAfoJ2y6qPEB/Jk9MTfDjBRAXBU=]

I asked about the SPL in order to provide more background information (as @alex.tx mentioned SPL issues in his first comment).

In general, of course, it would be the easiest if you have more than one set of modules and/or carrier boards which would allow to independently validate your setup. That said, let me try to go through your feedback step-by-step.

As I said previously, I followed the instructions linked by @alex.tx. I turned off the board, shorten the pins showed in the image and turned on again.

OK, very well.

This is how the evaluation board is connected to the PC:

That also looks valid. Just one note concerning the serial debug console being on the bottom X28 vs. X29. That is really determined by JP10 and JP12. So there would be no need to connect both.

And the COM list when the board is ON

That should actually always be the case and not have anything to do with whether or not the board is ON as the serial-to-USB chip on the board is fully powered via USB.

I run the “recovery-windows.bat” file and this is the result:

OK, that really looks like either your module never even entered the recovery mode or something with your USB device connection is not proper.

Putty can’t see anything neither on COM1, nor on COM4. Never.

You really won’t be able to see anything via the serial debug console while the i.MX 6 SoC is in recovery mode. The only thing that happens during recovery mode is that a USB device recovery mode connection should be established.

I asked about the SPL in order to provide more background information (as @alex.tx mentioned SPL issues in his first comment).

Sure, understood. However we really first need to get your module into recovery mode and detected as a recovery USB device. Unfortunately, I don’t know anything about Windows but on Linux an Apalis iMX6 module in recovery mode would be detected as follows:

[user@host ~]$ lsusb | grep -i free
Bus 001 Device 061: ID 15a2:0054 Freescale Semiconductor, Inc. i.MX 6Dual/6Quad SystemOnChip in RecoveryMode

As long as that is not happening no further steps may ever be successful.

Maybe what you are seeing is something along those lines.

Hi @marcel.tx
I moved both the jumpers JP10 and JP12 in position 2-3 in order to enable the X29 port.
This is what happen when I plug an USB cable into the X29 port on a CentOS VM.

The module is recognized as USB ↔ Serial interface, nothing more.
I think this is not the expected behavior, so far I cannot apply the flow control procedure you suggest.

Many thanks,
Massimo

X29 is for the serial console which connects to the FTDI. It won’t show as Freescale... device.

For recovery, you really need X49. I see that you use a USB 3.0 SuperSpeed cable, that should work, at least it did work for me. But maybe it is still a cable issue? It is not strictly necessary, you can use a USB 2.0 A to Micro-B. Can you try using such a cable?

I tried with another cable but it doesn’t work. The LED “#RESET_MOCI” is always RED.

The LED “#RESET_MOCI” should be red, so this is fine.

Make sure to short the pins, turn on power, hold the pins shorted for another 1-2 seconds, and then release.

It really should enumerate as USB HID device just fine, on Linux or Windows.

@stefan.tx, you WON the prize!
I had to shorten the pins even after the power on.

Many thanks to all of you!