We have designed a system to use Android as our OS using the MCIMX6SLEVK as the reference platform. We have had Freescale review the schematic, and the board exhibits the following boot process, using the boot checklist:
The fuse map is correct, just like the EVK, we are using the three 8-bit tranceivers like the EVK to force the boot mode...plus the two BOOT_MODEx pins to a DIP switch.
The PMIC is good. All rails are good.
The clocks are good, both of them.
The fuses are read. POR_B works.
The SD card calibrates in 1-bit mode, low clock speed.
The SD card interface switches from low clock speed to high speed (meaning that the uP likes the SD card that it sees)
The SD card starts to flow data in 4-bit mode.
Processor is marked:
I took off the 32kHz crystal, which means that the part falls back to the internal ring oscillator to boot. Same result.
We got the Boot_Tester.exe -t mx6x -df test.inc
from FreeScale and that does start up. We get EVERYTHING that the example shows to come up on the console EXCEPT the menu! The boot rom has to be talking to the USB port, which means that it also did a large amount of code passing to get to the point where that would even work, then right before it would kick out its user menu screen, it dies. It probably did 20 very complicated things before that happened, so again, the part is alive, it is just not running. It stops on "Running BOOT DEBUG., Press "ESC" key to exit.." except that no further menu items are output, the menu from the example is never output.
Smells like memory to me, but at this time we have no idea where to find out what is not working! If we cannot get the Boot_Tester menu to come up, what does that mean? The docs do say that if the SD card boot fails that the BOOT ROM will look to the USB port next for communications, which we get it to at least start up.
What next, we are desperate!