Dennis,

Thanks for your response. 

When developing with the UIO architecture, they use the term "interrupt", 
so I assume they meant it somehow, but not willing to die on that hill. I 
could not get any form of "what they called interrupt" to work the remote 
proc architecture. I tried, and tried, and tried. If that solution exists I 
would greatly appreciate it.

The bi-directional note is correct about messaging, I was trying to 
emphasize that UIO cannot do messaging.

Your willingness to get in the mud with my issues is appreciated.

On Friday, May 28, 2021 at 11:59:35 AM UTC-5 Dennis Bieber wrote:

> On Fri, 28 May 2021 08:13:05 -0700 (PDT), in
> gmane.comp.hardware.beagleboard.user Bruce Chidester
> <brucechidester-re5...@public.gmane.org> wrote:
>
> >I am using BBB Revision C
> >
> >Please help me get clarity on my assumptions that I believe I have 
> learned 
> >so far and tell me where I am incorrect:
>
> Can't confirm for everything, but...
> >
> >1. There are 2 architectures to interact with the PRU's. They are *UIO* 
> and 
> >*RemoteProc*. And they can easily be selected in the /boot/uEnv.txt file. 
> >You cannot run both at the same time.
>
> TRUE -- but maybe not "easily"; there are some dependencies upon the
> kernel version loaded.
>
> TI has deprecated UIO and considers RemoteProc to be the route for
> future usage (it is not tied to just the PRUs, it should work with the DSP
> chips on the BB AI, et al.).
>
> >
> >2. When using RemoteProc you can *send* a remote message to the PRU and 
> >this solution *does not work* with UIO.
>
> RPMsg supports sending message in both directions
>
> https://software-dl.ti.com/processor-sdk-linux/esd/docs/latest/linux/Foundational_Components_PRU-ICSS_PRU_ICSSG.html
> """
> There are two vrings provided per PRU core, one vring is used for messages
> passed to the ARM and the other vring is used for messages received from
> the ARM. System level mailboxes are used to notify cores (ARM or PRU) when
> new messages are waiting in the shared buffers.
> """
>
> >
> >3. When using UIO the PRU can *send* an Interrupt to the host code but 
> >RemoteProc *cannot*.
> >
> >4. When using UIO, you *cannot* send an interrupt to the PRU, you need to 
> >create some other solution maybe through shared memory.
> >
>
> As the PRUs do not have what I would call true interrupts (they have a
> set of "interrupt bits" but do NOT interrupt the processor, the bits have
> to be polled, and appropriate handlers called) any talk of interrupts is
> vague.
>
> However, for RPMsg, the "mailbox" provides, I believe, some form of
> blocked wait or maybe use of a select() call to test for mailbox data. I
> don't really know what a "Kick" entails in:
> """
> ARM Host Steps
> Step 1a: Allocate a new buffer -or-
> Step 1b: Get a Used buffer from the slave Vring
> Step 2: Copy data to be transferred into the buffer from Step 1
> Step 3: Add the newly filled buffer to the Available list in the
> slave Vring
> Step 4: Kick the slave Vring by writing its index (1) into a
> message in Mailbox 2
> PRU Steps
> Step 5: A Kick is discovered in Mailbox 2 with the index of the
> Kicked Vring (1). This indicates to the PRU that data is available for
> receive
> Step 6: Get the Available buffer from the slave Vring
> Step 7: Copy data to be received out of the buffer from Step 2
> Step 8: Add the now empty buffer to the Used list in the slave
> Vring
> Step 9: Kick the slave Vring by writing its index (1) into a
> message in Mailbox 3
> """
> Step five appears to be a polling loop on the mailbox.
>
>
>
>
> -- 
> Dennis L Bieber
>
>

-- 
For more options, visit http://beagleboard.org/discuss
--- 
You received this message because you are subscribed to the Google Groups 
"BeagleBoard" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to beagleboard+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/beagleboard/2ee64ff3-f998-443f-9b44-0e06b371abb5n%40googlegroups.com.

Reply via email to