IPMI and bge (again)
Oleg Bulyzhin
oleg at freebsd.org
Sat May 6 08:21:50 UTC 2006
On Wed, May 03, 2006 at 08:54:09PM -0700, Doug Ambrisko wrote:
> Robert Wojciechowski writes:
> | > Could you try this latest version. It incorporates Oleg
> | > change sort-of. It was a good hint. The issue is that
> | > we can't move the detection after the "reset" dance. Since
> | > it needs to know if ASF is active. What we can do is just
> | > do the bge_reset, look for ASF and then do the dance. This
> | > works really well and I makes the PHY probe work without the
> | > one remaining hack that I had left and I was able to get rid
> | > of a couple more hacks.
> | >
> | > This applies to RELENG_6.
> | >
> | > Please let me know how this works. I'd like to commit
> | > this. Please pay attention to if IPMI works before the
> | > NIC is UP/or has an IP and then when it is ifconfig down
> | > then up again. The PHY should be detected at brgphy
> | > and not the generic one. It should also have all of the
> | > proper speeds. It should work with and without PXE boot.
> | > Finally non-IPMI ones should work.
> | >
> | > So far it works on the variants I have.
> |
> | Doug,
> |
> | I tried your patch (as well as one from you on 1/13/2006) on FreeBSD
> | 6.1-RC2 but experienced hard lockups. It happens during startup right
> | after setting the hostname, right before it would normally bring up the
> | interface I believe.
>
> Could you try:
> http://www.ambrisko.com/doug/bge_ipmi_2.patch
>
> | This is on four different servers, all Supermicro motherboards (H8DAR
> | and H8DAE) based on the Broadcom BCM5704 chip.
> |
> | Here is the pciconf -lv:
> |
> | bge0 at pci2:3:0: class=0x020000 card=0x164815d9 chip=0x164814e4 rev=0x10
> | hdr=0x00
> | vendor = 'Broadcom Corporation'
> | device = 'BCM5704 NetXtreme Dual Gigabit Adapter'
> | class = network
> | subclass = ethernet
> | bge1 at pci2:3:1: class=0x020000 card=0x164815d9 chip=0x164814e4 rev=0x10
> | hdr=0x00
> | vendor = 'Broadcom Corporation'
> | device = 'BCM5704 NetXtreme Dual Gigabit Adapter'
> | class = network
> | subclass = Ethernet
> |
> | Any ideas? If you need any more information or have other patches I can
> | test for you, let me know!
>
> Try this version. If this has trouble we can try to add some debug
> stuff to it.
>
> Thanks,
>
> Doug A.
I've tested your new patch on hp proliant dl145g2 server with bcm5721 on board
chips:
bge1: <Broadcom BCM5721 Gigabit Ethernet, ASIC rev. 0x4101> mem 0xca100000-0xca10ffff irq 19 at device 0.0 on pci3
It does work but i've found some problems:
minor ones:
1) IPMI stop working for a few seconds while ifconfig bge1 up/down or driver
initialization (perhaps this happens when bge_reset() is called)
2) IPMI interface (bound to brgphy1) is unreachable from bge1 itself. I guess
it's due to simplex nature of bge. I'm not sure this can be fixed.
major one:
Driver is unable to detect link loss. Problematic code is in bge_tick_locked:
/* Don't mess with the PHY in IPMI/ASF mode */
if (!((sc->bge_asf_mode & ASF_STACKUP) && (sc->bge_link)))
mii_tick(mii);
what purpose of this check? mii_tick() call is necessary for updating phy's
link status.
--
Oleg.
More information about the freebsd-net
mailing list