IMX6 Solo intermittent boot-up failures

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

IMX6 Solo intermittent boot-up failures

13,179 Views
dvona
Contributor II

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:

  1. When bootup fails, we notice immediate activity on USB.  We believe this indicates that the wrong boot source has been latched.  Our  system is designed to boot from an eMMC card, but it seems to move immediately to USB boot.
  2. With power on, executing a POR_B causes a proper boot every time.  SO we surmise the issue has to do with power sequencing or some other power on anomaly.

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

Figure 1 - LDO ON-OFF-ON 22uF Cap.GIF.gif

(See Figure 2): Moved Config Pins to Much early in Boot (VSNVS) out of the ON-OFF-ON Area.  Boots reliably

Figure 2 - Config Pins Moved to VSNVS.GIF.gif

(See Figure 3): Capture showing that the VDDSOC/ARM_CAP ON-OFF-ON is internal, not a result of VDDSOC/ARM_IN.

Figure 3 - Capture Showing the ON-OFF-ON is internal.GIF.gif

Notes for Figures 1 - 3:

  • Documentation implies the boot config is latched at rising edge of POR_B (i.MX6Dual/6Quad Applications Processor Reference Manual Rev 2, 06/2014)
  • Currently boot resistors are strapped to ANA_V2PV which is safely stable before POR_B rising edge
  • When we change config resistors to VSNVS rail (80ms earlier than ANA_2P5V) we boot reliably
  • This seems to behave as if the boot config is being read/latched at this unstable VDDSOC ON/OFF/ON area

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

Figure 4- USB Activity BEFORE POR_B Failure.GIF.gif

(See Figure 5): Proper Boot with eMMC and USB activity as expected

Figure 5 - Proper Boot with eMMC and USB as expected.GIF.gif

Power-up rails/POR_B sequence:

(See Figure 6): Power-up sequence/POR_B

Figure 6 - Power Up Sequence.GIF.gif

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)

Figure 7- VDDSOC_CAP ON-OFF-ON with 22uF.GIF.gif

(See Figure 8 - VDDSOC_CAP with 10uF Cap normally boots, but has failed at least once)

Figure 8 - VDDSOC_CAP ON-OFF-ON with 10uF.GIF.gif

(See Figure 9 - VDDSOC_CAP with 0uF Cap boots reliably)

Figure 9 - VDDSOC_CAP ON-OFF-ON with 0uF.GIF.gif

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.

Labels (2)
53 Replies

799 Views
sohara
Contributor I

Hello Igor?

Are we still getting your support on this?

0 Kudos

799 Views
igorpadykov
NXP Employee
NXP Employee

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

0 Kudos

798 Views
igorpadykov
NXP Employee
NXP Employee

I sent that to expert.

~igor

0 Kudos

798 Views
igorpadykov
NXP Employee
NXP Employee

Hello Shawn

I posted your answer to expert.

Best regards

igor

0 Kudos

798 Views
igorpadykov
NXP Employee
NXP Employee

Hi Shawn

I updated internal thread with your answer,

let's wait feedback from expert.

~igor

0 Kudos

798 Views
igorpadykov
NXP Employee
NXP Employee

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

0 Kudos

798 Views
igorpadykov
NXP Employee
NXP Employee

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

0 Kudos

798 Views
GordyCarlson
NXP Employee
NXP Employee

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

0 Kudos

830 Views
sohara
Contributor I

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.

0 Kudos

830 Views
igorpadykov
NXP Employee
NXP Employee

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

https://community.freescale.com/docs/DOC-93819

0 Kudos

830 Views
sohara
Contributor I

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.

0 Kudos

830 Views
igorpadykov
NXP Employee
NXP Employee

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.

0 Kudos