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]>
> > >
>

Reply via email to