When debugging your own implementation of Eye Scan there are several problems that are commonly encountered.
Attributes not set correctly:
Below is an example of attribute setup for a statistical Eye Scan.
Some common problems would be:
The setting above is for a 20 bit internal bus. The top half of ES_SDATA_MASK should always be FFFFFFFFFF for a statistical eye.
If the ES_ERRDET_EN and/or the ES_EYE_SCAN_EN are being set on the fly through the DRP port a PMA reset is required before the Eye Scan is run.
RTL code to run an Eye Scan through the DRP is contained in (Xilinx Answer 64098)
This process could be converted to be used by a processor.