BBAI64 Debian trixie 13.2, kernel 6.12.x, using device tree 5.10 no vring enabled.
$ dmesg
pru-rproc b034000.pru: error -ENXIO: IRQ vring not found
remoteproc remoteproc8: error -ENXIO: unable to get vring interrupt
remoteproc remoteproc8: can’t start rproc b034000.pru: -6
remoteproc remoteproc8: Boot failed: 6
Also using dtc to dissassemble to a dts file on the /sys/firmware/devicetree/base. Then searching the dts file no vring found. This is not a new issue for me.
What can I add to a dtsi or overlay to enable this interrupt, which is already spefified in the k3-j721e-main.dtsi?
From the following command
$ zcat /proc/config.gz | grep CONFIG_VIRTIO
CONFIG_VIRTIO_VSOCKETS=m
CONFIG_VIRTIO_VSOCKETS_COMMON=m
CONFIG_VIRTIO_BLK=m
CONFIG_VIRTIO_NET=m
CONFIG_VIRTIO_CONSOLE=y
CONFIG_VIRTIO_ANCHOR=y
CONFIG_VIRTIO=y
CONFIG_VIRTIO_PCI_LIB=y
CONFIG_VIRTIO_PCI_LIB_LEGACY=y
CONFIG_VIRTIO_MENU=y
CONFIG_VIRTIO_PCI=y
CONFIG_VIRTIO_PCI_LEGACY=y
CONFIG_VIRTIO_PMEM=m
CONFIG_VIRTIO_BALLOON=m
CONFIG_VIRTIO_INPUT=m
CONFIG_VIRTIO_MMIO=m
CONFIG_VIRTIO_CMDLINE_DEVICES is not set
CONFIG_VIRTIO_DEBUG is not set
CONFIG_VIRTIO_IOMMU=m
CONFIG_VIRTIO_FS=y
Should their be an entry for? CONFIG_RPMSG_VIRTIO
Not sure if this is at all useful, but here you go. If the interrupt is mapped, it may be mapped with a device tree overlay. You can find an example for the AM335x (BBB) with kernel 4.19.x here.
pru0: pru@4a334000 {
...
interrupt-names = "vring", "kick";
};
I’m not 100% creating a dtso is the right thing to do here. You could also edit the BBAI64 dts file and recompile the device tree. The information about the PRU-ICSSG dtsi file is here. For Beagle Board specific dts/dtsi stuff
For more general information on device trees:
Not sure if this is worth mentioning, but there’s some example code from TI for the J721E PRU-ICSSG here; but the ReadMe also says
At this point in time, TI does NOT support PRU development on J721E.
I have had PRU applications runing on the BBB and BAI64 older debian releases like Bullseye. I have been attempting to migrate these to Debian Trixie. Their is a folder in the release package.
/opt/source/openpru but seems to apply to other processors but no J721e found. Their is a folder that references “linux”.
/opt/source/openpru/source/include/c_code/linux – files are: pru_rpmg.h, pru_virtio_ids.h, pru_virtio_ring.h, pru_virtgueue.h, pru_types.h and rsc_types.h.
But no instructions that I have found yet on how to use these.
But no instructions that I have found yet on how to use these.
Hrmmmm… the answer might be that OpenPRU and the PRU Academy don’t support the J721E. Neither does TI’s PRU Support Software Package. Frankly, it’s a little hard to find any information on the PRU-ICSSGs contained on that SOC.
Out of curiosity, why not use the MCU domain? It seems to be the TI supported method of building RT applications with this SOC.
You have more experience than me on this. My intention is only to share what I have found.
Maybe these are helpful:
When I was looking through github, I did find your own code, so… none of this is probably helpful… oh well.
Thanks for the feedback. I think the only solution is to use Bullseye with older kernels. I think I will resurrect my AM64b-EVM. I have used this before to debug PRU code since it has JTAG ports.
1 Like
No problem, thank you for humoring me. I learned a lot in the process.
I think the more people interested in the PRU’s would hopefully update the kernel support for them. Going to take a look at the telescope position controller link, thanks.
1 Like