UM10237_2 © NXP B.V. 2008. All rights reserved.
User manual Rev. 02 — 19 December 2008 261 o f 792
NXP Semiconductors UM10237
Chapter 11: LPC24XX Ethernet
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
(0xFEED B0EC) in the RxDescriptor register, and the base address of the status array
(0xFEED B1F8) 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
Fig 31. Receive Example Memory and Registers
PACKET
0x7FE01409
RxStatus
0x7FE011F8
RxDescriptor
0x7FE010EC
0x7FE01411
0x7FE01418
0x7FE01409
0x7FE01410
0x7FE010EC
0x7FE010F0
0x7FE010F4
0x7FE010F8
0x7FE010FC
0x7FE01100
0x7FE01104
0x7FE01108
0x7FE011F8
0x7FE01200
0x7FE01208
0x7FE01210
PACKET
0x7FE01411
PACKET
0x7FE01419
PACKET
0x7FE01325
0x7FE01325
0x7FE0132C
descriptor array
Descriptor 0Descript or 1Descrip t or 2Descriptor 3
descriptor array
fragment buffers
RxProduceIndex
RxConsumeIndex
RxDescriptorNumber = 3
Status 1 Status 0Status 3 Status 2
status array
status array
FRAGMENT 1 BUFFER (8 bytes)
FRAGMENT 0 BUFFER (8 bytes)
FRAGMENT 2 BUFFER (3 bytes)
FRAGMENT 3 BUFFER (8 bytes)
0x7FE01419
0x7FE0141B
17CONTROL
17CONTROL
17
CONTROL
17
CONTROL
StatusInfo 7
StatusHashCRC
StatusInfo 7
StatusHashCRC
StatusInfo 7
StatusHashCRC
StatusInfo 2
StatusHashCRC