i.MX8MP and FreeRTOS stuck at rpmsg_lite_is_link_up() (still)...

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

i.MX8MP and FreeRTOS stuck at rpmsg_lite_is_link_up() (still)...

970 Views
Earthshine
Contributor II

I'm running into exactly the same issue as was described (and supposedly "solved") in this post:

https://community.nxp.com/t5/i-MX-Processors/rpmsg-lite-str-echo-rtos-stuck-at-rpmsg-lite-is-link-up...

However, the solution work-around is not working for me.  

Specifically:

  • echo /media/usb-drive/rpmsg_lite_str_echo_rtos_imxcm7.out >firmware #my ELF file from IAR EWARM.
    • state is running, so this fails.  I do "echo stop > state" and then can do this step.
  • cat state #It should report offline
  • Load C-M program via JTAG
    • This isn't explicitly stated, but after the load I have to also do a "run" (using IAR EWARM) or else the Linux console is unresponsive.
  • echo start >state
    • I get: [ 310.724906] remoteproc remoteproc0: powering up imx-rproc
      [ 310.730463] remoteproc remoteproc0: Direct firmware load for /media/usb-drive/rpmsg_lite_str_echo_rtos_imxcm7.out failed with error -2
      [ 310.742608] remoteproc remoteproc0: request_firmware failed: -2
      [ 310.748576] remoteproc remoteproc0: Boot failed: -2
      -sh: echo: write error: No such file or directory

rpmsg_lite_str_echo_rtos_imxcm7.out is my ELF file, and it is indeed located in /media/usb-drive.  Thoughts, suggestions?

 

0 Kudos
3 Replies

961 Views
gary_bisson
Senior Contributor III

Hi,

As the error says, it can't load the firmware. Please copy your ELF file into /lib/firmware/ and try again.

Regards,

0 Kudos

956 Views
Earthshine
Contributor II

It would be nice to have a more complete explanation of what this procedure is doing (i.e. what's the significance of each step).  What's the significance of /lib/firmware/ - that isn't mentioned in the original solution post?  It doesn't seem to be helping my cause.  Here's a (new) complete list of steps I'm doing:

  1. Boot Linux, login as root
  2. modprobe imx_rpmsg_tty
  3. cd /sys/class/remoteproc/remoteproc0
  4. mount /dev/sda1 /media/usb-drive     # doing this just because I'm using a USB drive to get stuff onto the board
  5. cp /media/usb-drive/myfile.elf /lib/firmware    # per your recommendation
  6. echo /lib/firmware/ > /sys/module/firmware_class/parameters/path  # I assume this would be correct?
  7. echo stop > state     # have to do this because state is 'running'
  8. echo /lib/firmware/myfile.elf > firmware
  9. [load firmware via IAR EWARM and J-Link Plus, hit "run" in the debugger, or skip this step entirely]
  10. echo start > state

This is where I get:

[ 481.929609] remoteproc remoteproc0: powering up imx-rproc
[ 481.935153] remoteproc remoteproc0: Direct firmware load for /lib/firmware/myfile.elf failed with error -2
[ 481.944861] remoteproc remoteproc0: request_firmware failed: -2
[ 481.950838] remoteproc remoteproc0: Boot failed: -2
-sh: echo: write error: No such file or directory

 

0 Kudos

953 Views
AldoG
NXP TechSupport
NXP TechSupport

Hello @Earthshine,

Please note that you have already set the path here:
echo /lib/firmware/ > /sys/module/firmware_class/parameters/path

This will let know remoteproc where to look for the firmware to be loaded, so to select your test elf file you should do it like this:
echo myfile.elf > firmware

So your steps look correct only number 8 try it as above.

Best regards,
Aldo.

0 Kudos