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/AM5728: No rpmsg_pru drivers are showing up in /dev

Part Number: AM5728


Tool/software: Linux

I've set up my board to boot over a network connection by grabbing a kernel image and DTB file from my host PC and to mount its root file system via NFS. I'm using kernel version 4.4.32 and have compiled the kernel with all the default AM57xx options enabled, including PRUSS and RPmsg options. I unzipped a default rootfs tarball into my NFS share on my host PC.

After compiling my kernel image and modules and ensuring that everything is installed to the correct directories, I boot up my board but there are no devices of the form /dev/rpmsg_pru31 in my system. If I reboot the board and use the default firmware stored in its flash, however, these devices show up.

Is there something special that needs to be done in order for these device nodes to appear?

  • Hi Scott,

    Could you check weather the following nodes are set in your kernel config file:

    CONFIG_RPMSG=m
    CONFIG_RPMSG_RPC=m
    CONFIG_RPMSG_PRU=m

    BR
    Tsvetolin Shulev
  • Tsvetolin,

    I opened up my .config file and verified that the nodes you specified are indeed all set to "m":

    #
    # Remoteproc drivers
    #
    CONFIG_REMOTEPROC=m
    CONFIG_OMAP_REMOTEPROC=m
    CONFIG_OMAP_REMOTEPROC_WATCHDOG=y
    # CONFIG_STE_MODEM_RPROC is not set
    CONFIG_PRUSS_REMOTEPROC=m

    #
    # Rpmsg drivers
    #
    CONFIG_RPMSG=m
    CONFIG_RPMSG_RPC=m
    CONFIG_RPMSG_PRU=m

    Scott

  • Scott,

    Could you search in the kernel log for some errors or suspicious messages related to "rpmsg_pru"?

    BR
    Tsvetolin Shulev
  • I didn't see anything that looked amiss. For your review, here are the sections I saw in the boot messages related to PRUs:

    [ 12.545049] ti-pruss 4b200000.pruss: creating PRU cores and other child platform devices
    [ 12.547677] ti-pruss 4b280000.pruss: creating PRU cores and other child platform devices
    [ 12.574545] omap-sham 4b101000.sham: hw accel on OMAP rev 4.3
    [ 12.611820] remoteproc4: 4b234000.pru0 is available
    [ 12.611824] remoteproc4: Note: remoteproc is still under development and considered experimental.
    [ 12.611827] remoteproc4: THE BINARY FORMAT IS NOT YET FINALIZED, and backward compatibility isn't yet guaranteed.
    [ 12.648920] remoteproc4: registered virtio3 (type 7)
    [ 12.648961] pru-rproc 4b234000.pru0: PRU rproc node /ocp/pruss@4b200000/pru0@4b234000 probed successfully
    [ 12.649252] remoteproc5: 4b238000.pru1 is available
    [ 12.649254] remoteproc5: Note: remoteproc is still under development and considered experimental.
    [ 12.649256] remoteproc5: THE BINARY FORMAT IS NOT YET FINALIZED, and backward compatibility isn't yet guaranteed.
    [ 12.663978] remoteproc5: registered virtio4 (type 7)
    [ 12.664015] pru-rproc 4b238000.pru1: PRU rproc node /ocp/pruss@4b200000/pru1@4b238000 probed successfully
    [ 12.664356] remoteproc6: 4b2b4000.pru0 is available
    [ 12.664359] remoteproc6: Note: remoteproc is still under development and considered experimental.
    [ 12.664361] remoteproc6: THE BINARY FORMAT IS NOT YET FINALIZED, and backward compatibility isn't yet guaranteed.
    [ 12.678483] remoteproc6: registered virtio5 (type 7)
    [ 12.678528] pru-rproc 4b2b4000.pru0: PRU rproc node /ocp/pruss@4b280000/pru0@4b2b4000 probed successfully
    [ 12.678789] remoteproc7: 4b2b8000.pru1 is available
    [ 12.678792] remoteproc7: Note: remoteproc is still under development and considered experimental.
    [ 12.678794] remoteproc7: THE BINARY FORMAT IS NOT YET FINALIZED, and backward compatibility isn't yet guaranteed.
    [ 12.696236] remoteproc7: registered virtio6 (type 7)
    [ 12.696927] pru-rproc 4b2b8000.pru1: PRU rproc node /ocp/pruss@4b280000/pru1@4b2b8000 probed successfully
    [ 13.011976] remoteproc3: registered virtio7 (type 7)
    <snip>
    [ 14.369383] remoteproc4: Booting fw image am57xx-pru1_0-fw, size 75536
    [ 14.376203] ti-pruss 4b200000.pruss: configured system_events = 0x0000000000030000 intr_channels = 0x00000005 host_intr = 0x00000005
    [ 14.388233] remoteproc4: remote processor 4b234000.pru0 is now up
    [ 14.394594] virtio_rpmsg_bus virtio3: rpmsg host is online
    [ 14.400278] remoteproc5: powering up 4b238000.pru1
    [ 14.405662] remoteproc5: Booting fw image am57xx-pru1_1-fw, size 75536
    [ 14.412476] ti-pruss 4b200000.pruss: configured system_events = 0x00000000000c0000 intr_channels = 0x0000000a host_intr = 0x0000000a
    [ 14.424487] remoteproc5: remote processor 4b238000.pru1 is now up
    [ 14.430840] virtio_rpmsg_bus virtio4: rpmsg host is online
    [ 14.436471] remoteproc6: powering up 4b2b4000.pru0
    [ 14.441885] remoteproc6: Booting fw image am57xx-pru2_0-fw, size 75536
    [ 14.448688] ti-pruss 4b280000.pruss: configured system_events = 0x0000000000030000 intr_channels = 0x00000005 host_intr = 0x00000005
    [ 14.460706] remoteproc6: remote processor 4b2b4000.pru0 is now up
    [ 14.467044] virtio_rpmsg_bus virtio5: rpmsg host is online
    [ 14.472701] remoteproc7: powering up 4b2b8000.pru1
    [ 14.478252] remoteproc7: Booting fw image am57xx-pru2_1-fw, size 75536
    [ 14.485022] ti-pruss 4b280000.pruss: configured system_events = 0x00000000000c0000 intr_channels = 0x0000000a host_intr = 0x0000000a
    [ 14.497048] remoteproc7: remote processor 4b2b8000.pru1 is now up