Hardware Reference Manual 265
Intel® IXP2800 Network Processor
Media and Switch Fabric Interface
Payload Offset — Number of bytes to skip from the last 64-bit word of the Prepend to the start of
Payload. The absolute byte number of the first byte of Payload in the element is:
((Prepend Offset + Prepend Length + 0x7) && 0xF8) + Payload Offset.
Payload Length — Number of bytes of Payload.
The sum of Prepend Length, Payload length, and any gaps in between them (((prepend_offset +
prepend_length + 7) & 0xF8) + payload_offset + payload_length) must be no greater than the
number of bytes in the element. Typically, the Prepend is computed by a Microengine and written
into the TBUF by msf[write] and the Payload will be written by dram[tbuf_wr]. These two
operations can be done in either order; the microcode is responsible for making sure the element is
not marked valid to transmit until all data is in the element (see Section 8.3.3).
Example 36 illustrates the usage of the parameters. The element in Example 36 is shown as 8 bytes
wide because the smallest unit that can be moved into the element is 8 bytes. In Example 36, bytes
to be transmitted are shown in black (the offsets are byte numbers); bytes in gray are written into
TBUF (because the writes always write 8 bytes), but are not transmitted.
Prepend Offset = 6 (bytes 0x0 — 0x5 are not transmitted).
Prepend Length = 16 (bytes 0x6 — 0x15 are transmitted).
Payload Offset = 7 (bytes 0x16 — 0x1E are not transmitted). The Payload starts in the next 8-byte
row (i.e., the next “empty” row above where the Prepend stops), even if there is room in the last
row containing Prepend information. This is done because the TBUF does not have byte write
capability, and therefore would not merge the msf[write] and dram[tbuf_wr]. The software
computing the Payload Offset only needs to know how many bytes of the payload that were put
into DRAM need to be removed.
Payload Length = 33 (bytes 0x1F through 0x3F are transmitted).
The transmit logic will send the valid bytes onto TDAT correctly aligned and with no gaps. The
protocol transmitted, SPI-4 or CSIX (and the value of the TPROT output) are based on which
partition of TBUF the data was placed (see Table95).
Example 36. TBUF Prepend and Payload
0 1 2 3 4 5 67
89ABCDEF
10 11 12 13 14 15 16 17
18 19 1A 1B 1C 1D 1E 1F
20 21 22 23 24 25 26 27
28 29 2A 2B 2C 2D 2E 2F
30 31 32 33 34 35 36 37
38 39 3A 3B 3C 3D 3E 3F