
NXP Semiconductors
PNX15xx/952x Series
Volume 1 of 1
Chapter 23: LAN100 — Ethernet Media Access Controller
PNX15XX_PNX952X_SER_N_4
NXP B.V. 2007. All rights reserved.
Product data sheet
Rev. 4.0 — 03 December 2007
23-707
The receive function is enabled in two steps. The receive DMA manager must be
enabled and the Receive Datapath of MII Interface must be enabled. To prevent
overow in the receive DMA engine, it should be enabled by setting the RxEnable bit
in the Command register before enabling the Receive Datapath in the MII Interface by
setting the RECEIVE_ENABLE bit in the MAC1 register.
The non-real-time and real-time transmit DMA engine can be enabled any time by
setting the TxEnable and TxRtEnable bits in the Command register.
Before enabling the datapaths, several options can be programmed, such as
automatic ow control, transmit-to-receive loop-back for verication, full- or
half-duplex modes, and so forth.
Base addresses of FIFOs and FIFO sizes cannot be modied without soft reset of the
receive and Transmit Datapaths.
5.4 Transmit process
5.4.1
Overview
This section outlines the transmission process. The LAN100 has two Transmit
Datapaths which can be congured as real-time, non-real-time, high- or low priority.
For more information on non-real-time and low- or high-priority transmission, please
refer to
Section 5.8. In the following subsections the prex
TxRt refers to the
real-time/low-priority Transmit Datapath and the prex
Tx refers to the
non-real-time/high-priority Transmit Datapath.
5.4.2
Device Driver Sets Up Descriptors and Data
Before setting up one or more descriptors for transmission, the device driver should
select if the packet should go to the real-time or non-real-time FIFO. Real-time trafc
or low-priority QoS trafc should go to the real-time Tx descriptor FIFO while
non-real-time or high-priority QoS trafc should go to the non-real-time Tx descriptor
FIFO. If the selected descriptor FIFO is full, the device driver should wait for the FIFO
to become not full before writing the descriptor in the FIFO. If the selected FIFO is not
full, the device driver should use the descriptor indexed by TxProduceIndex from the
array pointed to by TxDescriptor (or the descriptor indexed by TxRtProduceIndex
from the TxRtDescriptor array for real-time/low priority QoS).
The Packet pointer in the descriptor is set to point to a data packet or packet fragment
to be transmitted. The Size eld in the Command eld of the descriptor should be set
to the number of bytes in the fragment buffer, –1 encoded. Additional control
information can be indicated in the Control eld in the descriptor (including bits for
Interrupt, Last, CRC, and Pad). The time-stamp eld in the descriptor must be
initialized for real-time transmissions.
After writing the descriptor, it must be handed over to the hardware by incrementing
(and possibly wrapping) the TxProduceIndex or TxRTProduceIndex registers.
If the Transmit Datapath is disabled, the device driver should not forget to enable the
(non-) real-time Transmit Datapath by setting the TxEnable or TxRtEnable bit in the
Command register.