You most likely need a bios update, and probably a firmware update for your 
BMC.  Do you happen to have a supermicro system?

-----Original Message-----
From: Lakshmana Reddy [mailto:[EMAIL PROTECTED]
Sent: Tuesday, November 04, 2008 3:29 PM
To: e1000-devel@lists.sourceforge.net
Subject: [E1000-devel] e1000e driver fails with error E1000_ERR_SWFW_SYNC

Hi,
We are using the below ethernet controller,
# lspci | grep "Ether"
05:00.0 Ethernet controller: Intel Corporation 80003ES2LAN Gigabit
Ethernet Controller (Copper) (rev 01)
05:00.1 Ethernet controller: Intel Corporation 80003ES2LAN Gigabit
Ethernet Controller (Copper) (rev 01)

The driver used is "e1000e" and the modinfo of the driver is as below,
# modinfo e1000e
filename: /lib/modules/2.6.12/kernel/drivers/net/e1000/e1000e.ko
version: 0.4.1.7-NAPI
license: GPL
description: Intel(R) PRO/1000 Network Driver
author: Intel Corporation, <[EMAIL PROTECTED]>
srcversion: BF253B998B962BD0190E81E

*The driver is not able to probe the device and throws up the
E1000_ERR_SWFW_SYNC error, *
Below is the dmesg after "insmod e1000e"
e1000e: Intel(R) PRO/1000 Network Driver - 0.4.1.7-NAPI
e1000e: Copyright (c) 1999-2008 Intel Corporation.
ACPI: PCI Interrupt 0000:05:00.0[A] -> GSI 18 (level, low) -> IRQ 18
PCI: Setting latency timer of device 0000:05:00.0 to 64
ACPI: PCI interrupt for device 0000:05:00.0 disabled
e1000e: probe of 0000:05:00.0 failed with error -2
PCI: Setting latency timer of device 0000:05:00.1 to 64
ACPI: PCI interrupt for device 0000:05:00.1 disabled
e1000e: probe of 0000:05:00.1 failed with error -2

With further debugging we could find that the s/w and f/w sync is an
issue, see the below code in the function
"e1000_acquire_swfw_sync_80003es2lan",

    while (i < timeout) {
        if (e1000_get_hw_semaphore_generic(hw)) {
            ret_val = -E1000_ERR_SWFW_SYNC;
            goto out;
        }

        swfw_sync = E1000_READ_REG(hw, E1000_SW_FW_SYNC);
        if (!(swfw_sync & (fwmask | swmask)))
            break;

        /*
         * Firmware currently using resource (fwmask)
         * or other software thread using resource (swmask)
         */
        e1000_put_hw_semaphore_generic(hw);
        msec_delay_irq(5);
        i++;
    }

    if (i == timeout) {
        DEBUGOUT("Driver can't access resource, SW_FW_SYNC timeout.\n");
        printk("File name: %s Func: %s Line: %d swmask : 0x%x fwmask:
0x%x swfw_sync: 0x%x\n", __FILE__,__func__,__LINE__,swmask, fwmask,
swfw_sync);
        ret_val = -E1000_ERR_SWFW_SYNC;
        goto out;
    }

    }

The firmware holds the resource and there by the s/w returns the error
"E1000_ERR_SWFW_SYNC",
The printk message is as below,
File name: ../e1000-v13.1/drivers/e1000e-0.4.1.7/src/e1000_80003es2lan.c
Func: e1000_acquire_swfw_sync_80003es2lan Line: 428 swmask : 0xa fwmask:
0xa0000 swfw_sync: 0x80000

Has anybody faced the similar problem and could resolve it.

Any help is much appreciated.

Thanks,
Lakshmana

-------------------------------------------------------------------------
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

-------------------------------------------------------------------------
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