When a pause packet is issued using the pause packet length register, any valid packet that follows is being rejected by the TEMAC by the RX logic.
The issue is that when a bad packet is received, it is possible that the next good packet might also be rejected as bad. Receiving a pause packet when pause packets are enabled causes the TEMAC to flag the packet as bad so it will not be passed up to software since the packet will be consumed by the TEMAC in order to pause the transmit circuitry.
The fix involves a change to a single file. The corrected "rx_temac_if_sm.vhdl" file that fixes this issue is available at:
Please Unzip and place the "rx_temac_if_sm.vhdl" file in the local "pcore" directory of your current project.
The issue will be fixed in the xps_ll_temac_v1_01_b available with the EDK 10.1 sp2. The EDK 10.1 Service Pack 2 will be available at: