Here is a quick summary at booting u-boot on the i.MX 6 sabre sd platform.
This assumes you already have a "working" Linux development environment with some ARM cross-compilers at hand (e.g. Debian + Emdebian).
Get u-boot sources
We will use git to fetch the U-Boot sources:
$ git clone git://git.denx.de/u-boot.git
This should create a u-boot directory with all the latest sources.
Note that for more stability you might want to checkout a release instead of the latest version; to do so, list the available release tags with e.g. git tag -l 'v2*', and git checkout <the-desired-tag>.
Compile
Assuming your cross compiler is called e.g. arm-linux-gnueabihf-gcc, you can compile by doing:
$ cd u-boot
$ export CROSS_COMPILE=arm-linux-gnueabihf-
$ make mx6qsabresd_config
$ make
This should create a number of files, including u-boot.imx.
Put on SD
U-boot should reside at offset 1024B of your SD card. To put it there, do:
$ dd if=u-boot.imx of=/dev/<your-sd-card> bs=1k seek=1
$ sync
Your SD card device is typically something in /dev/sd<X> or /dev/mmcblk<X>. Note that you need write permissions on the SD card for the command to succeed, so you might need to su - as root, or use sudo, or do a chmod a+w as root on the SD card device node to grant permissions to users.
Boot!
Your SD card is ready for booting. Insert it in the SD card slot of your i.MX6 sabre sd platform, connect to the USB to UART port with a serial terminal set to 115200 baud, no parity, 8bit data, power up the platform and you should see something like:
U-Boot 2013.07-rc1-00014-g74771f4 (Jun 20 2013 - 19:05:09)
CPU: Freescale i.MX6Q rev1.2 at 792 MHz
Reset cause: POR
Board: MX6Q-SabreSD
DRAM: 1 GiB
MMC: FSL_SDHC: 0, FSL_SDHC: 1, FSL_SDHC: 2
*** Warning - bad CRC, using default environment
In: serial
Out: serial
Err: serial
Net: FEC [PRIME]
Warning: FEC using MAC address from net device
Hit any key to stop autoboot: 0
Enjoy!
See also...
- u-boot most common mission is to boot the Linux kernel. See this post for details on how to do it.
- If you plan to compile u-boot often, you might want to use a C compiler cache; see this post.
- Running a Script in U-boot
- u-boot on the Vybrid tower board in a few commands