*******************************
Freescale i.MX6 Sabre SD boards
*******************************

This file documents the Buildroot support for the Freescale i.MX6 Sabre SD
boards based on i.MX6Q, i.MX6DL and iMX6QP.

Thanks to the SPL support in U-Boot it is possible to run a single
sdcard.img in all i.MX6 Sabre SD board variants.

This configuration uses U-Boot mainline and kernel mainline.

Build
=====

First, configure Buildroot for the i.MX6 Sabre SD board:

  make imx6-sabresd_defconfig

Build all components:

  make

You will find the following files in output/images/ :
  - imx6q-sabresd.dtb
  - imx6dl-sabresd.dtb
  - imx6qp-sabresd.dtb
  - rootfs.ext4
  - rootfs.tar
  - sdcard.img
  - u-boot.imx
  - zImage

Create a bootable SD card
=========================

To determine the device associated to the SD card have a look in the
/proc/partitions file:

  cat /proc/partitions

Buildroot prepares a bootable "sdcard.img" image in the output/images/
directory, ready to be dumped on a SD card. Launch the following
command as root:

  dd if=output/images/sdcard.img of=/dev/<your-sd-device>

*** WARNING! This will destroy all the card content. Use with care! ***

For details about the medium image layout, see the definition in
board/freescale/common/imx/genimage.cfg.template.

Boot the i.MX6 Sabre SD board
=============================

To boot your newly created system:
- insert the SD card in the SD3 slot of the board (close to the HDMI connector);
- put a micro USB cable into the Debug USB Port and connect using a terminal
  emulator at 115200 bps, 8n1;
- power on the board.

Testing graphics on the i.MX6 Sabre SD board
============================================

The imx6-sabresd_qt5_defconfig allows to quickly test the graphics
capabilities of i.MX6 using the opensource Etnaviv graphics stack
and kernel mainline.

In order to build it:

make imx6-sabresd_qt5_defconfig
make

Then flash the SD card as explained above.

Running kmscube application:

# kmscube

Running Qt5 Cinematic Demo:

# export QT_QPA_EGLFS_KMS_CONFIG=/root/sabresd.json
# export QT_QPA_EGLFS_ALWAYS_SET_MODE=1
# /usr/share/Qt5/CinematicExperience/Qt5_CinematicExperience

Running gl2mark benchmark:

# glmark2-es2-drm

Testing video playback on the i.MX6 Sabre SD board
==================================================

As the mx6sabresd has two display outputs (LVDS and HDMI), it is necessary to
know what is the connector that corresponds to the HDMI output.

This information can be found by running:

# modetest

And search for the HDMI connector number. In our case it shows up as 37.

In the mx6sabresd prompt run the following Gstreamer pipeline:

# gst-launch-1.0 filesrc location=/root/trailer_1080p_h264_mp3.avi ! avidemux ! \
h264parse ! v4l2video1dec capture-io-mode=dmabuf ! kmssink connector-id=37    \
name=imx-drm sync=0

(The video used on this example was retrieved from:
http://linode.boundarydevices.com/videos/trailer_1080p_h264_mp3.avi)

Enjoy!
