I have some units have boot failure on the custom board. (about 5~7% failure out of 200 units).
I'd like know if anyone else saw the similar problem below.
The custom board has been designed with
- i.MX6 solo (MCIMX6S5DVM10AB)
- PMIC (MMPF0100F0EP)
- MAX8903CETI+ (system power + charging IC)
- DDR3 (4Gbit x 4)
- eMMC (8GByte)
- microSD card
Boot configuration settings are;
BOOT_CFG1[7:0] = 0x60 (eMMC boot)
BOOT_CFG2[7:0] = 0x58 (SD4, 8bit)
BOOT_CFG3[7:0] = 0x00
BOOT_CFG4[7:0] = 0x00
a. Blank eMMC
When I supply 5V to the board, the current consumption stays around 170mA. Nothing happened as there is no code in eMMC.
b. After download the code into eMMC,
The current drain is changed dynamically upto 550mA, and then stabilized at 230mA.
a. Blank eMMC
When I supply 5V to the board, the current consumption stays around 60mA.
b. After download the code into eMMC (I need some trick to download the code into eMMC),
The current drain stuck at 60mA. Nothing happened.
I checked all clock is running properly, and the power supply from the PMIC is within proper range.
The only way to exit the failure mode is the short pulse on hard-reset signal. (working properly with < 60ms reset , failed agin with > 80ms reset).
*. During design the custom board, I connected a pull-up to EIM_EB3 (BOOT_CFG4) then I saw same symptom. (stuck at 60mA since BOOT_CFG4 = 1 enables infinite loop at start of boot ROM). I already isolated this issue.
** I also tried another boot configuration (boot from microSD card), but same result on the failure units.
*** VDD_ARM_CAP (i.MX6 internal LDO output) is not changed on the failure units while it is change to 1.2V on the good units. (waveform attached). Do you know who will change this LDO output? Is it internal BOOT ROM?
**** As you see above, failure mode is not related with custom code. It seems i.MX6 internal Boot ROM is not running properly with unknown reason.
I would appreciate if you'd share your experience how to debug this issue.