[U-Boot] [RFC][PATCH 2/3] e1000: Intel 82571EB: Don't wait for MNG cycle on unmanaged chips

Kyle Moffett Kyle.D.Moffett at boeing.com
Fri Aug 13 18:27:59 CEST 2010


The Intel 82571EB chipset can be used in an unmanaged configuration as a
fast dual-port Gig-E controller.  Unfortunately a board consturcted that
way would fail to correctly come up because the driver polls for the
completion of a management cycle that will never occur.

To resolve this problem, we disable the poll and error return on chips
whose EEPROMS indicate no management.  As a protection against
misconfigured chipsets, we still delay for the entire management poll
timeout.

Signed-off-by: Kyle Moffett <Kyle.D.Moffett at boeing.com>
---
 drivers/net/e1000.c |    7 +++++++
 1 files changed, 7 insertions(+), 0 deletions(-)

diff --git a/drivers/net/e1000.c b/drivers/net/e1000.c
index 2825342..c9677b4 100644
--- a/drivers/net/e1000.c
+++ b/drivers/net/e1000.c
@@ -4266,6 +4266,13 @@ e1000_get_phy_cfg_done(struct e1000_hw *hw)
 	/* Fall Through */
 	case e1000_82571:
 	case e1000_82572:
+		/* Don't bother polling the management regs if unmanaged */
+		if (!e1000_check_mng_mode(hw)) {
+			DEBUGOUT("Unmanaged chip... skipping MNG polling\n");
+			mdelay(timeout);
+			return 0;
+		}
+
 		while (timeout) {
 			if (E1000_READ_REG(hw, EEMNGCTL) & cfg_mask)
 				break;
-- 
1.7.1



More information about the U-Boot mailing list