BACKGROUND:
We have an existing system (custom designed), that exhibits a bootup failure. The nature of the failure is that the processor appears to not recognize our boot device properly on first time power up, even though our BOOT_MODE and Configuration pins are set properly.
Some notes:
SOLUTION 1: Change from ANA_V2P5V to VSNVS for all boot config pullups (much earlier in sequence and away from strange ON-OFF-ON behavior as exhibited in the following figures)
(See Figure 1): ON-OFF-ON LDOs. Our Config Pins appear to pull up during this transition. Boot fails
(See Figure 2): Moved Config Pins to Much early in Boot (VSNVS) out of the ON-OFF-ON Area. Boots reliably
(See Figure 3): Capture showing that the VDDSOC/ARM_CAP ON-OFF-ON is internal, not a result of VDDSOC/ARM_IN.
Notes for Figures 1 - 3:
USB ACTIVITY: On Our failure boot-up case, we see USB_OTG doing something early BEFORE POR_B. eMMC never executes. If, with power still applied, you perform a second POR_B, then boot from eMMC always happens correctly
(See Figure 4): USB Activity before POR_B failure
(See Figure 5): Proper Boot with eMMC and USB activity as expected
Power-up rails/POR_B sequence:
(See Figure 6): Power-up sequence/POR_B
Fix #2 = We have found that reducing the capacitor on VDDSOC_CAP from 22uF to 10uF to 0uF seems to positively impact the boot (NOTE: A recent test showed one failure with a 10uF capacitor, so this is not seen as reliable). The VDDSOC_CAP signal appears to be the one that contributes to the issue (not VDDARM_CAP).We have tested with 22uF/10uF/0uF on the VDD
(See Figure 7 - VDDSOC_CAP with 22uF Cap Fails)
(See Figure 8 - VDDSOC_CAP with 10uF Cap normally boots, but has failed at least once)
(See Figure 9 - VDDSOC_CAP with 0uF Cap boots reliably)
NOTE: We are fully aware that the MAX capacitor value is 22uF including trace capacitance and have improved our design to be as close as mechanically possible to the _CAP pins. However, even with a 10uF + small trace length we are not booting reliably so we are not convinced this is all of the problem and do not feel this explains the strange on-off-on behavior.
Fix#3 = Burn eFUSES resolves intermittent boot
This will be done, but it does not solve our first time boot problem. And we also do not understand why the boot fuse method would not be effected in the same way as the config pins. We know Freescale recommends using the boot fuses in their documentation. We need to understand WHY this is more reliable.
Answers needed from Freescale:
Q1) What would cause the VDDSOC and VDDARM LDOs to exhibit the ON-OFF-ON at power-up? Is this a known issue or errata?
Q2) Is the ON-OFF-ON situation somehow causing the apparent early latching? And how do we mitigate it in such a way that we guarantee a reliable boot from the config pins?
Q3) Why does moving the config pins to a rail that powers up much earlier help the situation?
Q4) What is different about the latching of the configuration when using the eFUSES versus the pull-ups/pull-downs that it would not suffer the same problem?
In general, our goal is to fully understand the mechanism that is causing this boot failure inside the chip so that we can reliably implement our fix and KNOW that it is going to work.
Hello Igor?
Are we still getting your support on this?
Hello Shawn
seems these issues were never observed before and
expert answered all questions which he could.
I would suggest to work on this problem with local FAE, probably one
can arrange sending board to FSL for more investigation. One can
contact expert on link below
IMX6 Solo intermittent boot-up failures
Best regards
igor
I sent that to expert.
~igor
Hello Shawn
I posted your answer to expert.
Best regards
igor
Hi Shawn
I updated internal thread with your answer,
let's wait feedback from expert.
~igor
Hi Shawn
I did not received answer yet, meanwhile could you check :
1. pin ONOFF - if it is secure attached (it has internal weak pull-up)
and check signal on it by oscilloscope
2. attach battery to LICELL MMPF0100, so i.MX6S will have permanent
VDD_SNVS_IN (VSNVS_3V0) and check
3. can you confirm that before unsuccessful (first) power-up board event
board had fully discharged capacitors (there was period 5-10sec.of fully upowered
board state).
4. regarding "VDDSOC/ARM_CAP ON-OFF-ON" - could you check new EB814 ?
Though it is described for i.MX6DQ, LDO instability may occur on i.MX6S too,
since LDOs are the same on both processors.
~igor
Hi Shawn
only with help of local FAE, also you
can access (also please ask FAE help)
https://community.freescale.com/thread/340442
it is duplicated there.
~igor
Shawn,
Igor used Dan's original SR request number......so Dan Vona and I can both check on the SR Status. It will also be mirrored onto the community posting Igor noted above. But we have the ability to keep tabs on both to ensure this happens.
-Gordy
We will try JTAG probing and report results soon.
In failure case we see absolutely NO activity to eMMC, 1st and only activity is USB_OTG.
(If we assert/deassert POR_B a second time manually eMMC boot works correctly)
Last build was 17 out of 25 boards have this problem.
NOTE we had a similar high failure on early prototype boards about 6 months ago.
when you are saying "first time boot problem" - this means
boot from unpowered state, correct ? If this is so could you
recheck recommended capacitors values on *_CAP, NVCC_PLL_OUT
nodes given in latest Design Check List,
HW Design Checking List for i.Mx6DQSDL Rev2.8.xlsx
they were decreased (to 10uF) compared with Sabre schematic
We already included this information in webcase, see above:
(See Figure 7 - VDDSOC_CAP with 22uF Cap Fails)
(See Figure 8 - VDDSOC_CAP with 10uF Cap normally boots, but still fails at lower frequency)
(See Figure 9 - VDDSOC_CAP with 0uF Cap boots reliably on 2 out of 2 boards tried)
We have change all _CAP locations from 22uF to 10uf and double checked Freescale latest Design Guidelines, but this does not resolve boot-up failure issue.
0uF on VDDSOC_CAP does resolve issue on 2 out of 2 boards, BUT we do *not* accept 0uF as a resolution to the problem, This is a medical product, we need to understand root-cause of this failure and have 100% certainty in final resolution before production release.
how connected boot pins, what resistor values are used,
is smth else connected to EIM_DA8-15 pins (parallel NOR for example ?)
when you are saying :
"Change from ANA_V2P5V to VSNVS for all boot config pullups"
what pins do you mean by "all boot config pullups" , only BOOT_MODE0,1 ?
boot pins EIM_DA8-15 BOOT_CFG2[7:0] have power domain NVCC_EIM, they
are not latched correctly according to your SBMR1 reading
0x40000000 vs 0x40005062
could you check NVCC_EIM power rail by oscilloscope and signals
at these boot pins (EIM_DA8-15) as close to processor as possible.
Additionally please check processor 24MHz and 32 KHz clock - are they stable
and good shape ?
Also is some externally powered device can be connected to board when you
powers board first time ? May be board connected to PC with
UART or USB, HDMI monitor, SATA HDD, camera ? Could you
disconnect all and check ? If there is additional case "ground", remove it.