CAN Options and Licensing, Testing, etc

Joel Sherrill joel at rtems.org
Wed Apr 13 19:22:37 UTC 2022


On Tue, Apr 12, 2022 at 9:32 PM Prashanth S <fishesprashanth at gmail.com>
wrote:

> Hi Joel,
>
> Have you determined how you will test CAN on BBB?
>
> I planned to test the CAN driver with another BBB running linux. And if
> CAN analyzer is economical then I would use that.
>

OK. I assume you have accounted for all the cables, transceivers, etc.

And should be able to demonstrate CAN Linux <-> on the same hardware to
verify your test setup.

I'm deferring to others for the hardware needed. I just know there has to
be a shopping list.

--joel

>
> Regards
> Prashanth S
>
> On Wed, 13 Apr 2022 at 00:38, Joel Sherrill <joel at rtems.org> wrote:
>
>>
>>
>> On Tue, Apr 12, 2022 at 12:39 PM Oliver Hartkopp <socketcan at hartkopp.net>
>> wrote:
>>
>>> Hi Joel,
>>>
>>> at least for the SocketCAN network layer part the license is a dual
>>> license BSD3/GPLv2
>>>
>>> // SPDX-License-Identifier: (GPL-2.0 OR BSD-3-Clause)
>>>
>>> https://elixir.bootlin.com/linux/v5.17.2/source/net/can/af_can.c#L1
>>>
>>> The reason was that we (at Volkswagen) intended the idea, the API, (CAN)
>>> data structures and code could be easily ported to BSD/MacOS/Windows.
>>>
>>> In fact we created a working Windows PoC but CAN hardware vendors had no
>>> interest to unify a open CAN driver API - to maintain their Lock-In :-/
>>>
>>> Today only a few CAN network drivers in linux/drivers/net/can follow
>>> this dual license approach. As they are 'Linux-specific' they are mostly
>>> GPLv2.
>>>
>>
>> Thanks for clarifying that.
>>
>> The PowerPC qoriq network drivers in libbsd are dual licensed and there
>> is some framework included to support Linux drivers in libbsd. That's the
>> extent of my knowledge but it at least means this could be possible to
>> integrate without knowingly diving into a deep pit.
>>
>> It has the disadvantage that CAN support would be tied to using libbsd.
>> That's likely  too heavy for some environments. But might be a good
>> solution if portability of applications is a goal.
>>
>>
>>> Best regards,
>>> Oliver
>>>
>>>
>>> On 12.04.22 19:13, Prashanth S wrote:
>>> > Hi All,
>>> >
>>> > This is to ask for suggestions on implementing the CAN driver for BBB.
>>> >
>>> > Can I proceed with defining driver specific structures for the CAN
>>> > driver or go with adding a generic API layer for ADC and GPIO.
>>>
>>
>> Have you determined how you will test CAN on BBB?
>>
>> I imagine you can use libdebugger to debug CAN.
>>
>> A big part of the community part of GSoC is making sure you are
>> in a good position to succeed. That means knowing how you will
>> test.
>>
>> --joel
>>
>> --joel
>>
>>
>>> >
>>> > Regards
>>> > Prashanth S
>>> >
>>> >
>>> > On Tue, 12 Apr 2022 at 19:14, Joel Sherrill <joel at rtems.org
>>> > <mailto:joel at rtems.org>> wrote:
>>> >
>>> >     Hi
>>> >
>>> >     I didn't want to post this in the other thread and turn it from a
>>> >     technical into licensing discussion but that must be the first
>>> >     filter for a CAN solution for RTEMS if it uses third-party code. If
>>> >     I have extracted the options correctly, we have:
>>> >
>>> >     + LinCAN - GPL
>>> >     + SocketCAN - GPL
>>> >     + NuttX CAN - Apache
>>> >     + CANOpen - Apache
>>> >
>>> >     The licensing alone eliminates two of the solutions.
>>> >
>>> >     My other concern was how you were going to test the drivers you
>>> >     wrote. Pavel mentions CAN in qemu. Perhaps the project should drop
>>> >     the ADC and focus on a CAN solution using the BSP supported by Qemu
>>> >     along with whatever analysis tools Pavel recommends. I am sure
>>> Pavel
>>> >     has some driver code for the Qemu path (not sure if it is in RTEMS
>>> >     or not) This would move the project from a single driver to trying
>>> >     to provide a CAN solution. This is much more valuable to the
>>> project
>>> >     long term.
>>> >
>>> >     And since CANOpen is an independent and long running project, I'd
>>> >     lean to it as the selection.
>>> >
>>> >     Just my thoughts
>>> >
>>> >     --joel
>>> >
>>> >
>>>
>>


More information about the devel mailing list