What does 2x 6-core Programmable Real-Time Unit … mean

From what I’ve found, there are 6 cores in each PRU_ICSSG subsystem:
PRU0 and PRU1
RTU0 and RTU1
TX0 and TX1

They are each similar but different, and different in important ways, so I’ll let the documentation speak to them (J721E Programmable Real-Time Unit, sec 2.1):

I could not find a search on the TI website that would locate this document. It’s evidently marked to NOT display as a search result. However Google found it and I linked to it since it is a particularly hard document to just come across.

I too find it a little misleading for them to be promoted the way they are (i.e .2x 6-core). And while that is not inaccurate, it is misleading because the average person would assume they are 6 equally-capable cores, and that’s not the case.

But they do seem to exist. You can see all 12 are exposed here on my board:

I’ve got a makefile where I did my best to identify the ones I might use and give them better names than you see in remoteproc. I don’t know if they are completely accurate, but I named them based on the numbers in the paths shown.
image

Disclaimer: I HAVE NOT actually tried to deploy firmware to the RTUs or TXPRUs on my BBAI64, although I haven’t found any reason to believe they wouldn’t work. My focus has just been on I/O so that has me working only on the two PRUs, however I fully intend to use at least one of the RTUs for “background” tasks that don’t require I/O access.

1 Like