Boundary Devices SABRE Lite (``sabrelite``)
===========================================

Boundary Devices SABRE Lite i.MX6 Development Board is a low-cost development
platform featuring the powerful Freescale / NXP Semiconductor's i.MX 6 Quad
Applications Processor.

Supported devices
-----------------

The SABRE Lite machine supports the following devices:

 * Up to 4 Cortex-A9 cores
 * Generic Interrupt Controller
 * 1 Clock Controller Module
 * 1 System Reset Controller
 * 5 UARTs
 * 2 EPIC timers
 * 1 GPT timer
 * 2 Watchdog timers
 * 1 FEC Ethernet controller
 * 3 I2C controllers
 * 7 GPIO controllers
 * 4 SDHC storage controllers
 * 4 USB 2.0 host controllers
 * 5 ECSPI controllers
 * 1 SST 25VF016B flash

Please note above list is a complete superset the QEMU SABRE Lite machine can
support. For a normal use case, a device tree blob that represents a real world
SABRE Lite board, only exposes a subset of devices to the guest software.

Boot options
------------

The SABRE Lite machine can start using the standard -kernel functionality
for loading a Linux kernel, U-Boot bootloader or ELF executable.

Running Linux kernel
--------------------

Linux mainline v5.10 release is tested at the time of writing. To build a Linux
mainline kernel that can be booted by the SABRE Lite machine, simply configure
the kernel using the imx_v6_v7_defconfig configuration:

.. code-block:: bash

  $ export ARCH=arm
  $ export CROSS_COMPILE=arm-linux-gnueabihf-
  $ make imx_v6_v7_defconfig
  $ make

To boot the newly built Linux kernel in QEMU with the SABRE Lite machine, use:

.. code-block:: bash

  $ qemu-system-arm -M sabrelite -smp 4 -m 1G \
      -display none -serial null -serial stdio \
      -kernel arch/arm/boot/zImage \
      -dtb arch/arm/boot/dts/imx6q-sabrelite.dtb \
      -initrd /path/to/rootfs.ext4 \
      -append "root=/dev/ram"

Running U-Boot
--------------

U-Boot mainline v2020.10 release is tested at the time of writing. To build a
U-Boot mainline bootloader that can be booted by the SABRE Lite machine, use
the mx6qsabrelite_defconfig with similar commands as described above for Linux:

.. code-block:: bash

  $ export CROSS_COMPILE=arm-linux-gnueabihf-
  $ make mx6qsabrelite_defconfig

Note we need to adjust settings by:

.. code-block:: bash

  $ make menuconfig

then manually select the following configuration in U-Boot:

  Device Tree Control > Provider of DTB for DT Control > Embedded DTB

To start U-Boot using the SABRE Lite machine, provide the u-boot binary to
the -kernel argument, along with an SD card image with rootfs:

.. code-block:: bash

  $ qemu-system-arm -M sabrelite -smp 4 -m 1G \
      -display none -serial null -serial stdio \
      -kernel u-boot

The following example shows booting Linux kernel from dhcp, and uses the
rootfs on an SD card. This requires some additional command line parameters
for QEMU:

.. code-block:: none

  -nic user,tftp=/path/to/kernel/zImage \
  -drive file=sdcard.img,id=rootfs -device sd-card,drive=rootfs

The directory for the built-in TFTP server should also contain the device tree
blob of the SABRE Lite board. The sample SD card image was populated with the
root file system with one single partition. You may adjust the kernel "root="
boot parameter accordingly.

After U-Boot boots, type the following commands in the U-Boot command shell to
boot the Linux kernel:

.. code-block:: none

  => setenv ethaddr 00:11:22:33:44:55
  => setenv bootfile zImage
  => dhcp
  => tftpboot 14000000 imx6q-sabrelite.dtb
  => setenv bootargs root=/dev/mmcblk3p1
  => bootz 12000000 - 14000000
