ARMADA(4)

NAME
armada - Marvell Armada 510 and Freescale iMX6 Xorg driver

SYNOPSIS
Section "Device"
  Identifier "devname"
  Driver "armada"
  ...
EndSection

DESCRIPTION
armada is an Xorg driver for Marvell Armada and Freescale iMX6 SoCs. This is kernel mode setting front end driver, with modular acceleration backends. The following framebuffer depths are supported: 8, 15, 16, 24. All visual types are supported for depth 8, and TrueColor visual is supported for the other depths. The driver has preliminary support for the Direct Rendering Infrastructure (DRI) version 2 and version 3. Multi-head configurations are supported.

Acceleration support is dependent on a separate acceleration module. See the "GPU ACCELERATION MODULES" section below for additional information.

Support for video overlay is provided, supporting I420, YV12, I422, YUY2, UYVY, VYUY and YV16 formats, dependent on support from the kernel DRM driver. The common I420 and YV12 formats are converted on the fly by this driver to I422 and YV16 for the hardware. Support is also provided for video overlay using an XVBO format, which can be used to pass a DRM buffer handle to the video overlay backend.

SUPPORTED HARDWARE
The armada driver currently supports the Marvell Armada 510 LCD controller(s) and the Freescale iMX6 IPU.

armada communicates with the Linux Kernel Direct Rendering Manager (drm) layer to control and arbitrate access to the hardware. Kernel drm support is required.

Other hardware which provides a Linux Kernel drm driver should also work with this driver.

SUPPORTED GPU HARDWARE
Several GPU acceleration methods are supported by the DDX driver. Each method is contained within its own module. Details are listed below.

GPU ACCELERATION MODULES
Two GPU acceleration modules are currently supported.

  etnaviv_gpu
The etnaviv_gpu module provides 2D acceleration with the Vivante 2D PE1.0 and PE2.0 hardware (eg, GC600, GC320), supporting framebuffers with depths of 15, 16, 24.

Xrender acceleration is provided for most formats with a depth of 15, 16, 24, 32, and on PE2.0 hardware, A8 alpha-only format. Full glyph compositing is also supported with PE2.0 hardware, however glyph caching and accelerated assembling of glyphs for final blend is supported with all hardware.

XV textured overlay is also provided, with support for I420, YV12, UYVY and YUY2 formatted images.

  vivante_gpu
The vivante_gpu module provides 2D acceleration with the Vivante 2D PE1.0 and PE2.0 hardware, supporting framebuffers with depths of 15, 16, 24 but is only usable with the armada kernel DRM driver.

CONFIGURATION DETAILS
Please refer to xorg.conf(5) for general configuration details. This section only covers configuration details specific to this driver.

For this driver it is not required to specify modes in the screen section of the config file. The armada driver will request video mode information from the Linux Kernel drm layer.

The VideoRAM option is ignored by this driver; video memory is managed by the Linux Kernel drm layer using system memory.

The following driver Options are supported:

Option "AccelModule" "filename"
    Force the usage of an acceleration module.

    Default: try the etnadrm_gpu drivers in turn, selecting the first which initialises.

Option "Hotplug" "boolean"
    This option controls whether the driver automatically notifies when monitors are connected or disconnected.

    Default: enabled.

Option "HWcursor" "boolean"
    Enable or disable use of the hardware cursor.

    Default: disabled.

Option "UseGPU" "boolean"
    Enable or disable use of a GPU module for acceleration and textured XV support.

    Default: enabled.

Option "XvAccel" "boolean"
    Enable or disable the X Video backend.

    Default: enabled.

Option "XvDisablePrimary" "boolean"
    Allow the X Video backend to disable the primary plane when X Video image is displayed at full screen.

    Note: Some kernel drivers may not fully support this (eg, the kernel driver does a full modeset when restoring the primary plane, causing the screen to momentarily blank.) This option should be disabled for such kernel drivers, or the kernel driver updated to avoid such behaviour.

    Default: enabled.

Option "XvPreferOverlay" "boolean"
    Make the hardware overlay the first XV adapter. Disabling this option makes any GPU provided textured overlay the first XV adapter.

    Note: iMX hardware does not provide scaling for XV overlay, and this option should be disabled on such systems to prefer textured overlay instead.

    Default: Overlay is preferred.

XV OVERLAY VIDEO ATTRIBUTES
The following XV attributes are supported by the XV overlay video driver.

  XV_AUTOPAINT_COLORKEY
XV_AUTOPAINT_COLORKEY is used to control whether driver automatically fills the overlay window with the overlay color key. It is a Boolean attribute, with values 0 (never paint color key) and 1 (always paint color key). Default: 1.

  XV_COLORKEY
XV_COLORKEY sets the color used for the overlay color key, in R8G8B8 format. Default: 0x0101fe.

  XV_PIPE
XV_PIPE is used to control the CRTC to be used for overlay. A value of -1 allows the driver to select the appropriate CRTC based upon the position of the overlay window. Other values select an explicit CRTC. Default: -1.

  XV_BRIGHTNESS

  XV_CONTRAST

  XV_SATURATION
These options can be used to adjust the overlaid picture brightness, contrast and saturation levels. These options are dependent on their presence in the Linux kernel drm driver.

  XV_ITURBT_709
XV_ITURBT_709 sets the colorimetry for YUV format video. A value of 0 selects ITU-R BT.601 colorspace. A value of 1 selects ITU-R BT.709 colorspace. This option is dependent on the Linux kernel drm driver.

XV TEXTURED VIDEO ATTRIBUTES
Textured overlay attributes are dependent on the GPU acceleration module.

  XV_PIPE
XV_PIPE is used to select which CRTC is used to synchronize the screen update with the screen scanout to minimise tearing. A value of -1 allows the driver to select the appropriate CRTC based upon the position of the overlay window. Other vlaues select an explicit CRTC. Default: -1.

  XV_SYNC_TO_VBLANK
XV_SYNC_TO_VBLANK is used to control whether the textured adapter synchronises with the screen scanout to minimise tearing. It is a Boolean attribute with values 0 (never sync) and 1 (always sync.) Default: 1.

REPORTING BUGS
The xf86-video-armada driver is a separately maintained driver, and bugs should be reported to the author.

SEE ALSO
Xorg(1), xorg.conf(5), xorgconfig(1), Xserver(1), X(7)

AUTHORS
Authors include: Gerd Knorr, Michel Dänzer, Geert Uytterhoeven, Russell King.