Hi,

  We got some issue with 80003ES2LAN on-board GE NIC on Intel
motherboard. May some experts kindly help ? Please copy my mailing
address in your reply.

  In a couple of instances, we observed CPU hang when reading following
PHY registers respectively on on-board GE NIC [80003ES2LAN] on Intel
motherboard. Related code snippet is copied below. 
Since those registers are related to swfw synchronization, we wonder
whether the hang is purely due to hardware/PHY failure, or is probably
due to any driver bug (e.g. related to swfw synchronization). Any
comment or suggestion is highly appreciated.

(1) swfw_sync = E1000_READ_REG(hw, E1000_SW_FW_SYNC)
(2) swsm = E1000_READ_REG(hw, E1000_SWSM);


Driver is e1000-7.5.5 [we noticed similar behavior in latest
e1000e-0.4.1.7]
firmware-version: 1.0-0
bus-info: 0000:05:00.0

OS is 2.6.12 mainline kernel.

The e1000-7.5.5 driver code that causes cpu hang:
    389 static s32
    390 e1000_acquire_swfw_sync_80003es2lan(struct e1000_hw *hw, u16
mask)
    391 {
    392         u32 swfw_sync;
    393         u32 swmask = mask;
    394         u32 fwmask = mask << 16;
    395         s32 ret_val = E1000_SUCCESS;
    396         s32 i = 0, timeout = 200;
    397
    398         DEBUGFUNC("e1000_acquire_swfw_sync_80003es2lan");
    399
    400         while (i < timeout) {
    401                 if (e1000_get_hw_semaphore_generic(hw)) {
    402                         ret_val = -E1000_ERR_SWFW_SYNC;
    403                         goto out;
    404                 }
    405
    406                 swfw_sync = E1000_READ_REG(hw,
E1000_SW_FW_SYNC);   <==##### HANG ABOVE #####==>
    407                 if (!(swfw_sync & (fwmask | swmask)))
    408                         break;


void
e1000_put_hw_semaphore_generic(struct e1000_hw *hw) {
        u32 swsm;
        DEBUGFUNC("e1000_put_hw_semaphore_generic");
        swsm = E1000_READ_REG(hw, E1000_SWSM); <==##### HANG ABOVE
#####==>
        swsm &= ~(E1000_SWSM_SMBI | E1000_SWSM_SWESMBI);
        E1000_WRITE_REG(hw, E1000_SWSM, swsm); }



# lspci | grep thern
05:00.0 Ethernet controller: Intel Corporation 80003ES2LAN Gigabit
Ethernet Controller (Copper) (rev 01)
05:00.1 Ethernet controller: Intel Corporation 80003ES2LAN Gigabit
Ethernet 

Thanks!
-Yanping


-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
E1000-devel mailing list
E1000-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/e1000-devel

Reply via email to