We created a custom board with a Micron eMMC; however, we are having trouble communicating with the eMMC. We have loaded u-boot via jtag; however, the eMMC never seems to respond to command 0 and u-boot hangs when trying to communicate with the device. On SDHC2 we have an SD card connected and it never hangs when communicating with SD2. Is this eMMC incompatible with the i.mx6?
We wired an SDCard to SD2 on our board. We also changed the boot strap resistors to boot from SD2. When I did this, we can boot the board from SD2 and we can talk to the eMMC on SD4. I have a feeling that errata ERR007926 bit us. We are getting the latest processor put on the board and I will post an answer to this after we solve it.
Hi Ken
recommended to check schematic (attached Sabre SD schematic,
eMMC on p.5) and eMMC signals with oscilloscope.
Linux Guide sect.4.4.1.2 Using eMMC4.4 on SDHC4 shows how to
work with eMMC.
Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
Above is the schematic for our design with this chip. Here is what we have previously tried.
We are using u-boot-2015-10
I load u-boot via jtag. Then u-boot hangs waiting for register uSDHCx_INT_STATUS bit CTOE or bit CC to be set. It is never set. When I look at the clock it is running at around 370kHz. The CMD line is stuck low. Any ideas would be greatly appreciated.
suggest to check if SION bit is set for i.MX6 uSDHC pads.
~igor
The SION bit is set for the CMD line. For all of the others it is cleared. Below is a list of all of the registers and their values, right before the USDHC4 hangs.
020e0338: 0x00000000
020e033c: 0x00000010
020e0340: 0x00000001
020e0344: 0x00000001
020e0348: 0x00000001
020e034c: 0x00000001
020e0350: 0x00000001
020e0354: 0x00000001
020e0358: 0x00000001
020e035c: 0x00000001
020e0720: 0x00017059
020e0724: 0x00017059
020e0728: 0x00017059
020e072c: 0x00017059
020e0730: 0x00017059
020e0734: 0x00017059
020e0738: 0x00017059
020e073c: 0x00017059
020e0740: 0x00017059
020e0744: 0x00017059
probably it makes sense to test it with bare metal SDK, you can request
it from : Re: Where is the i.MX6 Platform SDK?
Should it be set or cleared?
I have the exact same device on a custom imx6s board as well and it works fine. What happens in linux when you boot from the SD, is it detected? 100% sure the config in both linux and u-boot is set correctly?
What is the part number on your imx6S?
Currently we use the MCIMX6S5EVM10ACR. Also used the B version previously.
Our current board is the B part. I have switched booting from eMMC to booting from SPI-NOR. Then I finish booting from MMC. u-boot-spl goes in the SPI NOR. And the rest of u-boot goes in the eMMC along with the kernel. I am 99% confident that revision 1.3 of the chip will solve the eMMC boot; however, it can't just be the C part, it has to be the C part with a particular mask. Ordering that part has been a problem. I am not sure how we will get that part. I would like to cut the SPI-NOR out of the BOM.