<div dir="ltr"><div>Gedare,</div><div><br></div><div>Thank you for your input on this.  I'm still digesting LinCAN, but it looks like a good way to go.  On our end, we will likely have some resources to throw at this in a few weeks.<br></div><div><br></div><div>-Phil<br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Aug 17, 2023 at 4:26 PM Gedare Bloom <<a href="mailto:gedare@rtems.org">gedare@rtems.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hi Phil,<br>
<br>
On Wed, Aug 9, 2023 at 6:38 AM Philip Kirkpatrick<br>
<<a href="mailto:p.kirkpatrick@reflexaerospace.com" target="_blank">p.kirkpatrick@reflexaerospace.com</a>> wrote:<br>
><br>
> Hello,<br>
><br>
> Some people on our team here at Reflex are preparing to implement some CAN drivers.  Specifically for TMS570 and for ZynqMP-RPU (side note my latest patch for that on Jun 29th is still sitting there unreviewed).  I was wondering what the current status of the CAN API is.<br>
Feel free to ping the patch. At the moment, this email based system is<br>
all we have, and sometimes patches may not get a lot of attention<br>
especially if no one "owns" it -- such as new BSPs.<br>
<br>
> I saw in August of last year and API was added and then last month was reverted with this patch:<br>
> <a href="https://lists.rtems.org/pipermail/devel/2023-July/076013.html" rel="noreferrer" target="_blank">https://lists.rtems.org/pipermail/devel/2023-July/076013.html</a><br>
> The comment on the patch says the API isn't mature enough for release.  What deficiencies need to be resolved in the API, is this being actively worked on, and should we design against this API or is there a different API we should target?<br>
><br>
The implementation of that API was deficient. It did not support<br>
multiple read/write transactions, it had a custom-built ring buffer<br>
that was not fully vetted, and some other problems related to<br>
threads+priorities. I expect to have some time to look at how to<br>
provide better CAN support inside of RTEMS. This has been an ongoing<br>
discussion I've been having with Pavel Pisa and others for many years<br>
now (a decade?). The direction that I will prefer to go is to port<br>
LinCAN<br>
<a href="https://cmp.felk.cvut.cz/~pisa/can/doc/lincandoc-0.3.5.pdf" rel="noreferrer" target="_blank">https://cmp.felk.cvut.cz/~pisa/can/doc/lincandoc-0.3.5.pdf</a><br>
<br>
Both Pavel and I are interested in seeing this come through. So far,<br>
we mostly do it on volunteer time or as side pieces of other work.<br>
Pavel's group has good experience with CAN and CAN FD, and with both<br>
TMS570 and the Zynq (non-MP) boards, with Linux, RTEMS, and NuttX. We<br>
would be open to collaborating, subject to whatever time or resource<br>
constraints everyone has :) Michal Lenc has been working on this topic<br>
as a thesis, "CAN FD Support for Space Grade Real-Time RTEMS<br>
Executive"<br>
<br>
Regarding LinCAN itself, there is one design challenge to port it,<br>
which has to do with the use of internal FIFOs already in LinCAN code<br>
base, or to use RTEMS/POSIX message queue style to interface the CAN<br>
drivers and userspace. I actually see there are good reasons to<br>
support both ways, and may explore exactly that. We have had quite<br>
some discussions here on the topic:<br>
* <a href="https://lists.rtems.org/pipermail/devel/2023-March/074537.html" rel="noreferrer" target="_blank">https://lists.rtems.org/pipermail/devel/2023-March/074537.html</a><br>
* <a href="https://lists.rtems.org/pipermail/devel/2022-April/071235.html" rel="noreferrer" target="_blank">https://lists.rtems.org/pipermail/devel/2022-April/071235.html</a><br>
* <a href="https://lists.rtems.org/pipermail/devel/2013-April/030761.html" rel="noreferrer" target="_blank">https://lists.rtems.org/pipermail/devel/2013-April/030761.html</a> (for<br>
historical good measure)<br>
<br>
Gedare<br>
<br>
> Thank you,<br>
> Phil<br>
> _______________________________________________<br>
> devel mailing list<br>
> <a href="mailto:devel@rtems.org" target="_blank">devel@rtems.org</a><br>
> <a href="http://lists.rtems.org/mailman/listinfo/devel" rel="noreferrer" target="_blank">http://lists.rtems.org/mailman/listinfo/devel</a><br>
</blockquote></div>