Created attachment 227988 [details]
On some Vortex86 SoCs MDC speed control register needs to be restored to original value after MAC reset. This issue happens if MAC has non default VTE_MDCSC register value before reset, and it is erroneously set to default after, thus causing certain PHY registers fail to be read. Since PHY registers determine link status, the link is never established (ifconfig media shows "none" value). Also, one obvious sign is incorrect (not RDC) oui value in dmesg.
Initially, I found and fixed that in NetBSD, but it affects all BSDs and Linux. Patch is already applied on NetBSD (http://cvsweb.netbsd.org/bsdweb.cgi/src/sys/dev/pci/if_vte.c.diff?r1=1.31&r2=1.32) and Linux (https://git.kernel.org/pub/scm/linux/kernel/git/netdev/net.git/commit/?id=e3f0cc1a945fcefec0c7c9d9dfd028a51daa1846).
Sending exactly the same patch for FreeBSD. For more info and my debugging
history can be found in http://gnats.netbsd.org/cgi-bin/query-pr-single.pl?number=53494 thread. I tested the patch on my affected Vortex86DX3 based system (link is established/oui is correct), and unaffected DX2, EX2 based machines on FreeBSD (the patch itself was tested by few more people in NetBSD/Linux too).
If possible, please apply this patch to stable branches as well.