3 receive status queue, 3 receive status queue -16 – Cirrus Logic EP93xx User Manual

Page 318

Advertising
background image

9-16

DS785UM1

Copyright 2007 Cirrus Logic

1/10/100 Mbps Ethernet LAN Controller
EP93xx User’s Guide

9

9

9

9.2.3 Receive Status Queue

The receive status queue is used to pass receive status from the MAC to the Host. In
operation, the receive status queue is similar to the receive descriptor queue. It is a circular
queue in contiguous memory space. The location and size of the queue are set at
initialization by writing to the Receive Status Queue Base Address and the Receive Status
Queue Base Length registers. The base address must point to a word aligned memory
location. The length is set to the actual status queue length (in bytes) and should not exceed
64 Kbytes total. The number of status entries should be an integral power-of-two (2, 4, 8, 16,
etc.), or the Receive Descriptor Processor may not work properly, and the MAC/Ethernet may
stop receiving frames. The Current Address must be set to point to the first status entry to be
used. This would normally be the first entry (same value as the base address).

When the receive status queue initialization is complete, the Receive Status Enqueue
register is used by the Host to pass free status locations to the MAC. To simplify this process
the Host writes the number of additional free status locations available to the enqueue
register. The MAC adds the additional count to the previously available location to determine
the total number of available receive status entries. When the MAC writes status to the
queue, it subtracts the number written from this total. The current value of the total receive
status entries is available by reading the enqueue register.

No more than 255 status entries may be added in one write. If a number greater than this
needs to be written, the write should be broken up into more than one operation (that is, to
add 520 status entries: write 255, then write 255, finally write 10).

Advertising