AnsweredAssumed Answered

imx6 Board Hangs suddenly

Question asked by Sankarraj saravanan on Aug 24, 2018
Latest reply on Aug 24, 2018 by igorpadykov

We have this issue on few of the built boards. Most of the boards are working fine.

 

Hardware details:

Imx6q.

The EHCI host controller is connected to USB hub – SMSC 2514. In which, an USB to serial controller is connected (EXAR XR21V1414IM48).

 

Linux kernel version: 4.9.88

U-Boot version: 2014.04 v7

 

We have done the DDR calibration and those values are put into the U-Boot. We used the U-Boot method, as mentioned in the link https://community.nxp.com/docs/DOC-105652 for DDR calibration.

 

We have ran the DDR calibration on different boards, the results are shown below.

MMDC_MPWLDECTRL0 (ch0)

0x00150013

0x0025001F

0x00150017

0x00180018

0x002E0030

0x0022001F

0x00190021

0x001C001B

0x00190017

0x0019001B

0x00170017

MMDC_MPWLDECTRL1 (ch0)

0x001D0018

0x002A0023

0x0021001A

0x0022001D

0x00300030

0x002B0028

0x00230019

0x0028001C

0x0023001E

0x0021001B

0x0026001F

MMDC_MPWLDECTRL0 (ch1)

0x00070019

0x0013001F

0x000E001C

0x00120021

0x000A001A

0x0015002A

0x00180027

0x000E0018

0x000C001D

0x00170027

0x000D001D

MMDC_MPWLDECTRL1 (ch1)

0x000A0019

0x00110026

0x0007001A

0x0007001C

0x00050012

0x001D001F

0x00110025

0x00040015

0x00000018

0x00140024

0x00000015

MPDGCTRL0 PHY0

0x431C0334

0x43200338

0x43240330

0x4324033C

0x43440358

0x457C060C

0x432C0344

0x43280334

0x43280338

0x432C033C

0x43300344

MPDGCTRL1 PHY0

0x031C0310

0x03200318

0x031C0310

0x031C0314

0x033C0334

0x06140618

0x032C031C

0x0328031C

0x03240318

0x03240318

0x03280318

MPDGCTRL0 PHY1

0x43280334

0x43200334

0x43200334

0x43200330

0x43340344

0x46380644

0x43280338

0x43200334

0x43200330

0x43280344

0x432C0338

MPDGCTRL1 PHY1

0x03280270

0x0328026C

0x031C0260

0x031C0264

0x03300270

0x057C054C

0x0328026C

0x0320026C

0x031C0268

0x03300270

0x03200264

MPRDDLCTL PHY0

0x463C3C3E

0x463A3E3E

0x483A3C3E

0x4E3E4042

0x4A404246

0x463E3A3A

0x4E3A3E42

0x4E3C3E40

0x4A3A3E3E

0x4A3A3C42

0x4A3A3E42

MPRDDLCTL PHY1

0x46463C4A

0x46463C4E

0x403E3A4C

0x403A384A

0x423E3C48

0x443A3C48

0x443E3648

0x42423A46

0x42443E4A

0x48443E4E

0x3E3E3A48

MPWRDLCTL PHY0

0x363A3C3A

0x363C3E3E

0x383C4040

0x363A3E3A

0x343E3E3C

0x3A3A403E

0x383E443E

0x343E423A

0x323C403C

0x363E3E3C

0x3A3E403C

MPWRDLCTL PHY1

0x48344A3A

0x46344A3E

0x4438483E

0x44324838

0x44364638

0x463C5042

0x4432443C

0x4234463C

0x463A4A40

0x42344A3E

0x4436483A

 

 

Test application being ran:

A test application is being run, this will write some data (12 bytes) continuously onto the USB to serial port.

 

The issue is on few boards, the system just hung (no output in the console). On few boards, there is some kernel panic/crash messages. These messages are not consistent, we get randomly.

 

Also, the issue reproducing time on a particular board varies from 5 mins to 3 hours.

 

We have tried disabling the DDR self-refresh, MMDCx_MDMISC Bit 16 (WALAT) is SET to 1, as posted in other threads and changing the kernel configuration to CONFIG_PREEMPT_VOLUNTARY, we see improvements. But, these stuffs  doesn’t fix the issue.

 

Our question:

  1. Is there any known issues similar to this?
  2. Any patches are available that can be tried?
  3. Based on the provided table, what is the best DDR configuration to be used, to eliminate DDR issues?

Outcomes