[PATCH v4 1/7] accel/ivpu: Introduce a new DRM driver for Intel VPU

Oded Gabbay oded.gabbay at gmail.com
Tue Dec 20 20:17:30 UTC 2022


On Thu, Dec 8, 2022 at 1:08 PM Jacek Lawrynowicz
<jacek.lawrynowicz at linux.intel.com> wrote:
>
> VPU stands for Versatile Processing Unit and it's a CPU-integrated
> inference accelerator for Computer Vision and Deep Learning
> applications.
>
> The VPU device consist of following components:
>   - Buttress - provides CPU to VPU integration, interrupt, frequency and
>     power management.
>   - Memory Management Unit (based on ARM MMU-600) - translates VPU to
>     host DMA addresses, isolates user workloads.
>   - RISC based microcontroller - executes firmware that provides job
>     execution API for the kernel-mode driver
>   - Neural Compute Subsystem (NCS) - does the actual work, provides
>     Compute and Copy engines.
>   - Network on Chip (NoC) - network fabric connecting all the components
>
> This driver supports VPU IP v2.7 integrated into Intel Meteor Lake
> client CPUs (14th generation).
>
> Module sources are at drivers/accel/ivpu and module name is
> "intel_vpu.ko".
>
> This patch includes only very besic functionality:
>   - module, PCI device and IRQ initialization
>   - register definitions and low level register manipulation functions
>   - SET/GET_PARAM ioctls
>   - power up without firmware
>
> Co-developed-by: Krystian Pradzynski <krystian.pradzynski at linux.intel.com>
> Signed-off-by: Krystian Pradzynski <krystian.pradzynski at linux.intel.com>
> Signed-off-by: Jacek Lawrynowicz <jacek.lawrynowicz at linux.intel.com>
> ---
>  MAINTAINERS                          |    9 +
>  drivers/Makefile                     |    1 +
>  drivers/accel/Kconfig                |    2 +
>  drivers/accel/Makefile               |    3 +
>  drivers/accel/ivpu/Kconfig           |   15 +
>  drivers/accel/ivpu/Makefile          |    8 +
>  drivers/accel/ivpu/TODO              |    7 +
>  drivers/accel/ivpu/ivpu_drv.c        |  359 +++++++++
>  drivers/accel/ivpu/ivpu_drv.h        |  162 ++++
>  drivers/accel/ivpu/ivpu_hw.h         |  170 +++++
>  drivers/accel/ivpu/ivpu_hw_mtl.c     | 1048 ++++++++++++++++++++++++++
>  drivers/accel/ivpu/ivpu_hw_mtl_reg.h |  280 +++++++
>  drivers/accel/ivpu/ivpu_hw_reg_io.h  |  115 +++
>  include/uapi/drm/ivpu_drm.h          |   95 +++
>  14 files changed, 2274 insertions(+)

Another thing I would like to ask you to do is to rename ivpu_drm.h to
ivpu_accel.h to make it clear this is an accel uapi file and not a
classic drm driver uapi file.
i.e. to make it clear it exposes the accel device char nodes, sysfs, etc.

But leave it in include/uapi/drm, because we might still need drm.h
down the road.

Thanks,
Oded


More information about the dri-devel mailing list