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: when I change /lib/firmware/j7-main-r5f1_0-fw , linux can't boot up

Part Number: TDA4VM
Other Parts Discussed in Thread: J721EXSOMXEVM, J721EXCPXEVM

when i complile the PDK, find GPIO_LedBlink_TestApp_freertos_mcu3_0_release_strip.xer5f  under binary folder .

1:  download GPIO_LedBlink_TestApp_freertos_mcu3_0_release_strip.xer5 to the board  lib/firmware  folder

2:  cd   /lib/firmware  ;  rm  -f  j7-main-r5f1_0-fw

3:  ln -s   /lib/firmware/GPIO_LedBlink_TestApp_freertos_mcu3_0_release_strip.xer5f   j7-main-r5f1_0-fw

4:sync

5:reboot

Linux can't boot up

  • Hi,

    I believe the default firmware is functional. Can you confirm that?
    Also where are you loading this firmware? Are you loading it form U-Boot or at the Linux?

    Please share the complete logs starting from the first print.

    - Keerthy

  • Hello, 

    I do this operation, it report errors, and linux can't boot up.  I don't know the reason , why it report errors?

    GPIO_LedBlink_TestApp_freertos_mcu3_0_release_strip.xer5f is in the /lib/firmware folder.

    1、echo 'stop' > /sys/class/remoteproc/remoteproc6/state

    2、echo 'GPIO_LedBlink_TestApp_freertos_mcu3_0_release_strip.xer5f' > /sys/class/remoteproc/remoteproc6/firmware

    3、echo 'start' > /sys/class/remoteproc/remoteproc6/state

    root@j7-evm:/lib/firmware# echo 'start' > /sys/class/remoteproc/remoteproc6/state
    [ 121.085391] remoteproc remoteproc6: powering up 5e00000.r5f
    [ 121.093033] remoteproc remoteproc6: Booting fw image GPIO_LedBlink_TestApp_freertos_mcu3_0_release_strip.xer5f, size 65328
    [ 121.104579] remoteproc remoteproc6: Boot failed: -22
    -sh: echo: write error: Invalid argument

  • Hello, 

    SDK: Processor SDK RTOS J721E 08_00_00

  • Hi Yuanzhi,

    Can you give the "readelf -l GPIO_LedBlink_TestApp_freertos_mcu3_0_release_strip.xer5f" output? Please ensure the firmware has a ".resource_table" section. This section is mandatory for Linux, so if the firmware is an example firmware designed by default to run for RTOS environment, it won't work as is on Linux. 

    Please see the following FAQ w.r.t adding a resource table:

    https://e2e.ti.com/support/processors/f/791/t/1012138

    regards

    Suman

  • Hello,

    Thank you, yes, GPIO_LedBlink_TestApp_freertos_mcu3_0_release_strip.xer5f does not have  ".resource_table" section.

    But , in uboot ,can i load  GPIO_LedBlink_TestApp_freertos_mcu3_0_release_strip.xer5f ?

    I do this:

    => rproc init
    k3_r5f_rproc r5f@41000000: Core 1 is already in use. No rproc commands work
    k3_r5f_rproc r5f@41400000: Core 2 is already in use. No rproc commands work
    => rproc list
    0 - Name:'r5f@41000000' type:'internal memory mapped' supports: load start stop reset
    1 - Name:'r5f@41400000' type:'internal memory mapped' supports: load start stop reset
    2 - Name:'r5f@5c00000' type:'internal memory mapped' supports: load start stop reset
    3 - Name:'r5f@5d00000' type:'internal memory mapped' supports: load start stop reset
    4 - Name:'r5f@5e00000' type:'internal memory mapped' supports: load start stop reset
    5 - Name:'r5f@5f00000' type:'internal memory mapped' supports: load start stop reset
    6 - Name:'dsp@4d80800000' type:'internal memory mapped' supports: load start stop reset
    7 - Name:'dsp@4d81800000' type:'internal memory mapped' supports: load start stop reset
    8 - Name:'dsp@64800000' type:'internal memory mapped' supports: load start stop reset
    => load mmc 1:2 0x90000000 /lib/firmware/GPIO_LedBlink_TestApp_tirtos_mcu3_0_release.xer5f
    4042128 bytes read in 175 ms (22 MiB/s)
    => rproc start 4

    I can't see any led bilnk, and other uarts  have no print

  • Hi Yuanzhi,

    Yes, you will be able to load and start the processor in U-Boot (it doesn't check/process .resource_table in current SDK), but you won't be able to communicate with your remoteproc at Linux kernel level. The driver initialization will fail in fact without the ".resource_table" in place.

    You are missing a "rproc load" step before "rproc start". 

    Please see the steps in 

    software-dl.ti.com/.../UG-RemoteProc.html

    regards

    Suman

  • Hello,

    Thank you , yes , i missing a step.

    I do this:

    =>
    => rproc init
    k3_r5f_rproc r5f@41000000: Core 1 is already in use. No rproc commands work
    k3_r5f_rproc r5f@41400000: Core 2 is already in use. No rproc commands work
    => rproc list
    0 - Name:'r5f@41000000' type:'internal memory mapped' supports: load start stop reset
    1 - Name:'r5f@41400000' type:'internal memory mapped' supports: load start stop reset
    2 - Name:'r5f@5c00000' type:'internal memory mapped' supports: load start stop reset
    3 - Name:'r5f@5d00000' type:'internal memory mapped' supports: load start stop reset
    4 - Name:'r5f@5e00000' type:'internal memory mapped' supports: load start stop reset
    5 - Name:'r5f@5f00000' type:'internal memory mapped' supports: load start stop reset
    6 - Name:'dsp@4d80800000' type:'internal memory mapped' supports: load start stop reset
    7 - Name:'dsp@4d81800000' type:'internal memory mapped' supports: load start stop reset
    8 - Name:'dsp@64800000' type:'internal memory mapped' supports: load start stop reset
    => load mmc 1:2 0x90000000 /lib/firmware/GPIO_LedBlink_TestApp_freertos_mcu3_0_release_strip.xer5f
    65328 bytes read in 12 ms (5.2 MiB/s)
    =>
    => rproc load 4 0x90000000 0x${filesize}
    Load Remote Processor 4 with data@addr=0x90000000 65328 bytes: Success!
    => rproc start 4
    =>
    IntConfig: portNum[0], pinNum[6], bankNum[0], intNum[124], eventId[0]
    GPIO Led Blink Application

    Awaiting interrupt occurrence

    /*************************************************/

    I use J721EXCPXEVM  and J721EXSOMXEVM  EVALUATION BOARD

    J721EXCPXEVM  have  two user leds, and two usr buttons.

    I can't see any user led bilnk,  and i press usr1 or user2 button, GPIO_LedBlink_TestApp_freertos_mcu3_0_release_strip.xer5f  has no printf this " All tests have passed ".

  • Hi,

    IntConfig: portNum[0], pinNum[6], bankNum[0], intNum[124], eventId[0]
    GPIO Led Blink Application

    Awaiting interrupt occurrence

    This is the output of the GPIO_LED_TESTAPP binary. Its nice to see you have successfully integrated the rtos binary.

    I can't see any user led bilnk,  and i press usr1 or user2 button, GPIO_LedBlink_TestApp_freertos_mcu3_0_release_strip.xer5f  has no printf this " All tests have passed ".

    I have raised a bug for this, will get it updated in future releases.