Thanks.
I somehow got it to work after playing with it for a while. I added some "redundant" initialization sequence in the logic including a reset of the PHY after power up. I suspect that's what made it work as you pointed out.
--- Quote Start ---
Hey guy,
I have successfully make it works before(same dev board, same on-board PHY). A few tricks:
1. You need to do a RESET on the onboard Marvel PHY when you power up the board (only for this particular onboard PHY, I have no such problem with other Marvel88E111 daughter card or SFP). It is described in the Marvel document as about 10ns second reset (if not mistaken). You can either tie the PHY reset pin to the on board reset button or just use some hard logic to do it. Very odd, powerdown/powerup the board doesn't cleanly reset the PHY.
(2. to 4. only apply if you are not using the sample application/example design/default TSE driver)
2. You need to make sure that your MAC, ethermode/speed bit in the command config register represent the mode the PHY is currently working at
3. Remember to turn off the INTERNAL_LOOPBACK register bits:)
4. Make sure that you know you are using/not using the 16-bits byte shifting/alignment feature (synthesis/register option in TX/RX_CMD_STAT),
I don't think you need a Marvel Datasheet, all the general settings of any PHY is described in the TSE documentation, unless you need some extended/proprietary settings like turn on the automatic clock adjustment for RGMII interface.
--- Quote End ---