U-Boot is used on this device as the bootloader to launch the full operating system. When the i.MX28 processor starts, it loads U-Boot from the on-board SPI flash. This allows creation of a custom boot image on either the SD, eMMC, NFS, or USB. U-Boot is a general purpose bootloader that is capable of booting into common Linux distributions, Android, Windows, or custom software OSes.
On a normal boot the output will be similar to this:
HTLLCLLC U-Boot 2014.10-g4d36657 (Dec 07 2016 - 12:19:27) CPU: Freescale i.MX28 rev1.2 at 454 MHz BOOT: SSP SPI #2, master, 3V3 NOR I2C: ready SPI: ready DRAM: 256 MiB MMC: MXS MMC: 0, MXS MMC: 1 SF: Detected IS25LQ016B with page size 256 Bytes, erase size 4 KiB, total 2 MiB In: serial Out: serial Err: serial Net: FEC0 [PRIME] NO CHRG jumper is set, not waiting for SuperCaps to charge Booting from the SD Card ... ** File not found /boot/boot.ub ** 3336928 bytes read in 1245 ms (2.6 MiB/s) 20378 bytes read in 265 ms (74.2 KiB/s) ## Booting kernel from Legacy Image at 42000000 ... Image Name: Linux-3.14.28-g1a4251b Image Type: ARM Linux Kernel Image (uncompressed) Data Size: 3336864 Bytes = 3.2 MiB Load Address: 40008000 Entry Point: 40008000 Verifying Checksum ... OK ## Flattened Device Tree blob at 41000000 Booting using the fdt blob at 0x41000000 Loading Kernel Image ... OK Loading Device Tree to 4fb4b000, end 4fb52f99 ... OK Starting kernel ...