Robert, By the way, there is only one remoteproc / rpmsg example there. The rest is either uio based, or completely non relevant( demonstrating some "new" gcc feature ).
On Sun, Dec 13, 2015 at 5:33 PM, William Hermans <yyrk...@gmail.com> wrote: > . . . And my god, what is this supposed to be ? C ? > > > https://github.com/dinuxbg/pru-gcc-examples/blob/master/blinking-led/pru/resource_table_0.h#L43-L72 > > On Sun, Dec 13, 2015 at 5:22 PM, William Hermans <yyrk...@gmail.com> > wrote: > >> I actually think remoteproc / rpmsg is usefu for multi core systems. Say >> a dual core ARM processor where one core is running Linux, and the other is >> running bare metal for <whatever> deterministic purpose. I am however still >> unconvinced how it is useful when you have multiple cores on die that are >> not all application based processors. Such as the PRUs, or on die M4 / IPU >> on the X15's processor. DSP . . . yeah I do not know enough about those to >> make that call. >> >> On Sun, Dec 13, 2015 at 5:05 PM, William Hermans <yyrk...@gmail.com> >> wrote: >> >>> It's a BS example because it does not illustrate how remoteproc and >>> rpmsg are useful. It also does not illustrate how to access the hardware >>> modules through this technology. Here . . . >>> >>> Something useful -> https://github.com/boxysean/beaglebone-DMX >>> Something else useful -> https://github.com/pgmmpk/beaglebone_pru_adc >>> Yet another something useful -> >>> https://github.com/abhishek-kakkar/BeagleLogic >>> >>> All these have been in the wild for a long time. They work, and the >>> hardware / software paradigm is well known, and explained many times all >>> over the web. >>> >>> Show us how to blink USR0, then explain how that works. Or even show us >>> how to use any on die hardware module, or something that can be "plugged >>> in" to demonstrate an immediate result. Without having to hook up external >>> electronics / circuits. >>> >>> That is why uio_pruss is better than remoteproc. People understand it, >>> or if they do not, they can read about it, and grasp the concept fairly >>> quickly. Because there is a lot of good documentation, and many, many good >>> examples that cover just about any on die hardware module. >>> >>> Anyway, I think the burden is actually on you, to explain to me, and >>> others why remoteproc / rpmsg is any good and should be used. Since, >>> uio_pruss has been around since 2011 or earlier, and is perfectly >>> functional. With that said, regurgitating sentiments such as "bla blah blah >>> has adopted x.y.z" is going to do you no good. We do not care who as >>> adopted what, and why. We want to know why remoteproc, and rpmsg is worth >>> out time investment. Especially considering we already have a large time >>> investment with uio_pruss. >>> >>> On Sun, Dec 13, 2015 at 4:40 PM, John Syne <john3...@gmail.com> wrote: >>> >>>> How is that a BS example? The example shows an ARM kernel module >>>> sending a message to the PRU, which interrupts the PRU, which then copies >>>> the message from the PRU rx buffer to the PRU tx buffer, which then >>>> executes a callback on the ARM kernel module. You should be able to take >>>> that code and make it do anything you need. >>>> >>>> Regards, >>>> John >>>> >>>> >>>> >>>> >>>> On Dec 13, 2015, at 3:21 PM, William Hermans <yyrk...@gmail.com> wrote: >>>> >>>> By real world I mean a real world useful example. Not some BS spit 100 >>>> "hello" messages out into dmesg. >>>> >>>> On Sun, Dec 13, 2015 at 4:19 PM, William Hermans <yyrk...@gmail.com> >>>> wrote: >>>> >>>>> OK, so show us a real world example of rpmsg. >>>>> >>>>> On Sun, Dec 13, 2015 at 3:53 PM, John Syne <john3...@gmail.com> wrote: >>>>> >>>>>> OK, so maybe you can explain why you think there is a difference >>>>>> between writing PRU firmware targeting PRUSS vs PRU firmware targeting >>>>>> remoteproc? The only difference is the API. You can build the firmware >>>>>> for >>>>>> each in the same way. The only reference to CCSV6 is the examples TI >>>>>> created for remoteproc. Someone updated those examples to build with GCC. >>>>>> So I don’t understand what you mean by forced to use “close source >>>>>> tools”. >>>>>> Nothing in remoteproc is closed source. All remoteproc does is load the >>>>>> firmware on the PRU and then start the code. virtio_rpmsg_bus handles the >>>>>> communications between ARM and the PRU. >>>>>> >>>>>> Regards, >>>>>> John >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> On Dec 13, 2015, at 12:43 PM, William Hermans <yyrk...@gmail.com> >>>>>> wrote: >>>>>> >>>>>> We're not talking about the X15 in this post, and personally, I >>>>>> probably won't be using an X15 for a long, long time. Too much board, for >>>>>> too much money. >>>>>> >>>>>> On Sun, Dec 13, 2015 at 1:30 PM, John Syne <john3...@gmail.com> >>>>>> wrote: >>>>>> >>>>>>> Remoteproc/RPMSG is a standard in mainline for interfacing ARM to >>>>>>> other processors on the same SOC. On the x15, this will be the only way >>>>>>> you >>>>>>> can interface to the DSP, M4’s, etc. Other vendors have adopted this >>>>>>> solutions as well. >>>>>>> >>>>>>> Regards, >>>>>>> John >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> On Dec 13, 2015, at 12:25 PM, William Hermans <yyrk...@gmail.com> >>>>>>> wrote: >>>>>>> >>>>>>> So, not to argue, but my point of view. I have no problem with >>>>>>> people using remoteproc, *if* that's what they want to do. At the same >>>>>>> time, I feel that it should not be "forced down our throats", because >>>>>>> right >>>>>>> now, it is not ready for prime time. uio_pruss is a known quantity, >>>>>>> lots of >>>>>>> people have documented their use of it, and remoteproc is barely >>>>>>> documented >>>>>>> at all. Passed that, from what I've seen so far, only closed source >>>>>>> tools >>>>>>> can be used with remoteproc, on the beaglebones. >>>>>>> >>>>>>> I did see someone post a gcc "port" of one of Jason Reeders guides . >>>>>>> . . but no mention of toolchain setup, or anything else. >>>>>>> >>>>>>> So until documentation is up to snuff, and we're not forced to use >>>>>>> close source tools. I'll always consider remoteproc as something not to >>>>>>> be >>>>>>> used seriously. I'm sure I'm also not alone. >>>>>>> >>>>>>> On Sun, Dec 13, 2015 at 1:17 PM, William Hermans <yyrk...@gmail.com> >>>>>>> wrote: >>>>>>> >>>>>>>> *With newer kernels, you need to use the standard Linux remote-proc* >>>>>>>>> * interface, rather than the legacy UIO driver.* >>>>>>>> >>>>>>>> >>>>>>>> Not exactly. Only if you're using the *TI kernels. The *bone >>>>>>>> kernels have uio_pruss enabled. >>>>>>>> >>>>>>>> >>>>>>>> william@beaglebone:~$ *uname -r* >>>>>>>> 4.1.12-bone-rt-r16 >>>>>>>> william@beaglebone:~$ *sudo sh -c "echo 'pru_enable' > >>>>>>>> /sys/devices/platform/bone_capemgr/slots"* >>>>>>>> william@beaglebone:~$ *./ti/lsuio-0.2.0/lsuio* >>>>>>>> uio7: name=pruss_evt7, version=1.0, events=0 >>>>>>>> map[0]: addr=0x4A300000, size=524288 >>>>>>>> map[1]: addr=0x9E880000, size=262144 >>>>>>>> uio6: name=pruss_evt6, version=1.0, events=0 >>>>>>>> map[0]: addr=0x4A300000, size=524288 >>>>>>>> map[1]: addr=0x9E880000, size=262144 >>>>>>>> uio5: name=pruss_evt5, version=1.0, events=0 >>>>>>>> map[0]: addr=0x4A300000, size=524288 >>>>>>>> map[1]: addr=0x9E880000, size=262144 >>>>>>>> uio4: name=pruss_evt4, version=1.0, events=0 >>>>>>>> map[0]: addr=0x4A300000, size=524288 >>>>>>>> map[1]: addr=0x9E880000, size=262144 >>>>>>>> uio3: name=pruss_evt3, version=1.0, events=0 >>>>>>>> map[0]: addr=0x4A300000, size=524288 >>>>>>>> map[1]: addr=0x9E880000, size=262144 >>>>>>>> uio2: name=pruss_evt2, version=1.0, events=0 >>>>>>>> map[0]: addr=0x4A300000, size=524288 >>>>>>>> map[1]: addr=0x9E880000, size=262144 >>>>>>>> uio1: name=pruss_evt1, version=1.0, events=0 >>>>>>>> map[0]: addr=0x4A300000, size=524288 >>>>>>>> map[1]: addr=0x9E880000, size=262144 >>>>>>>> uio0: name=pruss_evt0, version=1.0, events=0 >>>>>>>> map[0]: addr=0x4A300000, size=524288 >>>>>>>> map[1]: addr=0x9E880000, size=262144 >>>>>>>> >>>>>>>> The pru_enable device tree file is pretty simple too: >>>>>>>> >>>>>>>> /dts-v1/; >>>>>>>> /plugin/; >>>>>>>> >>>>>>>> / { >>>>>>>> compatible = "ti,beaglebone", "ti,beaglebone-black"; >>>>>>>> >>>>>>>> /* identification */ >>>>>>>> part-number = "pruss_enable"; >>>>>>>> version = "00A0"; >>>>>>>> >>>>>>>> fragment@0 { >>>>>>>> target = <&pruss>; >>>>>>>> __overlay__ { >>>>>>>> status = "okay"; >>>>>>>> >>>>>>>> }; >>>>>>>> }; >>>>>>>> >>>>>>>> }; >>>>>>>> >>>>>>>> Also, yes, everything works fine. I've tested various PRU git >>>>>>>> projects, and they all seem to work fine. >>>>>>>> >>>>>>>> >>>>>>>> On Sun, Dec 13, 2015 at 9:30 AM, Charles Steinkuehler < >>>>>>>> char...@steinkuehler.net> wrote: >>>>>>>> >>>>>>>>> On 12/13/2015 4:37 AM, Strawson wrote: >>>>>>>>> > Sadly I'm running into the same missing uio directories now that >>>>>>>>> I'm trying >>>>>>>>> > to get my beaglebone code that was stable on the 3.8 kernel and >>>>>>>>> Wheezy >>>>>>>>> > image. My old compiled dtbo wouldn't load with a 4.1 kernel >>>>>>>>> until it was >>>>>>>>> > recompiled. Even with it loaded, the following modules don't >>>>>>>>> load: PRU, >>>>>>>>> > eQEP, PWM, and GPIO_buttons. I spent today hacking together >>>>>>>>> workarounds for >>>>>>>>> > the latter 3, but the PRU still has me stumped. >>>>>>>>> > >>>>>>>>> > Looking closely, the am335x-boneblack.dtb file has changed quite >>>>>>>>> a bit. >>>>>>>>> > Once decompiled I have the following entries for the PRUSS: >>>>>>>>> >>>>>>>>> With newer kernels, you need to use the standard Linux remote-proc >>>>>>>>> interface, rather than the legacy UIO driver. >>>>>>>>> >>>>>>>>> -- >>>>>>>>> Charles Steinkuehler >>>>>>>>> char...@steinkuehler.net >>>>>>>>> >>>>>>>>> -- >>>>>>>>> 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. >>>>>>>>> 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. >>>>>>> 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. >>>>>>> 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. >>>>>> 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. >>>>>> 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. >>>> 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. >>>> 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. For more options, visit https://groups.google.com/d/optout.