EasyManua.ls Logo

Broadcom BCM5722 - And BCM5754 M Devices; Status Block; Status Block Format; Table 18: Status Block Format for BCM5787, BCM5787 M, BCM5906, BCM5906 M, BCM5754

Broadcom BCM5722
593 pages
Print Icon
To Next Page IconTo Next Page
To Next Page IconTo Next Page
To Previous Page IconTo Previous Page
To Previous Page IconTo Previous Page
Loading...
BCM5722 Programmer’s Guide
10/15/07
Broadcom Corporation
Page 53 Status Block Document 5722-PG101-R
STATUS BLOCK
The Status Block is another shared memory data structure that is located in host memory. The Status Block is 20 bytes in
length. Host software will need to allocate 20 bytes of non-paged memory space for the Status Block and set the Status
Block Host Address register to point to the host memory physical address reserved for this structure.
The controller will update the Status Block to host memory prior to a host coalescing interrupt or MSI. The frequency of these
Status Block updates is determined by the host coalescing logic (see “Host Coalescing Engine” on page 33). Using the
software configurable coalescing parameters, the device driver can optimize the frequency of status block updates for a
particular application or operating system.
The Status Block contains some of the Producer and Consumer indices for the rings described in “Descriptor Rings” on
page 42. These Producer and Consumer indices allow host software to know what the current status of the controller is
regarding its processing of the various send and receive rings. From information in the status block a software driver can
determine:
Whether the Status Block has been recently updated (via a bit in the status word).
Whether the Link State has changed (via a bit in the status word).
Whether the controller has recently received a packet and deposited that packet into host memory for a given ring (via
the Receive Return Ring Producer Indices).
Which host receive descriptors that controller has fetched, and it will consume when future packets are received (via the
Receive Producer Ring Consumer Indices).
Whether the controller has recently completed a transmit descriptor buffer DMA for a given ring (via the Send Ring
Consumer Indices).
STATUS BLOCK FORMAT
The status block format for BCM5787, BCM5787M, BCM5906, BCM5906M, BCM5754, and BCM5754M devices is shown
in Table 18.
Table 18: Status Block Format for BCM5787, BCM5787M, BCM5906, BCM5906M, BCM5754,
and BCM5754M Devices
Offset 31 16 15 0
0x00 Status Word
0x04 Status Tag
0x08 Receive Producer Ring Consumer Index
a
a. The Receive Standard Consumer Index is also accessible at 0x3C54.
Unused
0x0C Unused
0x10 Send BD Consumer Index
b
b. The Send BD Consumer Index is also accessible at 0x3CC0.
Receive Return BD Producer Index
c
c. The Receive Return BD Producer Index is also accessible at 0x3C80.

Table of Contents