This was previously a question on a DHCP issue, but I think I may have a better idea what's going on after some sniffing with WireShark.
Originally, the issue was the board would come up and the link would be declared up (As per TLK110 register), but DHCP would never get an address. This happens abut 50% of the time while the board (custom made board with STM32F4, TLK110, nosys) is brought up while connected to a specific model of TP-Link router (Archer C2600). While connected to the switch onboard a Linksys router and another separate dedicated switch, this issue does not occur and the link reliably comes up every time.
I did notice that sometimes the link will come up, then immediately down. This will happen repetitively, and sometimes eventually it will stay up. I noticed that when the board came up, the link was actually declared active, but DHCP was unable to get an address, there was no broadcast traffic at all from the board. Almost as if the link wasn't really up even though the TLK110 had indicated the link was up.
I'm wondering if this is some kind of "power save" feature of the router or something similar, where only ports that are active are actually turned on. I can't imagine why they'd implement this on a device powered by the wall, and when I assume mere milliamps are required to keep an individual port up, so perhaps that's not a sound assumption.
Another possibility I considered is that my board is doing something that the router is unhappy with, and it's turning off the port in response as some kind of protection mechanism. Perhaps the link coming up and them immediately down is some attempt at probing?
Another hint comes from the fact that if I disconnect/reconnect the ethernet cable on the TP-Link router, the board will be able to get a good link. Additionally, if I power cycle the router the same effect is found.