This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

AM335x not reliably booting from MMC0

Hi, 

We have a custom board and are having problems reliably booting from MMC0 with a 16GB sdcard. The sysboot[4:0] strapping is configured to 10111 (MMC0, SPI0, UART0, USB0). Most of the time it boots up fine. When it does not, it prints 'CCCCCCCC' on the UART line. Sometimes after ~4 minutes, it will boot up, or print another set of 'CCCCCCCC'. ~4 minutes after that at ~8 minutes, it will usually then boot up.

So, it looks like it's skipping over MMC0 and trying to boot from UART.

We have also noticed that some card brands boot up 100% (Lexar), some about 90% (Sandisk), some only 50% (PNY). We also have some off-brand cards that work ~75% of the time.

There are 10K pull-up resistors on the clk, cmd, and dat0:3 lines and I just added a series 22ohm resistor on the clk line, but it made no difference.

Any ideas on what to check next?

Thanks.

  • Do you see the same failure percentages across brands when attempting to boot the EVM? I've used a LOT of different SD cards over the years, many of them really cheap off-brand cards. However, I've never come across this sort of behavior. It might be useful to first determine there's nothing wrong with the cards themselves.

    How are you formatting the cards? Are you using the script that came with Processor SDK to format them correctly?

    Another option for debug might be to connect with JTAG and use the analysis script described here for deeper insight into what happened:

    processors.wiki.ti.com/.../AM335x_board_bringup_tips
  • No, this boot problem is unique to our board. The sd cards work fine in the EVM.

    Yes, I used the create-sdcard.sh script to make the cards.

    Unfortunately the board does not have a JTAG connector, so right now I am limited to probing with an oscope and so far I've not found any differences between when it does and does not boot.

    Thanks.

  • I would check the card cage. Do you see a response from the card during boot? It could be related to cage dimensions, etc. If for example you're not getting good contacts with the card itself then perhaps the card might not be "seen" sometimes.