UM10503
All information provided in this document is subject to legal disclaimers.
© NXP B.V. 2012. All rights reserved.
User manual
Rev. 1.3 — 6 July 2012
746 of 1269
NXP Semiconductors
UM10503
Chapter 26: LPC43xx Ethernet
The driver must explicitly issue a Transmit Poll Demand command after rectifying the
suspension cause.
26.7.5.2.5
Reception
The Receive DMA engine’s reception sequence is shown in
and proceeds as
follows:
1. The host sets up Receive descriptors (RDES0-RDES3) and sets the Own bit
(RDES0[31]).
2. Once the SR (DMA Operation Mode register
) bit is set, the DMA enters the
Run state. While in the Run state, the DMA polls the Receive Descriptor list,
attempting to acquire free descriptors. If the fetched descriptor is not free (is owned by
the host), the DMA enters the Suspend state and jumps to Step 9.
3. The DMA decodes the receive data buffer address from the acquired descriptors.
4. Incoming frames are processed and placed in the acquired descriptor’s data buffers.
5. When the buffer is full or the frame transfer is complete, the Receive engine fetches
the next descriptor.
6. If the current frame transfer is complete, the DMA proceeds to Step 7. If the DMA
does not own the next fetched descriptor and the frame transfer is not complete (EOF
is not yet transferred), the DMA sets the Descriptor Error bit in the RDES0 (unless
flushing is disabled). The DMA closes the current descriptor (clears the Own bit) and
marks it as intermediate by clearing the Last Segment (LS) bit in the RDES0 value
(marks it as Last Descriptor if flushing is not disabled), then 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 time stamping is enabled, the DMA writes the timestamp (if available) to
the current descriptor’s RDES2 and RDES3. It then takes the receive frame’s status
from the MTL and writes the status word to the current descriptor’s RDES0, with the
Own bit cleared and the Last Segment bit set.
8. The Receive engine checks the latest descriptor’s Own bit. If the host owns the
descriptor (Own bit is 0) the Receive Buffer Unavailable bit (DMA Status register
) is set and the DMA Receive engine enters the Suspended state (Step 9). If
the DMA owns the descriptor, the engine returns to Step 4 and awaits the next frame.
9. Before the Receive engine enters the Suspend state, partial frames are flushed from
the Receive FIFO (You can control flushing using Bit 24 of DMA Operation MOde
register
10. The Receive DMA exits the Suspend state when a Receive Poll demand is given or
the start of next frame is available from the MTL’s Receive FIFO. The engine
proceeds to Step 2 and refetches the next descriptor.