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 MMC1 raw mode boot from high capacity eMMC

I have custom hardware, AM335x-based, with a 32GB eMMC (MTFC32GJDDQ-4M IT) on MMC1. Per Micron's datasheet that part is supposed to be JEDEC/MMC v4.41 compliant. The part is recognized and works fine from Linux, but I can't get the board to boot from the eMMC.

Using TI's Linux_Core_U-Boot_User_Guide, I have been able to wipe the data from the eMMC on a beaglebone, write new images from u-boot, and boot using raw mode. So I don't think the procedure or images I am using to attempt booting from the eMMC are broken. At this point I am wondering if the eMMC I am using is just somehow incompatible with the boot ROM.

Can anybody share a known bootable 32GB or other high capacity eMMC part number or give me some other advice?

  • Hi Andrew, what is your boot order? Can you dump the tracing vectors after a failed boot (hopefully you have JTAG access for this)? Tracing vectors are at address 0x4030CE40-0x4030CE4C

    Regards,
    James
  • James, thank you for the reply. My boot order is setup as follows, SYSBOOT[4:0] = 11100b. That should give me MMC1->MMC0->UART0->USB0 for the boot order. I do have a JTAG header on the board, but I don't have an emulator on hand. I will need to order one and get back to you concerning the trace dump.
  • OK, i think the emulator would be good to have to debug this. The best thing you can do right now is to simply check if MMC1 signals are toggling (clock, data0) just as a sanity check that the ROM is trying to do something. Also, not sure if you have a card cage, but you can also try to attempt to boot from MMC0 with an SD card.
    I don't think we have a lot of history with 32GB devices. But i want to eliminate other factors before blaming the device.

    regards,
    James
  • I did order an emulator, hopefully that will come in shortly. Once it arrives I am assuming the easiest way to grab the trace vectors is to use the am335x-boot.dss script (described in processors.wiki.ti.com/.../AM335x_board_bringup_tips)?

    I have been using an SD card on MMC0 to provide MLO and U-Boot and then swapping over to the eMMC for the kernel and rootfs. That has been working fine, but we would prefer to eliminate the need for an SD card to boot.

    I scoped mmc1_clk and mmc1_dat0 and the ROM is definitely trying to communicate with the eMMC. Both lines are consistently toggling after issuing a reset command through u-boot.
  • We had some initialization on another device overriding the SYSBOOT pins. Pretty obvious in retrospect, but I didn't see it initially. Currently the board is booting just fine off the MTFC32GJDDQ-4M IT.