Arm has been working on an open-source Linux kernel accelerator “accel” driver for their Ethos NPUs. That kernel driver continues being revised and under review for inclusion into a future mainline Linux kernel release. Already though a Gallium3D driver for Mesa has been merged for leveraging the Ethos NPU.
This Mesa NPU driver support leverages Mesa’s Teflon framework for TensorFlow Lite integration. Teflon was originally worked on as part of the Etnaviv driver efforts for Mesa and went on more recently to be used for open-source Rockchip NPU support in conjunction with the new “Rocket” accel driver being introduced in Linux 6.18.
Tomeu Vizoso who is the one behind these Mesa/Teflon NPU efforts was also the one to work on this new Gallium driver for the Arm Ethos NPUs. Tomeu explained in the merge request:
“This driver is the userspace counterpart to Rob Herring’s kernel accel driver.
The NPU doesn’t have any programmable cores, but there is a stage that supports pulling values from a LUT, but support for it is not implemented yet.
Functionality is quite complete for the operations that are currently implemented, but performance is very low at the moment due to a lack of any optimizations.
This NPU IP has freely available documentation and there is also an out-of-tree open source stack that can be used as a reference.
Initially we target the U65, with plans to move to U85 and maybe as well the U55 variant if there is hardware out there that supports direct access from the CPU (instead of through a companion Cortex-M core).”
This new “ethosu” driver is now merged ahead of this quarter’s Mesa 25.3 feature release.
Sent out yesterday were the v4 patches to the Ethos-U NPU accel driver. That kernel driver is obviously required for this Mesa driver to operate on hardware with the Ethos U65 or U85 NPUs. Testing so far has been on i.MX93 based boards. We’ll see if this driver is ready for upstreaming come the Linux v6.19 kernel cycle.
