Driver - 2023.1 English

H.264/H.265 Video Codec Unit v1.2 Solutions LogiCORE IP Product Guide (PG252)

Document ID
PG252
Release Date
2023-05-16
Version
2023.1 English

There are multiple VCU modules. The VCU Init(xlnx_vcu) which is part of Linux Kernel and which handles PL Registers such as VCU Gasket and the clocking. The other three kernel drivers (al5e, al5d, allegro) together are the core VCU driver. The decoder driver is called al5d and encoder driver is called al5e. The common driver is called allegro.

The allegro driver has the following responsibilities:

  • Loading the MCU firmware
  • Initiating the MCU boot sequence.
  • Writing mailbox messages into memory shared between APU and MCU.
  • Providing notification of new mailbox messages.

The VCU Init driver source code is at https://github.com/Xilinx/linux-xlnx/blob/xlnx_rebase_v4.19/drivers/soc/xilinx/

The VCU modules (allegro, al5e, al5d) source code is at: https://github.com/Xilinx/vcu-modules

All VCU driver modules (xlnx_vcu, allegro, al5e, al5d) are compiled as runtime kernel modules and are loaded once kernel boot-up. Modules load in the following sequence.

  1. The VCU Init driver is loaded (xlnx_vcu).
  2. The VCU Init driver loads the Allegro modules.
  3. Allegro modules are loaded in the following order:
    1. allegro
    2. al5e
    3. al5d

    You can use the lsmod command to verify whether the VCU modules were loaded properly. To load the modules, use the modprobe<driver name> command and load the drivers in the above mentioned sequence.