
Development Tools User’s Guide
207
Intel
®
IXP2400/IXP2800 Network Processors
Linker
6.7
Microcode Object File (UOF) Format
The Microcode Object File consists of a file-header and one of more sections called file-chunks.
Each fileChunk is identified by a unique ID in the fileChunkHdr section of the fileHdr. A typical
UOF will consisted of a UOF_OBJS file-chunk, and an optional DBG_OBJS file-chunk. The UOF
data structures are described in uof.h, and dbg_uof.h.
6.7.1
File Header
The file header is mandatory and must be the first entry in the file. It is used to identify the file
format, and to locate file-chunks within the file. This header consists of a fixed 18-byte section of
type uof_fileHdr_T, and a variable section of type uof_fileChunkHdr_T. The variable section must
consist of at least MaxChunks of uof_fileChunkHdr_T and immediately precedes the fixed section
in the file.
6.7.2
File Chunk Header
6.7.2.1
UOF Object Header
This object header describes the IXP system that the UOF can execute on, and it contains the
locations of the object-chunks within the file. This header, of type uof_objHdr_T, must be at the
beginning of the object and precedes at least
MaxChunks of object-chunk-header
(uof_chunkHdr_T).
fileId
2 bytes: File id and endian indicator.
reserved1
2 bytes: Reserved for future use.
minVer
1 byte: File format minor version.
majVer
1 byte: File format major version.
reserved2
2 bytes: Reserved for future use.
maxChunks
2 bytes: Maximum possible chunks that the file can contain—specify at the
creation of the file.
numChunks
2 bytes: Number of chunks currently being used.
chunkId
8 bytes: A unique value identifying the chunk. Currently the values are the literal
UOF_OBJS,
or
DBG_OBJS
checksum
4 bytes: CRC checksum of chunk.
offset
4 byte: Offset into the file where the chunk begins.
size
4 bytes: Size of the chunk.