Re: Allegro Video IP VCU Info

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Pierluigi,

On Tue, 10 Dec 2024 12:14:03 +0100, PN888 wrote:
> it is possible to find also any example of utilization of the the
> driver and how to initialize hardware and encode something for the
> hardware in the object?

Im not sure what you mean by example how to use the driver.

The driver is a V4L2 stateful encoder driver that follows the specified
stateful encoder uAPI [0]. For example, it can be used with the
v4l2videoenc element (the element will be called v4l2h264enc for the
h.264 encoder) of the video4linux2 Plugin from gst-plugins-good.

The other part is the bringup of the driver on your board. For that, you
need to prepare and load an FPGA bitstream that contains support for the
video encoder. (Or you may use a demo bitstream that has been published
with the official releases.) You further have to describe the encoder IP
core using the device tree binding [1]. This description really depends
on the configuration of your bitstream. The binding documentation
contains an example which may work with the demo bitstream. Finally you
have to put the (proprietary) encoder firmware [2] into the firmware
directory to allow the driver to find it and load it to the controller
of the encoder.

I agree that this is quite a complex setup, but that's caused by the
dependency on the bitstream and the firmware, which I unfortunately
cannot provide.

> 
> It is possible to find documentation or notes where you have
> documented registers and operation of this hardware? A lot of things
> are poorly or not at all documented on official documentation.

There are the register definitions in the driver [3], which are pretty
much all registers that I know of.

The more interesting and complex part is the mailbox interface to the
firmware. The mails for that interface are encoded and decoded by the
driver [4], but the mail format is not documented and may differ between
firmware versions.

Do you have specific questions regarding the operation of the encoder or
something that is not working for you?

Michael

[0] https://www.kernel.org/doc/html/latest/userspace-api/media/v4l/dev-encoder.html
[1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/devicetree/bindings/media/allegro,al5e.yaml
[2] https://github.com/Xilinx/vcu-firmware/tree/master/1.0.0/lib/firmware
[3] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/media/platform/allegro-dvt/allegro-core.c#n55
[4] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/media/platform/allegro-dvt/allegro-mail.c




[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]

  Powered by Linux