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.

Linux/PROCESSOR-SDK-AM335X: PRU RPMsg bus error

Part Number: PROCESSOR-SDK-AM335X

Tool/software: Linux

I'm getting the following error:   virtio_rpmsg_bus virtio0: msg received with no recipient

I am using Linux kernel: git://git.ti.com/processor-sdk/processor-sdk-linux.git at commit a75d8

An  lsmod shows:

virtio_rpmsg_bus used by 0

rpmsg_pru used by 0

rpmsg_core use by 2 virtio_rpmsg_bus, rpmsg_pru

pruss_soc_bus used by 0

pru_rproc used by 0

pruss used by 1 pru_rproc

pruss_intc used by 1 pru_rproc

wkup_m3_rproc used by 0

remoteproc used by 2 pru_rproc, wkup_m3_rproc

In sys/class/remoteproc I have remoteproc1 and remoteproc2.

I did the:

echo 'am335x-pru0-fw' > /sys/class/remoteproc/remoteproc1/firmware

echo 'start' > /sys/class/remoteproc/remoteproc1/state

and get:

[   60.439798] remoteproc remoteproc1: powering up 4a334000.pru0
[   60.456880] remoteproc remoteproc1: Booting fw image am335x-pru0-fw, size 123168
[   60.464858] ti-pruss 4a300000.pruss: configured system_events = 0x0000000000030000 intr_channels = 0x00000005 host_intr = 0x00000005
[   60.477896] virtio_rpmsg_bus virtio0: creating channel rpmsg-pru addr 0x1e
[   60.485440] rpmsg_pru virtio0.rpmsg-pru.-1.30: new rpmsg_pru device: /dev/rpmsg_pru30
[   60.493540] virtio_rpmsg_bus virtio0: rpmsg host is online
[   60.499088] remoteproc remoteproc1: registered virtio0 (type 7)
[   60.505324] remoteproc remoteproc1: remote processor 4a334000.pru0 is now up

Then I try to echo text to /dev/rpmsg_pru30

echo "hello" > /dev/rpmsg_pru30

I get the error three times actually

virtio_rpmsg_bus virtio0: msg received with no recipient

virtio_rpmsg_bus virtio0: msg received with no recipient

virtio_rpmsg_bus virtio0: msg received with no recipient

Any clue as to what I can look at or information to provide?

Thanks

  • Hello Brian,

    Strange. Can you replicate the results if you use firmware from the PRU Software Support package as detailed here?

    Regards, 

    Nick

  • Ok, that worked and our custom code works as well when built with the same compiler under /opt/...

    So, I must have a compiler version problem.

    I have /opt/ti-processor-sdk-linux-am335x-evm-04.02.00.09, and when building with the pru compiler under there things work.

    I have CC Studio Version 8.0.0.00016 for LInux, with the PRU v2.3.1 compiler installed from the App Center.

    Is there an obvious conflict here, or should they be the same and I'd need to dig further?

    Our application is still linking with the rpmsg_lib.lib in /opt/ti-pro.../example-applications/pru-icss-5.1.0/lib/rpmsg_lib.lib.

  • Hello Brian,

    The error message you saw at first is generated when the ARM receives a message buffer and tries to do something with it. Whatever destination the firmware tried to echo a response back to was not registered as a valid ID.

    Did you build the firmware am335x-pru0-fw or did you use the one that comes prebuilt in the file system under /lib/firmware?

    I am not clear on your later statements, are you having trouble compiling your custom code in CCS?

    Regards,
    Nick
  • Hello Brian,

    I am going to mark this resolved. Please respond if you have any questions.

    Regards,
    Nick