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