15.3.4.2.1 Receive Operation
During a receive operation the TX/RX Controller is a slave to the MAC. The steps of the receive operation are as follows:
- The MAC receives a frame. This data, along with SOF, EOF and byte enable information is sent to the TX/RX Controller. The TX/RX Controller accepts the data and pushes it into the RX FIFO. After the EOF is transferred, the MAC drives the status word, which is also pushed in to the RX FIFO.
- When timestamp is enabled by setting the TSEN bit in the Ethernet MAC Timestamp Control (EMACTIMSTCTRL) register, at offset 0x700, and the 64-bit timestamp is present with the receive status, it is appended to the frame and received by the MAC and pushed into the TX FIFO before the corresponding receive status word is written. Thus, two additional locations per frame are taken for storing timestamp in the RX FIFO.
- Data can be sent to the TX/RX Controller in cut-through mode or store-and-forward mode. When the RTC bit field of the EMACDMAOPMODE register is set to 0x0 and cut-through mode is enabled (RSF = 0), the TX/RX Controller indicates availability to transfer to the DMA when 64 bytes are in the RX FIFO or a full packet of data has been received into the RX FIFO. When the DMA initiates transfers to system memory, the TX/RX Controller continues to transfer data from the RX FIFO until a complete packet has been transferred. When EOF has occurred, the TX/RX Controller sends the status word to the DMA.
NOTE
The timestamp transfer takes two clock cycles and the lower 32-bits of the timestamp are sent first when timestamping is enabled.
- When the RSF bit is set in the EMACDMAOPMODE register, RX FIFO store-and-forward mode is enabled and a frame is read by the DMA only after it is completely written into the RX FIFO. In this mode, only valid frames are read and forwarded to the application. In cut-through mode, some error frames are not dropped because the error status is received at the end of the frame and by that time the start of that frame has already been read out of the RX FIFO.
The TX/RX Controller is capable of storing any number of frames in the RX FIFO as long as it is not full.