High Performance Two Port 10/100 Managed Ethernet Switch with 32-Bit Non-PCI CPU Interface
Datasheet
SMSC LAN9312
121
Revision 1.4 (08-19-08)
DATASHEET
reception, the data must be moved into the RX FIFOs before the host can access the data. For TX
operations, the MIL operates in store-and-forward mode and will queue an entire frame before
beginning transmission.
As space in the TX MIL FIFO frees, data is moved into it from the TX Data FIFO. Depending on the
size of the frames to be transmitted, the Host MAC can hold up to two Ethernet frames. This is in
addition to any TX data that may be queued in the TX Data FIFO.
Conversely, as data is received, it is moved from the Host MAC to the RX MIL FIFO, and then into
the RX Data FIFO. When the RX Data FIFO fills up, data will continue to collect in the RX MIL FIFO.
If the RX MIL FIFO fills up and overruns, subsequent RX frames will be lost until room is made in the
RX Data FIFO. For each frame of data that is lost, the
Host MAC RX Dropped Frames Counter
is incremented.
RX and TX MIL FIFO levels are not visible to the host processor and operate independent of the
TX/RX FIFOs. FIFO levels set for the TX/RX Data and Status FIFOs do not take into consideration the
MIL FIFOs.
9.7.3
FIFO Memory Allocation Configuration
TX and RX FIFO space is configurable through the
Hardware Configuration Register (HW_CFG)
. The
user must select the FIFO allocation by setting the
field in the
Configuration Register (HW_CFG)
. The TX_FIF_SZ field selects the total allocation for the TX data
path, including the TX Status FIFO size. The TX Status FIFO size is fixed at 512 Bytes (128 TX Status
DWORDs). The TX Status FIFO length is subtracted from the total TX FIFO size with the remainder
being the TX Data FIFO Size. The minimum size of the TX FIFOs is 2KB (TX Data and TX Status
FIFOs combined). Note that TX Data FIFO space includes both commands and payload data.
RX FIFO Size is the remainder of the unallocated FIFO space (16384 bytes – TX FIFO Size). The RX
Status FIFO size is always equal to 1/16 of the RX FIFO size. The RX Status FIFO length is subtracted
from the total RX FIFO size with the remainder being the RX Data FIFO Size.
For example, if TX_FIF_SZ = 6 then:
Total TX FIFO Size = 6144 Bytes (6KB)
TX Status FIFO Size = 512 Bytes (Fixed)
TX Data FIFO Size = 6144 – 512 = 5632 Bytes
RX FIFO Size = 16384 – 6144 = 10240 Bytes (10KB)
RX Status FIFO Size = 10240 / 16 = 640 Bytes (160 RX Status DWORDs)
RX Data FIFO Size = 10240 – 640 = 9600 Bytes
contains an overview of the configurable TX/RX FIFO sizes and defaults.
shows
every valid setting for the TX_FIF_SZ field and the resulting FIFO sizes. Note that settings not shown
in this table are reserved and should not be used.
Note:
The RX Data FIFO is considered full 4 DWORDs before the length that is specified in the
HW_CFG register.
Table 9.8 TX/RX FIFO Configurable Sizes
FIFO
SIZE RANGE
DEFAULT
TX Status
512
512
RX Status
128-892
704
TX Data
1536-13824
4608
RX Data
1920-13440
10560