On Tue, Mar 24, 2026 at 1:12 PM Ioana Ciocoi Radulescu < [email protected]> wrote:
> On Saturday, March 21, 2026 at 7:19 PM, Tomeu Vizoso wrote: > > > > Hi Ioana, > > > > Looks like the userspace portion of the driver is closed source > > (libNeutronDriver.so)? > > > > https://github.com/nxp-imx/tflite-neutron-delegate/blob/lf-6.12.49_2.2 > > .0/CMakeLists.txt > > Hi Tomeu, > > Yes, it's closed for now. We do plan to publish the source code > on github, but I believe that's still a few months away. > I think you may want to sync with your userspace team sooner rather than later, so you can comply with this requirement: https://docs.kernel.org/gpu/drm-uapi.html#open-source-userspace-requirements It could be good to also share firmware code with other firmware-mediated NPU drivers if possible, or at least the part of the rpmsg protocol that makes sense to share. You can see my submission for the Thames driver for a link to the firmware code. I would be happy to help consolidate code between this category of drivers if you want. Regards, Tomeu > Thanks, > Ioana > > > > > Regards, > > > > Tomeu > > > > On Fri, Mar 6, 2026 at 2:27 PM Ioana Ciocoi-Radulescu > > <[email protected]> wrote: > > > > > > Introduce a new accel driver for the Neutron Neural Processing Unit > > > (NPU), along with associated dt-bindings and DTS node. > > > > > > The first patch extends the GEM DMA helper APIs to allow bidirectional > > > mapping of non-coherent DMA buffers. While not part of the Neutron > > > driver, it's a prerequisite allowing us to use the GEM DMA helper. > > > > > > Neutron is a Neural Processing Unit from NXP, providing machine > > > learning (ML) acceleration for edge AI applications. Neutron is > > > integrated on NXP SoCs such as the i.MX95. > > > > > > The NPU consists of the following: > > > - RISC-V core running a proprietary firmware > > > - One or more Neutron cores, representing the main computation > > > engine performing ML operations > > > - Dedicated fast memory (TCM) > > > - DMA engine that handles data transfers between DDR and TCM > > > > > > The firmware is closed source and distributed as a binary here [1]. > > > > > > The Neutron software stack also contains a userspace library [1] and a > > > LiteRT custom delegate [2] that allow integration with standard LiteRT > > > tools. > > > > > > [1] https://github.com/nxp-upstream/neutron/tree/upstream > > > [2] https://github.com/nxp-imx/tflite-neutron-delegate > > > > > > Signed-off-by: Ioana Ciocoi-Radulescu <[email protected]> > > > --- > > > Changes in v2: > > > - rebase on newer drm-misc-next > > > - dt bindings: clock fixes and renames > > > - update DTS to match new names > > > - remove unnecessary fields from neutron_job structure > > > - fix use of uninitialized variable > > > > > > - Link to v1: > > > https://lore.kernel.org/r/[email protected] > > > > > > --- > > > Ioana Ciocoi-Radulescu (9): > > > drm/gem-dma: Add flag for bidirectional mapping of non-coherent > GEM > > DMA buffers > > > accel/neutron: Add documentation for NXP Neutron accelerator > driver > > > dt-bindings: npu: Add NXP Neutron > > > accel/neutron: Add driver for NXP Neutron NPU > > > accel/neutron: Add GEM buffer object support > > > accel/neutron: Add mailbox support > > > accel/neutron: Add job submission IOCTL > > > accel/neutron: Add logging support > > > arm64: dts: imx95: Add Neutron node > > > > > > Documentation/accel/index.rst | 1 + > > > Documentation/accel/neutron/index.rst | 12 + > > > Documentation/accel/neutron/neutron.rst | 131 ++++++++ > > > .../devicetree/bindings/npu/nxp,imx95-neutron.yaml | 96 ++++++ > > > MAINTAINERS | 10 + > > > arch/arm64/boot/dts/freescale/imx95.dtsi | 28 ++ > > > drivers/accel/Kconfig | 1 + > > > drivers/accel/Makefile | 3 +- > > > drivers/accel/neutron/Kconfig | 16 + > > > drivers/accel/neutron/Makefile | 12 + > > > drivers/accel/neutron/neutron_debugfs.c | 34 ++ > > > drivers/accel/neutron/neutron_debugfs.h | 15 + > > > drivers/accel/neutron/neutron_device.c | 239 +++++++++++++ > > > drivers/accel/neutron/neutron_device.h | 155 +++++++++ > > > drivers/accel/neutron/neutron_driver.c | 262 > +++++++++++++++ > > > drivers/accel/neutron/neutron_driver.h | 16 + > > > drivers/accel/neutron/neutron_gem.c | 116 +++++++ > > > drivers/accel/neutron/neutron_gem.h | 14 + > > > drivers/accel/neutron/neutron_job.c | 372 > > +++++++++++++++++++++ > > > drivers/accel/neutron/neutron_job.h | 43 +++ > > > drivers/accel/neutron/neutron_mailbox.c | 47 +++ > > > drivers/accel/neutron/neutron_mailbox.h | 42 +++ > > > drivers/gpu/drm/drm_gem_dma_helper.c | 6 +- > > > include/drm/drm_gem_dma_helper.h | 3 + > > > include/uapi/drm/neutron_accel.h | 130 +++++++ > > > 25 files changed, 1801 insertions(+), 3 deletions(-) > > > --- > > > base-commit: 6716101ae42949e98ad4b9e71eeba08c055be410 > > > change-id: 20260226-neutron-c435e39d167f > > > > > > Best regards, > > > -- > > > Ioana Ciocoi-Radulescu <[email protected]> > > > >
