From owner-freebsd-net@FreeBSD.ORG Sat May 6 08:21:50 2006 Return-Path: X-Original-To: freebsd-net@freebsd.org Delivered-To: freebsd-net@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id E910E16A403 for ; Sat, 6 May 2006 08:21:49 +0000 (UTC) (envelope-from oleg@lath.rinet.ru) Received: from lath.rinet.ru (lath.rinet.ru [195.54.192.90]) by mx1.FreeBSD.org (Postfix) with ESMTP id B89E843D6E for ; Sat, 6 May 2006 08:21:45 +0000 (GMT) (envelope-from oleg@lath.rinet.ru) Received: from lath.rinet.ru (localhost [127.0.0.1]) by lath.rinet.ru (8.13.4/8.13.4) with ESMTP id k468LLru028449 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Sat, 6 May 2006 12:21:21 +0400 (MSD) (envelope-from oleg@lath.rinet.ru) Received: (from oleg@localhost) by lath.rinet.ru (8.13.4/8.13.4/Submit) id k468LK9Q028448; Sat, 6 May 2006 12:21:20 +0400 (MSD) (envelope-from oleg) Date: Sat, 6 May 2006 12:21:20 +0400 From: Oleg Bulyzhin To: Doug Ambrisko Message-ID: <20060506082120.GA27842@lath.rinet.ru> References: <85D4F2C294E8434CA0AF7757415326860950D8@server1.ssgi.local> <200605040354.k443s9d7033731@ambrisko.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <200605040354.k443s9d7033731@ambrisko.com> User-Agent: Mutt/1.5.11 Cc: freebsd-net@freebsd.org, Robert Wojciechowski Subject: Re: IPMI and bge (again) X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 06 May 2006 08:21:50 -0000 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@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@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: 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.