Intel NETWORK PROCESSOR IXP2800 User Manual

Page 265

Advertising
background image

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

Table 95

).

Example 36. TBUF Prepend and Payload

0

1

2

3

4

5

6

7

8

9

A

B

C

D

E

F

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

Advertising