generic CAN/CAN FD susbsytem for RTEMS - status, review and mainlining

Pavel Pisa pisa at fel.cvut.cz
Fri Jun 21 10:27:01 UTC 2024


Hello everybody,

I want to inform you about the progress of the project.

The CTU local project project links can be found in the
section CAN/CAN FD Subsystem and Drivers for RTEMS on our page

  https://canbus.pages.fel.cvut.cz/#cancan-fd-subsystem-and-drivers-for-rtems

The merge request draft for review is available at RTEMS GitLab

  https://gitlab.rtems.org/rtems/rtos/rtems/-/merge_requests/49

and we collect feedback and are preparing enhancements based
on fedback, i.e. to resolve Gedare noticed problem around
RTEMS_CAN_CHIP_STOP IOCTL.

The related article

  Scheduling of CAN frame transmission when multiple FIFOs with
  assigned priorities are used in RTOS drivers

has been presented at the international CAN Conference and is available
in paper proceedings, publication of the electronic version is pending
and I hope that CiA makes articles available the same as the previous
iCC conference articles.

Michal Lenc has defended his master's thesis with an A grade and finished
his masters study with honors this week. The thesis is available and can
serve as an extended version of the article for now

  CAN FD Support for Space Grade Real-Time RTEMS Executive; Michal Lenc; 2024
  https://wiki.control.fel.cvut.cz/mediawiki/images/c/cc/Dp_2024_lenc_michal.pdf

We would be happy to hear some feedback even from Gaisler developers.
I.e., if there is at least remote chance to work in direction to unify
RTEMS generic CAN/CAN FD support with GRlib provided CAN drivers in long term.
(adding Daniel Hellström as I have noticed his recent activity on the list
but if you have somebody working more closely with CAN at Gaisler than
please redirect us to him/her).
May it be some people and projects form ESA or NASA could
profit from our work and forces can be joined there. 

We would be happy to join forces to support more controllers.
We have FPGA design option and have working XCAN and OpenCores
SJA1000 on our MZ_APO Xilinx Zynq based board under Linux
ina ddition to CTU CAN FD, so we can test these on RTEMS as well.
SJA1000 support can be based on original LinCAN code.
There has been some e-mail exchange about external XCAN support
for RTEMS on the list in past and there has been unfinished/broken
but possibly reusable D-CAN support for Beagle Bone work in GSoC
frame. D-CAN can be reused for TMS570 platfrom in longer term.
SJA1000, CTU CAN FD and Xilinx UtraScale and Versal CAN
drivers can be roughly tested under QEMU as well

  https://www.qemu.org/docs/master/system/devices/can.html

I see as critical to finish discussion about API
(if it is acceptable for RTEMS mainline in the actual
form and what features are identified as missing
or should be adjusted).

Best wishes,

                Pavel Pisa
    phone:      +420 603531357
    e-mail:     pisa at cmp.felk.cvut.cz
    Department of Control Engineering FEE CVUT
    Karlovo namesti 13, 121 35, Prague 2
    university: http://control.fel.cvut.cz/
    personal:   http://cmp.felk.cvut.cz/~pisa
    social:     https://social.kernel.org/ppisa
    projects:   https://www.openhub.net/accounts/ppisa
    CAN related:http://canbus.pages.fel.cvut.cz/
    RISC-V education: https://comparch.edu.cvut.cz/
    Open Technologies Research Education and Exchange Services
    https://gitlab.fel.cvut.cz/otrees/org/-/wikis/home


More information about the devel mailing list