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.

PROCESSOR-SDK-AM335X: eMMC programming

Part Number: PROCESSOR-SDK-AM335X

Hi TI,

  I have made a sdcard by the script of "create-sdcard.sh" in SDK "ti-processor-sdk-linux-am335x-evm-06.01.00.08".

But I don't how to flash eMMC by sdcard.

Are there some document about flashing eMMC by sdcard? or post ways directly as you know.

Thank you very much.

Best Regards

Jiawei

  • Jiawei,

    I'm not aware of a readily accessible document that walks through it step by step but there are several things you could do:

    1. Use U-Boot as your "eMMC flasher tool"
      1. Boot from SD card
      2. Interrupt boot process with key
      3. Use mmc read / mmc write commands to copy the SD card image into DDR, and then write it out to eMMC. You may need to do that in chunks in case the SD card image is larger than your available DDR.
      4. Remove SD card, change bootmode (if needed), and restart
    2. Use a simple dd-type Linux-based programming solution
      1. Create an SD card that you can use to boot your system (or use the image created with the SDK-provided SD card creation script), that also contains a binary disk image you want to program into the eMMC somewhere in the rootfs.
      2. Boot the SD card
      3. Use 'dd' to program/copy the disk image stored in a file in the rootfs on the SD card over to the eMMC
    3. Use a fully-custom Linux-based programming solution
      1. Create a custom "eMMC flasher Kernel" by baking a minimal rootfs directly into the Kernel (via initramfs). You can follow the steps how to turn the TI Linux SDK-provided "Arago Tiny Image" into such a Kernel image shown in this post: https://e2e.ti.com/support/processors/f/791/p/894702/3335775#3335775
      2. Boot into the "eMMC flasher Kernel" from SD card
      3. Either use commands to manually setup the eMMC partition table and populate boot partition and rootfs contents, or use a 'dd' to copy an SD card image you prepared directly from the SD card to the eMMC. You can get the commands you need to execute from the "flasher.sh" script included in the E2E post pointed out earlier.
    4. Use flashing scripts / concept from the BeagleBone Black community project (https://github.com/RobertCNelson/boot-scripts/tree/master/tools/eMMC)

    Also if all you want to do is to load & run the TI SDK-provided image from eMMC as-is, something based on option #3 might be the best solution, as the SDK doesn't provide the images in a format that can be copied via 'dd'. However #3 involves quite a few steps to get it going (will see how we can make this easier for our customers moving forward).

    Or, option #2, but you would need to create a dd-type disk image file based on SDK contents first that you can flash onto the eMMC, involving mounting a virtual MMC device on your host PC (via loopback devices), partitioning it, and populating boot/rootfs partitions. If you want to do that you should be able to find some resources via Google (I can help if needed).

    Regards, Andreas