linux-media.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/3] Add ZynqMP VCU/Allegro DVT H.264 encoder driver
@ 2019-01-09 11:30 Michael Tretter
  2019-01-09 11:30 ` [PATCH 1/3] media: dt-bindings: media: document allegro-dvt bindings Michael Tretter
                   ` (2 more replies)
  0 siblings, 3 replies; 7+ messages in thread
From: Michael Tretter @ 2019-01-09 11:30 UTC (permalink / raw)
  To: linux-media, devicetree; +Cc: kernel, robh+dt, mchehab, tfiga, Michael Tretter

This series adds support for the Allegro DVT H.264 encoder found in the EV
family of the Xilinx ZynqMP platform.

The encoder is part of the ZynqMP VCU (video codec unit), which supports
encoding and decoding of H.264 and H.265. I am planning to support decoding
and H.265 as well in this driver.

The codec engines are separate hard IP cores in the FPGA of the ZynqMP and
each engine is controlled by a microcontroller (MCU). Each MCU executes code
in its own memory mapped SRAM. This SRAM also contains mailboxes that the
driver uses to exchange command and status messages with the MCU.

Encoder and decoder share an interrupt that is triggered whenever a message is
available in one of the mailboxes. Each MCU provides an interrupt status
register in its own register space.

I would appreciate feedback to the device tree bindings, the overall
architecture of the driver and if there are any major issues that I need to
address.

There are several things already on my own TODO list:

- The driver still contains various hard coded values and only works with a
  resolution of 144x144. I am working on enabling more resolutions and
  actually calculating the hard-coded values.

- The driver also only works with the vcu-firmware release 2018.2 [0]. The
  2018.3 release uses a different mailbox size, which needs to be reflected in
  the driver.

- There is the xlnx-vcu driver for managing the clocks via the FPGA glue code.
  Right now, the allegro driver does not interact with the driver to configure
  the clocks.

I ran v4l2-compliance without failures on the driver, but I think adding the
test results right now only distracts from more important open issues in the
driver.

Michael

[0] https://github.com/Xilinx/vcu-firmware/tree/xilinx-v2018.2

Michael Tretter (3):
  media: dt-bindings: media: document allegro-dvt bindings
  [media] allegro: add Allegro DVT video IP core driver
  [media] allegro: add SPS/PPS nal unit writer

 .../devicetree/bindings/media/allegro.txt     |   35 +
 MAINTAINERS                                   |    6 +
 drivers/staging/media/Kconfig                 |    2 +
 drivers/staging/media/Makefile                |    1 +
 drivers/staging/media/allegro-dvt/Kconfig     |    6 +
 drivers/staging/media/allegro-dvt/Makefile    |    6 +
 .../staging/media/allegro-dvt/allegro-core.c  | 2425 +++++++++++++++++
 drivers/staging/media/allegro-dvt/nal-h264.c  | 1278 +++++++++
 drivers/staging/media/allegro-dvt/nal-h264.h  |  188 ++
 9 files changed, 3947 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/media/allegro.txt
 create mode 100644 drivers/staging/media/allegro-dvt/Kconfig
 create mode 100644 drivers/staging/media/allegro-dvt/Makefile
 create mode 100644 drivers/staging/media/allegro-dvt/allegro-core.c
 create mode 100644 drivers/staging/media/allegro-dvt/nal-h264.c
 create mode 100644 drivers/staging/media/allegro-dvt/nal-h264.h

-- 
2.19.1


^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2019-01-10 20:57 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-01-09 11:30 [PATCH 0/3] Add ZynqMP VCU/Allegro DVT H.264 encoder driver Michael Tretter
2019-01-09 11:30 ` [PATCH 1/3] media: dt-bindings: media: document allegro-dvt bindings Michael Tretter
2019-01-09 11:30 ` [PATCH 2/3] [media] allegro: add Allegro DVT video IP core driver Michael Tretter
2019-01-10  6:00   ` kbuild test robot
2019-01-10 19:49   ` kbuild test robot
2019-01-09 11:30 ` [PATCH 3/3] [media] allegro: add SPS/PPS nal unit writer Michael Tretter
2019-01-10 20:56   ` kbuild test robot

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).