flags1 and flags2

The following flags are defined for flags1 (flags2 is currently not used):

If this flag is set, the operating system is to run with the Memory Management Unit (MMU) enabled.
Note: For this release of Neutrino, you should always specify a virtual system (by specifying the virtual= attribute in your buildfile, which then sets the STARTUP_HDR_FLAGS1_VIRTUAL flag).
The processor is big-endian. Processors should always examine this flag to check that the ENDIAN is right for them.
The image isn't compressed.
The image is compressed using libz (gzip).
The image is compressed with liblzo.
The image is compressed with libucl. This is the format chosen when using the [+compress] attribute in the mkifs build script.
Note: Currently, the startup-* programs are built to understand only the UCL compression method. By twiddling the SUPPORT_CMP_* macro definitions in startup/lib/uncompress.c, you can change to one of the other supported compression methods.

The STARTUP_HDR_FLAGS1_COMPRESS_* constants aren't really flags because they may set more than one bit; they're used as an enumeration of the types of compression.

Note that both flag flags1 and flags2 are single-byte; this ensures that they're endian-neutral.