U-Boot operates on "image" files which can be basically anything,
preceeded by a special header; see the definitions in
include/image.h for details; basically, the header defines the
following image properties:
- Target Operating System (Provisions for OpenBSD, NetBSD, FreeBSD,
4.4BSD, Linux, SVR4, Esix, Solaris, Irix, SCO, Dell, NCR,
LynxOS, pSOS, QNX, RTEMS, U-Boot, ARTOS, Unity OS, Integrity;
Currently supported: Linux, NetBSD, VxWorks,
QNX, RTEMS, ARTOS, Unity OS, Integrity).
- Target CPU Architecture (Provisions for Alpha,
ARM, AVR32, BlackFin,
IA64,
M68K, Microblaze, MIPS, MIPS64, NIOS, NIOS2, Power Architecture®,
IBM S390,
SuperH, Sparc, Sparc 64 Bit, Intel x86;
Currently supported:
ARM, AVR32, BlackFin,
M68K, Microblaze, MIPS, MIPS64, NIOS, NIOS2, Power Architecture®,
SuperH, Sparc, Sparc 64 Bit, Intel x86).
- Currently supported image compression types: none, gzip, bzip2, lzma, lzo, lz4.
The header is marked by a special Magic Number, and both the header
and the data portions of the image are secured against corruption by
CRC32 checksums.