maciejjo/beaglebone-pru-dma

Change PRU Firmware Library to a Permissive License?

elcritch opened this issue · 7 comments

Would it be possible to change the licensing on the PRU firmware library portion of the project to a more permissive license? Specifically any PRU application firmware which uses this library would be required to adopt the GPL for the entire PRU application. Unfortunately this is not an option for many applications, such as is the case with my code. The project and the work you've done are useful and I would like to help extend it and build on it, but I am not at liberty to GPL our entire PRU firmware code base. At the least this could require me re-writing the PRU portion of the library, though the kernel portions are helpful. :-)

I propose adopting an MIT/BSD License, MPL 2.0, or LGPL license for the PRU firmware library potion of the code if the GSoC/BeagleBone commitments allow it. The BSD license seems similar to the TI license of the base PRU libraries, the MPL provides for a file-level copyleft, and the LGPL is trickiest since it requires providing the ability to re-link a static binary.

Hi, thanks for your interest in the project! I do not mind licensing the PRU code under MIT or BSD, but I would like to know opinion of GSoC mentors from beagleboard before I do that. I will ask them and get back to you.

Of course, let me know what they think. Thanks!

Any update on this request?

Hi @juacobarcelo , thanks for taking interest.

I did not hear too much feedback from BB GSoC people, I asked on IRC once more today, but if there will be no objections, I would like to go forward with this request. One concern that was raised was that abandoning GPL would make the code harder to merge, so I am thinking about changing it to dual license (MIT/GPL or BSD/GPL). I think this should satisfy your needs to use it with non-GPL code and still allow to merge it where GPL is stricty requried. Comments?

That sounds like a good plan to me. Only the pru firmware code would really need the dual license, as the kernel code could only be used with the Linux kernel under the GPL license.

Once the license allows it, I'd like to link it to the PRU support package I've been working on. My goal with it is to support an out-of-the-box plug & play setup for the Beaglebone's/PRU's based on the Nerves project:

Though currently I'm not sure how best to use DMA, it'd be great to have it in there. And hopefully it makes sense of why the license change is helpful.

Thanks!

P.S. do you think it'd be possible/make sense to pre-build any of the DMA kmod's like is done with RPMsg kmod's? Or will the dma kmod's generally be device specific?

@elcritch : I just pushed the change, PRU firmware files are now available under BSD/GPL.

Answering to your question: I think the core pru-dma module could be distributed in binary form, but it probably would require rebuilding with BBB kernel updates, to keep it compatible with kernel that is used on the target, but currently the driver is distributed as a series of patches to kernel, so I am not sure what would be the best way to go about it...