Brussels / 3 & 4 February 2024


Linux CAN upstreaming on MMU-less systems

This talk describes the issues and challenges I faced during the development of the bxCAN driver on stm32f4/7 architectures for the Linux kernel. Focused on the design and development of the driver, I soon realized that the classic user space tools used for testing a CAN interface (i. e. iproute2 and can-utils) could not be compiled on MMU-less systems.

The lack of MMU prevents the use of the fork() system call used by many Linux applications. Currently in buildroot, for example, about half of the packages are not supported on MMU-less systems. Furthermore, considering that busybox also does not support the 'ip link' command for the CAN interface, it was evident that the number of difficulties to overcome had increased so that, in addition to the driver development, the user space also needed to be patched. My target expanded: I definitively wanted to overcome the limitations of the user space and make it available to the open-source community.

How has the development of the bxCAN driver evolved? Was it later merged into the Linux kernel? Which packages needed to be patched to test it? What patches were applied? What happened to them? The talk addresses these and other questions that we will explore.


Dario Binacchi