The repository includes a number of documents, providing a bit of a
one-stop-shop for PRU documentation. A migration guide from UIO_PRUSS to
REMOTEPROC would seem reasonable to add. There's also source to an
assembler.

More responses below...

On Thu, Jun 16, 2016 at 3:42 PM John Syne <john3...@gmail.com> wrote:

> Looking at am335x_pru_package, I see things like loaders which conflict
> with RemoteProc so I’m not sure that is such a good idea. Are you proposing
> to modify the TI examples to work with UIO_PRUSS? That would be a horrible
> idea as I have already described the limitations of UIO_PRUSS.
>

No, I'm saying that the existing UIO_PRUSS examples should be made to
continue to work on the latest kernels. This might require a way to
transition control from kernel to userspace for the PRU control registers.

The inclusion of additional REMOTEPROC-only examples could illustrate why
to migrate. It seems to me some of the PRU GSoC projects like BeagleLogic
might also be suitable to integrate here, as we haven't gotten them
integrated into the standard images otherwise yet.


>
> TI already have a set of examples and a step by step process on how to
> build and use these examples, but I’m talking about augmenting the
> documentation to make it easier to understand/use.
>

I agree that the documentation should be the focus. I thought the older
round of documentation wasn't so bad, but there is much more to document
now with REMOTEPROC. I'm just saying that making the documentation
comprehensive in once place would be ideal.


> I’m also proposing to extend the existing examples with real world
> examples that can serve as a template for developers. I’m not sure what
> Jason Reeder’s schedule looks like, but either he can assist with the
> development, or just monitor the development of the examples in such a way
> that he can take ownership of the examples.
>

Monitoring the external development of extending these examples, including
the GSoC work which is on-going, would be great. Not sure if he can commit
to that.

I'll just note again that that particular repository has external patches
already and cannot be integrated back into a release by TI (at least not at
any reasonable level of effort).


>
> Given that RPMSG/RemoteProc is to replace UIO-PRUSS, my only goal here is
> to get the community behind RPMSG/RemoteProc so that we are all pulling in
> the same direction. At the moment, developers are having a difficult time
> understanding the framework and this in large part is why we are seeing
> resistance to change.
>

Agreed, which is why I want to meet them at the information source they are
using today. You can tell by the reaction that it is an important resource
and care should be extended to updating it. It seems to me the right place
to try to prove the value of REMOTEPROC/RPMSG.


>
> Finally, developers have complained about poor performance, and perhaps we
> need investigate why they are seeing this. Perhaps there is something in
> the framework, or perhaps their implementation is wrong.
>

Yeah, I'd like to know more details about that as well. I have a near-term
need to migrate some UIO_PRUSS code (
https://github.com/StrawsonDesign/Robotics_Cape_Installer/tree/master/install_files/pru)
to REMOTEPROC and the author has some of this same concern.


>
> Regards,
> John
>
>
>
>
> On Jun 16, 2016, at 12:10 PM, Jason Kridner <jkrid...@beagleboard.org>
> wrote:
>
> Nice request.
>
> I'd suggest putting things into the am335x_pru_package on GitHub, but I
> know there are some issues in bringing back code into TI. I'd just suggest
> updating that same sort of package such that we can merge the deltas, but
> one place with a full experience.
>
> Thoughts?
>
> On Thu, Jun 16, 2016 at 12:04 PM John Syne <john3...@gmail.com> wrote:
>
>> Hi Jason,
>>
>> I have been part of the discussion on this issue spanning several threads
>> and I have yet to hear anyone offer any concrete suggestions on how to make
>> RPMSG/RemoteProc better, so here are my thoughts on the steep learning
>> curve required to use RPMSG/RemoteProc. I think the structure of the
>> framework doesn’t need to change and I would not like to see registers
>> turned over to user space. I think we just need to simplify the learning
>> curve.
>>
>> I started by trying to read all the docs and this was my first issue. The
>> docs are all over the place, presentations are also spread all over the
>> place. To start, I would like to see a more structured set of docs that
>> cover everything, from understanding the hardware, the interfaces between
>> PRU and ARM, and how everything fits together (RemoteProc, Virtio, RPMSG,
>> etc).
>>
>> I ported RPMSG/RemoteProc from the V3.8 kernel to V4.1 kernel for both
>> BBB and BeagleBoard-x15 and during that process, I learned how the whole
>> echo system worked. I didn’t learn this from the docs. Later some PRU
>> presentations did a better job of explaining the structure, but the use of
>> TI's very technical acronyms made the docs difficult to understand. I mean,
>> what does virtio, mailbox, vrings, etc mean. I had to read the code to
>> understand the concepts and this should not be necessary.
>>
>> The examples tended to be overly simplistic and don’t necessarily show
>> the capabilities of the framework. Perhaps we should call for a list of
>> examples developers would like to see and we can work on providing a
>> solution that developers can use as a template.
>>
>> I would be interested in hearing what other think about my proposal.
>>
>> Regards,
>> John
>>
>>
>>
>>
>> On Jun 16, 2016, at 3:25 AM, Jason Kridner <jason.krid...@hangerhead.com>
>> wrote:
>>
>> Thanks John. Remoteproc wasn't derived in a vacuum. Every approach
>> provides trade-offs. The constant uninformed assertion that everything is
>> faster if handled by userspace reflects on the struggles we've had to
>> communicate the value of working in the kernel process.
>>
>> I'd like to see a better way of maintaining both, that is to turn the
>> registers back over to userspace, disabling the kernel driver other than
>> UIO. I need to work on articulating that desire.
>>
>> As to the claim that remoteproc is slower---given that the kernel owns
>> the interrupts, I don't see how userspace can service them faster. Examples
>> like BeagleLogic show that remoteproc can be quite fast. The high speed
>> communication between the PRUs and the rest of the system, coupled with
>> their high-speed interface to the external world, are what make them so
>> valuable. Defining some common effective ways of communicating using kernel
>> drivers would seem to make it much simpler for people to develop code
>> quickly.
>>
>> Anyway, we should spend some time with this repo making sure both driver
>> mechanisms are supported and their values articulated. Simply ignoring the
>> remoteproc interface supported in the mainline kernel doesn't make sense to
>> me.
>> On Thu, Jun 16, 2016 at 2:20 AM John Syne <john3...@gmail.com> wrote:
>>
>>> One other thing, if you don’t like some features of RPMSG/REMOTEPROC,
>>> then why not provide input to the developers with any suggestions you think
>>> will make things better? I have spoken to Jason Reeder and Suman Anna
>>> several times and they have been very responsive to my input.
>>>
>>> Regards,
>>> John
>>>
>>>
>>>
>>>
>>> On Jun 15, 2016, at 8:53 PM, TJF <jeli.freih...@gmail.com> wrote:
>>>
>>>
>>>
>>> Am Mittwoch, 15. Juni 2016 23:47:11 UTC+2 schrieb Jason Kridner:
>>>>
>>>> How is it nonsense?
>>>
>>>
>>> There's no realistic concept up to now. Significant changes every now
>>> and then, like the one documented here.
>>>
>>> Some developers may see some advantages anytime in the future, at least
>>> if they use the matching compiler. But currently, from my (and the users)
>>> point of view, remoteproc has less features, is slower, and takes more
>>> kernel memory than the prussdrv solution. In short: experimental, not ready
>>> for productive code. Regretfully I think about every minute I spent in
>>> learning and testing yet.
>>>
>>> --
>>> 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/bc2d2003-6593-4759-99ca-2b7a95b8d33f%40googlegroups.com
>>> <https://groups.google.com/d/msgid/beagleboard/bc2d2003-6593-4759-99ca-2b7a95b8d33f%40googlegroups.com?utm_medium=email&utm_source=footer>
>>> .
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>>>
>>> --
>>> 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/F78DF15C-A7CF-4AC5-82DE-604CE7F74E75%40gmail.com
>>> <https://groups.google.com/d/msgid/beagleboard/F78DF15C-A7CF-4AC5-82DE-604CE7F74E75%40gmail.com?utm_medium=email&utm_source=footer>
>>> .
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>>
>> --
>> 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/CA%2BT6QPmqZkBh5%3DNxHU75UZLtWWL83JOVoBmdi4P5cNCLnwsjGA%40mail.gmail.com
>> <https://groups.google.com/d/msgid/beagleboard/CA%2BT6QPmqZkBh5%3DNxHU75UZLtWWL83JOVoBmdi4P5cNCLnwsjGA%40mail.gmail.com?utm_medium=email&utm_source=footer>
>> .
>>
>>
>> For more options, visit https://groups.google.com/d/optout.
>>
>>
> --
> 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/CF9664BE-5A74-4B4F-B57D-A84B4B3598D3%40gmail.com
> <https://groups.google.com/d/msgid/beagleboard/CF9664BE-5A74-4B4F-B57D-A84B4B3598D3%40gmail.com?utm_medium=email&utm_source=footer>
> .
> For more options, visit https://groups.google.com/d/optout.
>

-- 
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/CA%2BT6QPkxJvhQQRyysHPzT6cMvacV%3DVfwVYW4s1UasJxb8n-gRg%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to