MSC8158E Reference Manual Addendum, Rev. 0
18 Freescale Semiconductor
QUICC Engine Subsystem
18.7.5.2 Unreported Overrun
An Overrun status for a received frame is a notification that is was not fully received because the Ethernet
controller is temporarily overloaded and that the frame should be discarded. In rare cases, such as when two
sequential frames that cause an Overrun are received, the second frame is discarded but not reported as causing an
overrun. The frame loss can be detected by a higher level protocol (such as TCP/IP). Make sure that the software
requests a retransmission of the frame if the higher level protocol reports a frame loss.
18.7.5.2 Broadcast Status after an In-Band CRS Event
In RGMII mode, the Ethernet can erroneously indicate a Broadcast status for the previous frame (wrong
RxBD[BC]) is generated after an in-band CRS event. To make sure a real broadcast event has occurred, program
the application to ignore the RxBD[BC] bit and check the Broadcast address instead.
18.7.5.4 Pause Frame End
A pause frame is used to restrict flow control when the Ethernet controller is being overloaded. To end the pause,
the application sends an XON receive pause frame with a Pause Time Value (PTV) = 0, which should cause the
transmitter to exit the pause frame immediately. However, in the MSC8158E, the controller decrements that
counter after clearing it before performing the compare to zero. As a result, the XON actually causes the transmitter
to continue in the pause state for 65535 pause quantas (3353920 bit-times). To prevent this occurrence, use a pause
frame with a PTV = 1 to force an exit from a pause state.
Note: In the case of connecting to another QUICC Engine device, the programmer may not use the QUICC
Engine Automatic Flow Control (AUFC) because in this mode, the Ethernet Controller generates Pause
Commands with Pause Time Value = 0 in order to exit pause state. The programmer must configure the
QUICC Engine block to use either of the following flow control modes:
— Lossless Flow Control: The Ethernet controller always uses the value of the UEMPR[PT] register
when generating pause frames. It never automatically generates a pause frame with a pause time value
of 0 when the receiver recovers from being above the RxFIFO threshold or below the free RxBDs
threshold.
— Host Enabled Flow Control: Use the following guidelines for the specified QUICC Engine commands:
• START FLOW CONTROL. Sends pause frames with the Pause Time Value in the UEMPR[PT]
field. The programmer may configure UEMPR[PT] for pause time and use the START FLOW
CONTROL command for sending pause frames For exiting pause state, the programmer may
configure UEMPR[PT] to 1 and use the START FLOW CONTROL command.
• STOP FLOW CONTROL. Sends a Pause Time Value of 0 and should be avoided.
18.7.5.5 Pause Frame Time
If a transmit is in progress, the pause time may be shorter than specified. When the Ethernet controller receives a
pause frame with PTV not equal to 0 and MACCFG1[Rx Flow] = 1, it completes transmitting any current frame in
progress; then it should pause for PTV × 512 bit-times. The MAC, however, does not take the full transmission
time of the current frame into account when calculating the Tx pause time, and it may pause for 1–2 pause quanta
(512–1024 bit-times) less than the PTV value. This can cause the Ethernet controller to pause transmission for up
to 1024 bit-times less than the pause frame request value. If the PTV does not contain at least 2 pause quanta worth
of margin, it may allow receive buffer overflows to occur in the link partner. Because the transmit pause does not
take effect until after the current frame completes transmitting, the link partner pause frame generator must already