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.moff...@boeing.com>
---
Jeff Kirsher <jeffrey.t.kirs...@intel.com> has already accepted a similar
patch to the Linux kernel into his e1000e patch queue.

 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

_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to