Intel NETWORK PROCESSOR IXP2800 User Manual

Page 251

Advertising
background image

Hardware Reference Manual

251

Intel

®

IXP2800 Network Processor

Media and Switch Fabric Interface

Section 8.2.7.1

). The SPI-4 Control Word Type, EOPS, SOP, and ADR fields are placed

into a temporary status register. The Byte_Count field of the element status is set to 0x0.

As each Data Word is received, the data is written into the element, starting at offset 0x0

in the element, and Byte_Count is updated. Subsequent Data transfers are placed at higher
offsets (0x2, 0x4, etc.). The 16-bit Checksum Accumulator is also updated with the 1’s-

complement addition of each byte pair. (Note that, if the data transfer has an odd number

of bytes, a byte of zeros is appended as the more significant byte, before the checksum
addition is done.)

If a Control Word is received before the element is full — the element is marked valid. EOP

for the element is taken from the value of the EOPS field (see

Table 83

) from the just-received

Control Word. If the EOPS field from the just-received Control Word indicates that EOP is

asserted, then the Byte_Count for the element is decremented by 0 or 1, according to the EOPS

field (i.e., decrement by 0 if two bytes are valid, and by 1 if one byte is valid). If the EOPS
field indicates Abort, Byte_Count is rounded up to the next multiple of 4

.

The temporary

status register value is put into Full_Element_List.

If the element becomes full before receipt of another Control Word — the element is marked
as pre-valid. The eventual status is based on the next SPI-4 transfer(s).

If the next transfer is a Data Word — the previous element is changed from pre-valid to valid.

The EOP for the element is 0. The temporary status register value is put into
Full_Element_List. Another available RBUF element is allocated, and the new data is written

into it. The temporary status for the new element gets the same ADR field of the previous

element, and SOP is set to 0. The Status word Byte_Count field is set to 0x2, and will be
incremented as more Data Words arrive. The Checksum Accumulator is cleared.

If the next transfer is a Control Word — the previous element is changed from pre-valid to

valid. EOP for the element is taken from the value of the EOPS field from the just-received
Control Word. If the EOPS field from the just-received Control Word indicates that EOP is

asserted, then the Byte_Count for the element is decremented by 0 or 1, according to the EOPS

field (i.e., decrement by 0 if two bytes valid, and by 1 if one byte is valid). The temporary
status register value is put into Full_Element_List.
Data received from the bus is placed into the element lowest offset first, in big-endian order

(i.e., with the first byte received in the most significant byte of the 32-bit word, etc.).

Advertising