I’m using a modified version of BSP 2.8 on a Colibri iMX6S. I need to update the device tree to support a new version of our hardware, so I made the changes to the device tree, rebuilt it, and reflashed the module from an SD card with the new .dtb. After flashing the module, it fails to boot. When I cycle the power on the evaluation board, the following messages are printed to the serial console:
Industrial temperature grade DDR3 timings, 32bit bus width.
Trying to boot from MMC1
Industrial temperature grade DDR3 timings, 32bit bus width.
In the past, I’ve been able to use recovery mode when I’ve done something that causes the module to not boot. I performed the following steps to try to enter recovery mode:
- Power off the evaluation board
- Remove the SD card
- Short the indicated pins with a pair of tweezers
- Power on the board
- Wait six seconds
- Remove the tweezers
However, when I perform these steps, I still get the same output on the serial console, and lsusb
does not report any devices with a VID of 15a2. I tried the exact same steps with another module that I have, a Colibri iMX6DL 512MB IT V1.0B, and I was able to enter recovery mode:
$> lsusb
Bus 002 Device 003: ID 0bda:0307 Realtek Semiconductor Corp. Card Reader
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 029: ID 15a2:0061 Freescale Semiconductor, Inc. i.MX 6Solo/6DualLite SystemOnChip in RecoveryMode
Bus 001 Device 002: ID 80ee:0021 VirtualBox USB Tablet
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
$> sudo ./update.sh -d
Colibri iMX6 rootfs detected
...
What else can I do to put the iMX6S into recovery mode? The datasheet mentions a JTAG interface in section 5.28, but it doesn’t mention if it can be used to reload the firmware or to force the module into recovery mode.