____________________________________________________ DS34T101, DS34T102, DS34T104, DS34T108
87 of 366
10.6.11.4 Buffer Descriptor Third Dword
Used for ETH CPU packets. Located at offset 0x8 from start of the buffer.
Table 10-27. Buffer Descriptor Third Dword Fields (ETH CPU)
Bits
Data Element
Description
31:0
Timestamp
32 bits timestamp latched by the packet classifier upon packet reception. Timestamp
resolution is 100
10.6.11.5 RX Arbiter
The RX arbiter constantly checks for available packets in the Rx FIFO, the CPU-to-TDM queue and the cross-
connect queue. It can do one of the following:
Pass a packet from the Rx FIFO to the payload-type machines
Pass a packet from the Rx FIFO to the external SDRAM and insert its pointer into the ETH-to-CPU queue
Extract a pointer from the cross-connect queue and pass a packet from the external SDRAM into the
payload-type machines
Extract a pointer from the CPU-to-TDM queue and pass a packet from the external SDRAM into the
payload-type machines.
In general, the Rx arbiter handles packets according to the following priorities:
1. Cross-connect queue
2. Rx FIFO (i.e., packets that arrive from the Ethernet port)
3. CPU-to-TDM queue.
the Rx FIFO is above this threshold, the Rx FIFO becomes the highest priority for the Rx arbiter rather than the
Cross-connect queue until the fill level of the Rx FIFO drops below the threshold.
10.6.11.6 TX Ethernet Interface
The TX Ethernet interface first checks the Ethernet TX queue. If the queue is not empty, it extracts a pointer,
passes the buffer data from the SDRAM to the Ethernet MAC, and returns the pointer to the free buffer pool. If the
TX Ethernet queue is empty, the TX Ethernet Interface checks the status of the CPU-to-Ethernet queue. If the
queue is not empty, it extracts a pointer, transfers buffer data to the Ethernet MAC, and returns the buffer to the
CPU TX Return queue.
10.6.11.7 Free Buffer Pool
The free buffer pool mechanism explained below is used for the TDM-to-Ethernet and TDM-to-TDM flows.
Before the payload-type machines can process any data, the CPU must initialize the free buffer pool. The free
buffer pool contains pointers to SDRAM buffers that are used by the payload-type machines to store packets.
There are a total of 512 SDRAM buffers. The CPU needs to pre-assign (statically) these SDRAM buffers to each
bundle. The number of buffers allocated per specific bundle depends on the number of timeslots in the bundle. It is
recommended to assign 4 buffers per timeslot.
The buffers are located in a continuous area in the SDRAM. The buffer address consists of the base address, the
buffer number and the displacement within the buffer. The base address is specified by the
Tx_buf_base_add field
in
General_cfg_reg1. Free buffer numbers are contained in linked lists, with a head pointing to the first buffer, each
buffer pointing to the next buffer and the last buffer pointing to itself. There are 64 heads (one per bundle), each
one containing a validity indication bit (MSB) and another 9 bits pointing to the first free buffer in the linked list. The