![Texas Instruments SimpleLink Ethernet MSP432E401Y Technical Reference Manual Download Page 908](http://html1.mh-extra.com/html/texas-instruments/simplelink-ethernet-msp432e401y/simplelink-ethernet-msp432e401y_technical-reference-manual_1095578908.webp)
Functional Description
908
SLAU723A – October 2017 – Revised October 2018
Copyright © 2017–2018, Texas Instruments Incorporated
Ethernet Controller
15.3.3.7.2 Receive Descriptor Acquisition
The Receive Engine always attempts to acquire an extra descriptor in anticipation of an incoming frame.
Descriptor acquisition is attempted if any of the following conditions is satisfied:
•
The SR bit of the EMACDMAOPMODE register has been set immediately after being placed in the
RUN state.
•
The data buffer or current descriptor is full before the frame ends for the current transfer.
•
The controller has completed frame reception, but the current receive descriptor is not yet closed.
•
The receive process has been suspended because of a host-owned buffer (RDES0[31] = 0) and a new
frame is received.
•
A receive poll demand has been issued.
15.3.3.7.3 Receive Frame Processing
The MAC transfers the received frames to the system memory only when the frame passes the address
filter and the frame size is greater than or equal to configurable threshold bytes set for the RX FIFO, or
when the complete frame is written to the RX FIFO in store-and-forward mode.
If the frame fails the address filtering, it is dropped in the MAC block unless the Receive All (RA) bit is set
in the Ethernet MAC Frame Filter (EMACFRAMEFLTR), offset 0x004. If the RA bit is set, then the MAC
passes all received frames. Frames that are shorter than 64 bytes, because of collision or premature
termination, can be removed from the RX FIFO if the DFF bit is clear in the EMACDMAOPMODE register.
After 64 bytes have been received, the TX/RX Controller requests the DMA block to begin transferring the
frame data to the receive buffer pointed by the current descriptor. The DMA sets the First Descriptor
(RDES0[9]) bit to delimit the frame after the DMA Interface becomes ready to receive a data transfer (if
DMA is not fetching transmit data from the system memory). The descriptors are released when the OWN
(RDES0[31]) bit is reset to 0, either as the data buffer fills up or as the last segment of the frame is
transferred to the receive buffer. If the frame is contained in a single descriptor, both Last Descriptor
(RDES0[8]) and First Descriptor (RDES0[9]) are set.
The DMA fetches the next descriptor, sets the Last Descriptor (RDES0[8]) bit, and releases the RDES0
status bits in the previous frame descriptor. Then the DMA sets the RI bit of the EMACDMARIS register.
The same process repeats unless the DMA encounters a descriptor flagged as being owned by the host. If
this occurs, the receive process sets the RU bit of the EMACDMARIS and enters the SUSPEND state.
The position in the receive list is retained.
15.3.3.7.4 Receive Process Suspend
If a new receive frame arrives while the receive process is in SUSPEND state, the DMA refetches the
current descriptor in the system memory. If the descriptor is now owned by the DMA, the receive process
re-enters the RUN state and starts frame reception. If the descriptor is still owned by the CPU, by default,
the DMA discards the current frame at the top of the RX FIFO and increments the missed frame counter.
If more than one frame is stored in the RX FIFO, the process repeats. The discarding or flushing of the
frame at the top of the RX FIFO can be prevented by disabling flushing through the DFF bit of the
EMACDMAOPMODE register. In such conditions, the receive process sets the Receive Buffer Unavailable
(RU) status and returns to the SUSPEND state.
15.3.3.8 DMA Interrupts
Interrupts can be generated as a result of various transfer events. The current status of interrupts can be
read from the EMACDMARIS register and are enabled to trigger an interrupt through the programming of
the Ethernet MAC DMA Interrupt Mask (EMACDMAIM) register. There are two groups of transfer event
interrupts: Normal and Abnormal. The following lists the two groups:
•
Normal Interrupts:
–
Transmit Interrupt (TI, bit 0): Indicates that frame transmission is complete.
–
Transmit Buffer Unavailable (TU, bit 2): Indicates the CPU owns the next descriptor in the transmit
list and the DMA cannot acquire it.
–
Receive Interrupt (RI, bit 6): Indicates the frame reception is complete.