freeipmi-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Freeipmi-users] Tyan Thunder S2882 with m3289 bmc module


From: Jan Tiri
Subject: Re: [Freeipmi-users] Tyan Thunder S2882 with m3289 bmc module
Date: Tue, 8 Mar 2005 21:31:47 +0100 (CET)
User-agent: SquirrelMail/1.4.3a

> ,----[ "Jan Tiri" <address@hidden> ]
> | Another strange thing; my ipmi board now only reacts when the power is
> | off. If my kernel crashes for whatever reason, I'm not able to reset the
> | machine. I guess this isn't really normal behaviour ...
> |
> | response timed out: rq_seq=0
> | response received from 192.168.1.100: rq_seq=1, auth: none=clear
> md2=clear
> | md5=set passwd=clear oem=clear permsg=clear user=clear
> | response received from 192.168.1.100: rq_seq=2, auth: none=clear
> md2=clear
> | md5=set passwd=clear oem=clear permsg=clear user=clear
> `----
> This looks like network driver bug. Albert noticed a similar problem
> with Intel's e1000 driver, when the kernel goes to halt. Patch is
> simple. You have to comment the e1000_suspend call in notifier
> routine. We should not suspend the e1000 controller, because it is
> also used by the BMC.

It's a e100. From the kernel;

#ifdef CONFIG_PM
static int e100_suspend(struct pci_dev *pdev, u32 state)
{
        struct net_device *netdev = pci_get_drvdata(pdev);
        struct nic *nic = netdev_priv(netdev);

        if(netif_running(netdev))
                e100_down(nic);
        e100_hw_reset(nic);
        netif_device_detach(netdev);

        pci_save_state(pdev);
        pci_enable_wake(pdev, state, nic->flags & (wol_magic |
e100_asf(nic)));
        pci_disable_device(pdev);
        pci_set_power_state(pdev, state);

        return 0;
}

static int e100_resume(struct pci_dev *pdev)
{
        struct net_device *netdev = pci_get_drvdata(pdev);
        struct nic *nic = netdev_priv(netdev);

        pci_set_power_state(pdev, 0);
        pci_restore_state(pdev);
        e100_hw_init(nic);

        netif_device_attach(netdev);
        if(netif_running(netdev))
                e100_up(nic);

        return 0;
}
#endif

static struct pci_driver e100_driver = {
        .name =         DRV_NAME,
        .id_table =     e100_id_table,
        .probe =        e100_probe,
        .remove =       __devexit_p(e100_remove),
#ifdef CONFIG_PM
        .suspend =      e100_suspend,
        .resume =       e100_resume,
#endif
};

It's the only occurrence of suspend in this e100.c file

> It is also possible to fix it without modifying the driver, by
> fiddling with the EEPROM power-management setting using ethtool. Tell
> me what network card you have, I will help you.

I installed ethtool, good luck :)

root # ethtool -e eth0
Offset          Values
------          ------
0x0000          00 e0 81 2d 8d f7 03 02 00 00 01 02 01 47 00 00
0x0010          78 56 34 12 e2 58 40 10 86 80 64 00 00 00 00 00
0x0020          00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x0030          00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x0040          00 00 00 00 00 00 29 12 00 00 00 00 00 00 00 00
0x0050          00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x0060          28 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x0070          00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x0080          ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0090          ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x00a0          ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x00b0          ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x00c0          ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x00d0          ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x00e0          ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x00f0          ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0100          ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0110          ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0120          ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0130          ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0140          ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0150          ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0160          ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0170          ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0180          ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0190          ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x01a0          ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x01b0          ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x01c0          ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x01d0          ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x01e0          ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x01f0          ff ff ff ff ff ff ff ff ff ff ff ff ff ff 5d 05

For the remaining points;

- I was able to set the date via the util.exe file (specific for s2882) so
I assume this will be updateable via fish too
- set to bmc: I guess I get time-outs when trying to use bmc-config -i,
seems to be in the hardware :(
- bmc-watchdog: no idea why the process gets killed immediately, it has
nothing to do with security patches.

Kind regards,
Jan Tiri




reply via email to

[Prev in Thread] Current Thread [Next in Thread]