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.

AM6442: start R5F before Linux from u-boot

Part Number: AM6442


Tool/software:

Hi,

Is it possible to start R5F firmware before the start of Linux from U-boot on AM64x. If yes How ? In first, I read this documentation U-Boot (ti.com)

Can you help me on step to do that ? 

Thank you very much

  • Hello, 

    The step-by-step method to start remote cores from U-boot is mentioned here: 3.1.1.9. RemoteProc — Processor SDK AM62x Documentation

    You can add the U-boot commands to start R5 core, in uEnv.txt file.

    Verify it first by running the commands in U-boot command prompt.

    From 9.1 SDK onwards, default mode is set to split mode, which means each core will run independently.

    Regards,
    Aparna

  • Hello,

    OK Aparna. Now I used the new U-boot with available Rproc commands. So it's work on EVM_GP. 

    I build an example project like blink a LED on R5-0-0 without freertos and test it on EVM. It's work fine. 

    Now, how you convert a .out image from CCS into a compatible binary for the directory /lib/firmware. Is there a specific TI tools  ?

    Regards

    Sebastien  

  • Hello, 

    You can use the .out file generated after building the example and rename it to the required .xer5f and copy to the lib/firmware directory on SD card.
    e2e.ti.com/.../4972931

    Regards

  • Thank you very much Aparna. It's works from u-boot command line with rproc commands. but I tried to put these commands directly to uEnv.txt and nothing is loaded. I think commands from uEnv.txt are ignored. I tried to create a boot.scr file with mkImage but and load it from uboot with the "source" command. U-boot return : "wrong format". I don't understand where is the mistake. Do you have an idea ?  

  • Hi, can you share what commands have you added to the uEnv.txt file?
    And the boot.scr file too.

    Regards,
    Aparna

  • On uEnv.txt

    # This uEnv.txt file can contain additional environment settings that you
    # want to set in U-Boot at boot time. This can be simple variables such
    # as the serverip or custom variables. The format of this file is:
    # variable=value
    # NOTE: This file will be evaluated after the bootcmd is run and the
    # bootcmd must be set to load this file if it exists (this is the
    # default on all newer U-Boot images. This also means that some
    # variables such as bootdelay cannot be changed by this file since
    # it is not evaluated until the bootcmd is run.
    uenvcmd=rproc init; load mmc 1:2 0x90000000 /lib/firmware/am64-main-r5f0_0-fw; rproc load 1 0x90000000 0x${filesize}; rproc start 1

    Sorry, impossible to share the .scr with you because "insert file menu" doesn't run. However I make it with theses commands

    Generate file boot.scr
    mkimage -A arm -O linux -T script -C none -a 0 -e 0 -n "Boot Script" -d uEnv.txt boot.scr
    
    # Load the file from u-boot
    fatload mmc 0:1 0x80000000 boot.scr
    
    # Execute the script
    source 0x80000000

    wrong format .... 

  • Hello Aparna

    It's OK now. I did a mistake in my uEnv.txt. No the Led blink from R5f0 but when Linux start after about two seconds, the Led stop to blink and R5f0 freeze in uart console. 

    In linux startup, the only erreur I found is : 

    I think it's a problem of memory. what do you think of that  ?

  • Hello,

    Is MSRAM allocated in R5F should be put in device tree of Linux ? 

  • Hi, 

    Please share your updated uEnv.txt file. 

    Meanwhile, I will further investigate and follow-up on other questions

  • # This uEnv.txt file can contain additional environment settings that you
    # want to set in U-Boot at boot time.  This can be simple variables such
    # as the serverip or custom variables.  The format of this file is:
    #    variable=value
    # NOTE: This file will be evaluated after the bootcmd is run and the
    #       bootcmd must be set to load this file if it exists (this is the
    #       default on all newer U-Boot images.  This also means that some
    #       variables such as bootdelay cannot be changed by this file since
    #       it is not evaluated until the bootcmd is run.
    uenvcmd=rproc init; load mmc 1:2 0x90000000 /lib/firmware/am64-main-r5f0_0-fw; rproc load 1 0x90000000 0x${filesize}; rproc start 1
    uEnv.txt

    # This uEnv.txt file can contain additional environment settings that you
    # want to set in U-Boot at boot time. This can be simple variables such
    # as the serverip or custom variables. The format of this file is:
    # variable=value
    # NOTE: This file will be evaluated after the bootcmd is run and the
    # bootcmd must be set to load this file if it exists (this is the
    # default on all newer U-Boot images. This also means that some
    # variables such as bootdelay cannot be changed by this file since
    # it is not evaluated until the bootcmd is run.
    uenvcmd=rproc init; load mmc 1:2 0x90000000 /lib/firmware/am64-main-r5f0_0-fw; rproc load 1 0x90000000 0x${filesize}; rproc start 1

  • Hi,

    Are you still seeing the issue?

    Regards,
    Aparna