How to use and build U-Boot on mx6sabresd:
----------------------------------

Currently there are three methods for booting mx6sabresd boards:

1. Booting via Normal U-Boot (u-boot.imx)

2. Booting via SPL (SPL and u-boot.img)

3. Booting via Falcon mode (SPL launches the kernel directly)


1. Booting via Normal U-Boot
----------------------------

$ make mx6qsabresd_defconfig (If you want to build for mx6qsabresd)

or

$ make mx6dlsabresd_defconfig (If you want to build for mx6dlsabresd)

$ make

This will generate the image called u-boot.imx.

- Flash the u-boot.imx binary into the SD card:

$ sudo dd if=u-boot.imx of=/dev/sdb bs=1K seek=1 && sync


2. Booting via SPL
------------------

Other method for building U-Boot on mx6qsabresd and mx6qpsabresd is
through SPL. In order to do so:

$ make mx6sabresd_spl_defconfig
$ make

This will generate the SPL image called SPL and the u-boot.img.

- Flash the SPL image into the SD card:

$ sudo dd if=SPL of=/dev/sdb bs=1K seek=1 && sync

- Flash the u-boot.img image into the SD card:

$ sudo dd if=u-boot.img of=/dev/sdbbs=1K seek=69 && sync


3. Booting via Falcon mode
--------------------------

$ make mx6sabresd_spl_defconfig
$ make

This will generate the SPL image called SPL and the u-boot.img.

- Flash the SPL image into the SD card:

$ sudo dd if=SPL of=/dev/sdb bs=1K seek=1 oflag=sync status=none && sync

- Flash the u-boot.img image into the SD card:

$ sudo dd if=u-boot.img of=/dev/sdbbs=1K seek=69 oflag=sync status=none && sync

Create a partition for root file system and extract it there:

$ sudo tar xvf rootfs.tar.gz -C /media/root

The SD card must have enough space for raw "args" and "kernel".
To configure Falcon mode for the first time, on U-Boot do the following commands:

- Setup the IP server:

# setenv serverip <server_ip_address>

- Download dtb file:

# dhcp ${fdt_addr} imx6q-sabresd.dtb

- Download kernel image:

# dhcp ${loadaddr} uImage

- Write kernel at 2MB offset:

# mmc write ${loadaddr} 0x1000 0x4000

- Setup kernel bootargs:

# setenv bootargs "console=ttymxc0,115200 root=/dev/mmcblk1p1 rootfstype=ext4 rootwait quiet rw"

- Prepare args:

# spl export fdt ${loadaddr} - ${fdt_addr}

- Write args 1MB data (0x800 sectors) to 1MB offset (0x800 sectors)

# mmc write 18000000 0x800 0x800

- Press KEY_VOL_UP key, power up the board and then SPL binary will
launch the kernel directly.
