We are using a Boundary Devices Nit6D_SOM in our current project running the QNX IPL. The i.MX6 on this SOM has an internal register called uSDHCx_SYS_CTRL used to control its internal SDMMC peripheral. Very early on in the IPL, the SW attempts to reset the SDMMC controller by setting the RSTA bit in the uSDHCx_SYS_CTRL register. The SW then waits for the RSTA bit to clear before proceeding. On different SOMs, we see the RSTA bit never resetting back to 0 about 5-20% of the time, causing the IPL to hang. There is a related errata associated with the i.MX51 (ENGcm10407) which suggests disabling the SD Card Clock before attempting to reset the SDMMC, but this has not resolved our problem. Has anyone else seen this behavior on the i.MX6?
Hi David
problem may be caused by signal integrity issues (as mentioned in ENGcm10407)
which could put SD/eMMC to undefined state, due to inaccurate board layout.
For layout rules one can check sect.3.5.8 High speed signal routing recommendations
i.MX6 System Development User’s Guide
http://cache.freescale.com/files/32bit/doc/user_guide/IMX6DQ6SDLHDG.pdf
Also necessary to verify that all SD/eMMC operations are completed before setting RSTA bit.
As Boundary Devices Nit6D_SOM and QNX IPL is not supported by nxp,
may be recommended to reproduce issue on nxp sabre sd reference board with bsps from
i.MX 6 Series Software and Development Tool|NXP
Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------