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.

[TDA4EVM]eMMC Boot



Hi,

I would to know how to use eMMC as Boot Media.

I had refered form

1.

https://e2e.ti.com/support/processors/f/791/t/752127?Linux-TMDX654GPEVM-boot-to-emmc and

http://software-dl.ti.com/processor-sdk-linux/esd/docs/latest/linux/Foundational_Components_U-Boot.html?highlight=emmc

3.1.1.6.4. Updating an SD card or eMMC with RAW writes

2.

The default boot env setting from TDA4EVM prebuilt-images

=> printenv dfu_alt_info_emmc
dfu_alt_info_emmc=
rawemmc raw 0 0x800000 mmcpart 1;
rootfs part 0 1 mmcpart 0;
tiboot3.bin.raw raw 0x0 0x400 mmcpart 1;
tispl.bin.raw raw 0x400 0x1000 mmcpart 1;
u-boot.img.raw raw 0x1400 0x2000 mmcpart 1;
u-env.raw raw 0x3400 0x100 mmcpart 1;
sysfw.itb.raw raw 0x3600 0x800 mmcpart 1

I tried flash eMMC via USB by Raw in u-Boot@MMCSD bootmode, 

mmc dev 0 1
fatload mmc 1 ${loadaddr} tiboot3.bin
mmc write ${loadaddr} 0x0 0x400
fatload mmc 1 ${loadaddr} tispl.bin
mmc write ${loadaddr} 0x400 0x1000
fatload mmc 1 ${loadaddr} u-boot.img
mmc write ${loadaddr} 0x1400 0x2800

mmc partconf 0 1 1 1
mmc bootbus 0 2 0 0

Finally, to change the bootmode switches on the evm, and power off/on.

SW8 = 1 0 0 0 0 0 0 0

SW9 = 0 0 0 1 0 0 0 0

But boot fail form ROM.

What mistakes in my operation?

Br,

KS,

  • Hi, 

    I had continued to try the steps that described in How_to_flash_emmc_device.html

    Copy all images form MMCSD to EMMC. The result was still fail.

    And then, If I also change the bootmode switches as

    SW8 = 1 1 0 1 0 0 0 0 0

    SW9 = 0 0 0 1 0 0 0 0

    It's boot successul form eMMC.

    But I don't know whitch one is the correct solution.

    Please provide the right method to me,

    Thanks!

    Br, 

    Ks,

  • Hi Ks,

    do you use ti-processor-sdk-linux-automotive-j7-evm-06_01_00_05 version of the SDK? Can you check if the instructions in ti-processor-sdk-linux-automotive-j7-evm-06_01_00_05/docs/linux/Foundational_Components_U-Boot.html#sd-emmc-or-usb-storage can help you?

    Note that if you use previous version of the SDK (6.00) the emmc boot is not supported.

    regards,

    Yordan

  • Hi, 

    Yes, I use  ti-processor-sdk-linux-automotive-j7-evm-06_01_00_05 version of the SDK.

    I had check the instruction in Foundational_Components_U-Boot.html#sd-emmc-or-usb-storage

    3.1.1.6.1. Partitioning eMMC from U-Boot

    => printenv partitions
    partitions=uuid_disk=${uuid_gpt_disk};name=rootfs,start=0,size=-,uuid=${uuid_gpt_rootfs}
    => setenv uuid_gpt_disk 0c4bad4c-fb75-4973-82e9-0bbc1b5bed6e
    => setenv uuid_gpt_rootfs c242f386-a83d-4ffa-9648-e008132f06de
    => gpt write mmc 0 ${partitions}
    Writing GPT: success!
    => mmc part

    Partition Map for MMC device 0 -- Partition Type: EFI

    Part Start LBA End LBA Name
    Attributes
    Type GUID
    Partition GUID
    1 0x00000022 0x01da3fde "rootfs"
    attrs: 0x0000000000000000
    type: ebd0a0a2-b9e5-4433-87c0-68b6b72699c7
    guid: c242f386-a83d-4ffa-9648-e008132f06de
    =>

    3.1.1.6.7. Booting tiboot3.bin, tispl.bin and u-boot.img from eMMC boot partition

    Write images by RAW.

    => mmc dev 0 1
    switch to partitions #1, OK
    mmc0(part 1) is current device
    => fatload mmc 1 ${loadaddr} tiboot3.bin
    232128 bytes read in 11 ms (20.1 MiB/s)
    => mmc write ${loadaddr} 0x0 0x400

    MMC write: dev # 0, block # 0, count 1024 ... 1024 blocks written: OK
    => fatload mmc 1 ${loadaddr} tispl.bin
    633816 bytes read in 30 ms (20.1 MiB/s)
    => mmc write ${loadaddr} 0x400 0x1000

    MMC write: dev # 0, block # 1024, count 4096 ... 4096 blocks written: OK
    => fatload mmc 1 ${loadaddr} u-boot.img
    1011108 bytes read in 46 ms (21 MiB/s)
    => mmc write ${loadaddr} 0x1400 0x2000

    MMC write: dev # 0, block # 5120, count 8192 ... 8192 blocks written: OK
    => fatload mmc 1 ${loadaddr} sysfw.itb
    267598 bytes read in 15 ms (17 MiB/s)
    => mmc write ${loadaddr} 0x3600 0x800

    MMC write: dev # 0, block # 13824, count 2048 ... 2048 blocks written: OK
    => mmc partconf 0 1 1 1
    => mmc bootbus 0 2 0 0
    =>

    This is RAW mode!

    Because I copied all form MMCSD to eMMC(FS mode), it can boot successfully.

    So, I suppose I could have two methods FS Mode (OK) and RAW mode(Fail now).

    I would like to use RAW mode,

    How can I change to RAW mode?

    Br,

     

  • Hi,

    Can you confirm you executed all commands as mentioned in section 3.1.1.6.7?
    Did you run the below commands as well?

    => mmc partconf 0 1 1 1
    => mmc bootbus 0 2 0 0


    Could you try below DIP switch?

    SW8 - 10000000
    SW9 - 01000000


    Regards,
    Vishal

  • Hi,

    Any update after previous comments?

    Regards,
    Vishal

  • Hi,

    I haven't heard back from you, I'm assuming you were able to resolve your issue.
    If not, just post a reply below (or create a new thread if the thread has locked due to time-out).

    Regards,
    Vishal

  • sw8:  10000000

    sw9:  00000000

    success boot from emmc, but:

    root@j7-evm:/opt/vision_apps# . ./vision_apps_init.sh 
    root@j7-evm:/opt/vision_apps# APP_LOG: Mapping 0xac000000 ...
    APP_LOG: Mapped 0xac000000 -> (nil) of size 262144 bytes 
    APP_LOG: ERROR: Unable to map memory @ 0xac000000 of size 262144 bytes !!!
    

     

  • This is a different issue, please open a new thread for other questions.