[intel] Forcibly skip PHY reset on some models
authorMichael Brown <mcb30@ipxe.org>
Sun, 22 Nov 2015 18:35:50 +0000 (18:35 +0000)
committerMichael Brown <mcb30@ipxe.org>
Sun, 22 Nov 2015 19:08:09 +0000 (19:08 +0000)
commitfff9281b8454dadf5e31c297af904959fe35800b
treefa89ea25f15481ee5d11a7215ee9e9b95027b52c
parent309c58824fc75a931cf3c25268abdb35870ce8f0
[intel] Forcibly skip PHY reset on some models

On some models (notably ICH), the PHY reset mechanism appears to be
broken.  In particular, the PHY_CTRL register will be correctly loaded
from NVM but the values will not be propagated to the "OEM bits" PHY
register.  This typically has the effect of dropping the link speed to
10Mbps.

Since the original version of this driver in commit 945e428 ("[intel]
Replace driver for Intel Gigabit NICs"), we have always worked around
this problem by skipping the PHY reset if the link is already up.
Enhance this workaround by explicitly checking for known-broken PCI
IDs.

Reported-by: Robin Smidsrød <robin@smidsrod.no>
Tested-by: Robin Smidsrød <robin@smidsrod.no>
Signed-off-by: Michael Brown <mcb30@ipxe.org>
src/drivers/net/intel.c
src/drivers/net/intel.h