Functional Description
906
SLAU723A – October 2017 – Revised October 2018
Copyright © 2017–2018, Texas Instruments Incorporated
Ethernet Controller
then the DMA would mark it as the last descriptor. In either case, the DMA proceeds to Step 8. If the
DMA does own the next descriptor but the current frame transfer is not complete, the DMA closes the
current descriptor as intermediate and reverts to Step 4.
7. If IEEE 1588 timestamping is enabled, the DMA writes the timestamp to the current descriptor's
RDES6 and RDES7. It then takes the receive frame's status and writes the status word to the current
descriptor's RDES0, with the OWN bit cleared and the Last Segment (LS) bit set. If the host stopped
the RX DMA by clearing the SR bit of the EMACDMAOPMODE register, DMA goes to the STOP state,
otherwise the RX DMA proceeds to Step 8.
8. The RX DMA engine checks the last descriptor's OWN bit. If the CPU owns the descriptor (OWN bit is
0), the RU bit of the EMACDMARIS register is set and the DMA RX engine enters the SUSPEND
state. If the DMA owns the descriptor, the engine returns to Step 4 and awaits the next frame.
9. Before the RX DMA engine enters the SUSPEND state, partial frames are flushed from the RX FIFO.
Flushing can be controlled through the DFF bit of the EMACDMAOPMODE register.
10. The RX DMA enters the STOP state if the CPU has cleared the SR bit of the EMACDMAOPMODE
register. Otherwise, it exits the SUSPEND state when a Receive Poll Demand is given or the start of
the next frame is available from the RX FIFO. The DMA engine proceeds to Step 2 and fetches the
next descriptor again.
The DMA does not acknowledge accepting status from the TX/RX Controller until it has completed the
timestamp write-back and is ready to perform status write-back to the descriptor.
If software has enabled timestamping through the Ethernet MAC Timestamp Control (EMACTIMSTCTRL)
register, offset 0x700, when a valid timestamp is not available for the frame (for example, because the
receive FIFO was full before the timestamp could be written to it), the DMA writes all ones to RDES6 and
RDES7. Otherwise if timestamping is not enabled, RDES6 and RDES7 remain unchanged.
shows the flow of a RX DMA Operation.