UM10360 All information provided in this document is subject to legal disclaimers. © NXP B.V. 2013. All rights reserved.
User manual Rev. 3 — 19 December 2013  145 of 841
NXP Semiconductors
UM10360
Chapter 10: LPC176x/5x Ethernet
– The transmit DMA manager which reads descriptors and data from memory and 
writes status to memory.
– The transmit retry module handling Ethernet retry and abort situations.
– The transmit flow control module which can insert Ethernet pause frames.
• The receive data path, including:
– The receive DMA manager which reads descriptors from memory and writes data 
and status to memory.
– The Ethernet MAC which detects frame types by parsing part of the frame header.
– The receive filter which can filter out certain Ethernet frames by applying different 
filtering schemes.
– The receive buffer implementing a delay for receive frames to allow the filter to 
filter out certain frames before storing them to memory.
10.5 DMA engine functions
The Ethernet block is designed to provide optimized performance via DMA hardware 
acceleration. Independent scatter/gather DMA engines connected to the AHB bus off-load 
many data transfers from the CPU.
Descriptors, which are stored in memory, contain information about fragments of incoming 
or outgoing Ethernet frames. A fragment may be an entire frame or a much smaller 
amount of data. Each descriptor contains a pointer to a memory buffer that holds data 
associated with a fragment, the size of the fragment buffer, and details of how the 
fragment will be transmitted or received.
Descriptors are stored in arrays in memory, which are located by pointer registers in the 
Ethernet block. Other registers determine the size of the arrays, point to the next 
descriptor in each array that will be used by the DMA engine, and point to the next 
descriptor in each array that will be used by the Ethernet device driver.
10.6 Overview of DMA operation
The DMA engine makes use of a Receive descriptor array and a Transmit descriptor array 
in memory. All or part of an Ethernet frame may be contained in a memory buffer 
associated with a descriptor. When transmitting, the transmit DMA engine uses as many 
descriptors as needed (one or more) to obtain (gather) all of the parts of a frame, and 
sends them out in sequence. When receiving, the receive DMA engine also uses as many 
descriptors as needed (one or more) to find places to store (scatter) all of the data in the 
received frame.
The base address registers for the descriptor array, registers indicating the number of 
descriptor array entries, and descriptor array input/output pointers are contained in the 
Ethernet block. The descriptor entries and all transmit and receive packet data are stored 
in memory which is not a part of the Ethernet block. The descriptor entries tell where 
related frame data is stored in memory, certain aspects of how the data is handled, and 
the result status of each Ethernet transaction.