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.

TDA4VM: r5f mcu 1_0 files location

Part Number: TDA4VM

Hi,

Now I use TDA4VM EVM board and it boot from eMMC.All the core files,including R5F,C6X,C7X and A72,are located in eMMC.As for functional safety,R5F mcu 1_0 runs in lock_step.And I think mcu 1_0 files should be located in spi flash rather than unstable eMMC.So I want to know the way to put the mcu 1_0 files in OSPI and other core files in eMMC when booting from eMMC.

Regards!

HJ

  • Hi HJ,

    The boot flow is R5 SPL (runs on MCU1_0) -> A72 SPL (runs on MPU1_0) -> A72 U-boot (runs on MPU1_0) -> Kernel (Runs on MPU1_0)

    There is provision to load firmwares from all these stages with certain limitations (see https://e2e.ti.com/support/processors/f/791/t/915474 for more details)

    In general the flow is that MCU1_0 and MCU2_0 firmwares are loaded by R5 SPL and the rest by A72 u-boot. The default R5 SPL right now has ability to load firmwares from SD card and with some modifications from eMMC UDA partition. So loading a firmware from R5 SPL on to MCU1_0 is not possible for now.

    So moving to u-boot, you can load firmwares from OSPI as well as eMMC from the u-boot. The idea is that u-boot loads the firmware from the intended media and to the RAM and then using remote proc we load the firmware from RAM to the intended core.

    Following the above I believe you can use the u-boot to load firmwares from OSPI Flash on to MCU1_0 and load the firmwares from the eMMC on to the other core.

    I will post the detailed instructions shortly.

    Hope this helps.

    Regards,

    Karan

  • Hi HJ,

    Loading firmware from eMMC from OSPI: https://e2e.ti.com/support/processors/f/791/p/941650/3489991#3489991 

    Loading firmware from eMMC from u-boot: Change the mmc port and partition in the section http://software-dl.ti.com/jacinto7/esd/processor-sdk-linux-jacinto7/latest/exports/docs/linux/Foundational_Components_U-Boot.html#loading . mmc 1:2 means the mmc device is 1 and partition is 2. In case you eMMC has only 1 user partition then the commands will be something like below: (mmc dev is 0 and partition is 1)

    => load mmc 0:1 0x89000000 /lib/firmware/j7-mcu-r5f0_1-fw
    2725696 bytes read in 11 ms (236.3 MiB/s)
    => rproc init
    => rproc load 1 0x89000000 0x${filesize}
    Load Remote Processor 0 with data@addr=0x89000000 2725696 bytes: Success!
    => rproc start 1

    Once you get things running with manually halting at u-boot and typing in commands, we can then easily automate this by adding some u-boot environment variables.

    Regards,

    Karan