AXI HDMI HDL

AXI HDMI HDL Linux Driver.

Supported IP Cores

This driver supports the ADV7511 HDL project

Description

The AXI HDMI HDL driver is the driver for the HDL graphics core which is used on various FPGA designs interfacing to the ADV7511. The driver is implemented as a DRM KMS driver.

Source Code

Status

Files

Adding Linux driver support

Kernel configuration

Configure kernel with make menuconfig (alternatively use make xconfig or make qconfig)

Note

The DRM AXI HDMI driver depends on CONFIG_DRM

Linux Kernel Configuration
    Device Drivers  --->
        Graphics support  --->
            <*> Direct Rendering Manager (XFree86 4.1.0 and higher DRI support)  --->
            ...
            <*> DRM Support for Analog Devices HDMI FPGA platforms

Devicetree configuration

Example platform device initialization

The AXI HDMI driver is a platform driver and can currently only be instantiated via device tree.

Required device-tree configuration:

  • compatible = "adi,axi-hdmi-tx-1.00.a".

  • reg: One AXI HDMI register range. The clock generator is a separate clock provider, not a second register range.

  • clocks: The pixel-clock provider.

  • dmas and dma-names = "video": The display DMA channel. Its controller must support interleaved transfers.

  • An output graph endpoint connected to the ADV7511 input endpoint, or the encoder-slave phandle pointing to the ADV7511 I2C device node, not to its I2C bus.

The optional adi,is-rgb property selects RGB handling. Supply addresses, clock and DMA references, interrupts and graph wiring from the actual board.

Driver testing

Using the framebuffer console

The driver can be tested using the Linux framebuffer console.

Enable framebuffer support in the kernel config:

Linux Kernel Configuration
    Device Drivers  --->
        Graphics support  --->
            ...
                        Console display driver support  --->
                        <*> Framebuffer Console support
                        ...

Using Xorg

The Xorg graphical environment can be used with driver either using xf86-video-fbdev or the xf86-video-modesetting Xorg module.

xf86-video-fbdev

The fbdev driver will bind to the device by default, if no other driver has been bound to the device. This usually means that running a Xorg server without any additional configuration changes will come up with the fbdev driver.

xf86-video-modesetting

The xf86-video-modesetting driver is a driver which has been written to take advantage of the new Kernel Mode Setting (KMS) API of the DRM layer. This allows to switch between different screen resolutions at runtime (using the Xservers xrandr interface) and adds plug-and-play support for monitors.

To enable the modesetting driver the following section has to be added to the Xorg config (/etc/X11/xorg.org).

Section "Device"
  Identifier "ADV7511 HDMI"
  Driver "modesetting"
EndSection

Others

Since the driver registers a Linux framebuffer device it is possible to use any application or toolkit which has support for it to display graphics on the HDMI output. This for example includes DirectFB, mplayer and SDL.

More Information

Need Help?