English
Language : 

UM10360 Datasheet, PDF (190/835 Pages) NXP Semiconductors – LPC17xx User manual
NXP Semiconductors
UM10360
Chapter 10: LPC17xx Ethernet
RxDescriptor
0x200810EC
RxStatus
0x200811F8
0x200810EC
PACKET
0x20081409
0x200810F0
1 CONTROL 7
0x200810F4
PACKET
0x20081411
0x200810F8 1 CONTROL 7
0x200810FC
PACKET
0x20081419
FRAGMENT 0 BUFFER(8 bytes)
FRAGMENT 1 BUFFER(8 bytes)
FRAGMENT 2 BUFFER(3 bytes)
StatusInfo 7 0x200811F8
StatusHashCRC
StatusInfo 7 0x20081200
StatusHashCRC
StatusInfo 2 0x20081208
StatusHashCRC
StatusInfo 7 0x20081210
StatusHashCRC
0x20081100 1 CONTROL 7
0x20081104
PACKET
0x20081325
1 CONTROL 7
0x20081108
descriptor array
FRAGMENT 3 BUFFER(8 bytes)
RxProduceIndex
RxConsumeIndex
RxDescriptorNumber= 3
fragment buffers
status array
Fig 21. Receive Example Memory and Registers
After reset, the values of the DMA registers will be zero. During initialization, the device
driver will allocate the descriptor and status array in memory. In this example, an array of
four descriptors is allocated; the array is 4x2x4 bytes and aligned on a 4 byte address
boundary. Since the number of descriptors matches the number of statuses, the status
array consists of four elements; the array is 4x2x4 bytes and aligned on a 8 byte address
boundary. The device driver writes the base address of the descriptor array
(0x2008 10EC) in the RxDescriptor register, and the base address of the status array
(0x2008 11F8) in the RxStatus register. The device driver writes the number of descriptors
and statuses minus 1 (3) in the RxDescriptorNumber register. The descriptors and
statuses in the arrays need not be initialized yet.
After allocating the descriptors, a fragment buffer needs to be allocated for each of the
descriptors. Each fragment buffer can be between 1 byte and 2 k bytes. The base
address of the fragment buffer is stored in the Packet field of the descriptors. The number
of bytes in the fragment buffer is stored in the Size field of the descriptor Control word.
The Interrupt field in the Control word of the descriptor can be set to generate an interrupt
as soon as the descriptor has been filled by the receive process. In this example the
fragment buffers are 8 bytes, so the value of the Size field in the Control word of the
descriptor is set to 7. Note that in this example, the fragment buffers are actually a
UM10360_1
User manual
Rev. 01 — 4 January 2010
© NXP B.V. 2010. All rights reserved.
190 of 835