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, ARTOS, Unity OS;
Currently supported: Linux, NetBSD, Trash.VxWorks, QNX, RTEMS, ARTOS, Unity OS).
- Target CPU Architecture (Provisions for Alpha, ARM, Intel x86,
IA64, MIPS, MIPS, PowerPC, IBM S390, SuperH, Sparc, Sparc 64 Bit, M68K, NIOS;
Currently supported: ARM, PowerPC, MIPS, MIPS64, M68K, NIOS).
- Compression Type (Provisions for uncompressed, gzip, bzip2; Currently
supported: uncompressed, gzip, bzip2).
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.