When the PHY has declared an unrecoverable error, what action does it take? How is this error reported to me from the software? Is the packet buffer released? What should I do to recover?
Currently, the PHY core only "knows" that an error occurred and it rewinds the ackid counter to the buffer so the buffer can retry the packet. At this point, the buffer can try a different packet, drop the packet that was causing the error, or try other ways to work around the problem. However, if there is a problem in which the ackids are out of working order, there is currently no way to reset them. The specification defines an optional register space that allows the expected ackid to be set, as well as allows link requests to be issued by writing to a register.
We have not implemented this space. If this is a desired feature, please let us know by opening a case with the Xilinx hotline at: