From owner-freebsd-current@FreeBSD.ORG Wed Apr 18 01:56:55 2007 Return-Path: X-Original-To: freebsd-current@freebsd.org Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 712C516A40B for ; Wed, 18 Apr 2007 01:56:55 +0000 (UTC) (envelope-from jfvogel@gmail.com) Received: from nz-out-0506.google.com (nz-out-0506.google.com [64.233.162.231]) by mx1.freebsd.org (Postfix) with ESMTP id 294F113C4CE for ; Wed, 18 Apr 2007 01:56:54 +0000 (UTC) (envelope-from jfvogel@gmail.com) Received: by nz-out-0506.google.com with SMTP id r28so3055nza for ; Tue, 17 Apr 2007 18:56:54 -0700 (PDT) DKIM-Signature: a=rsa-sha1; c=relaxed/relaxed; d=gmail.com; s=beta; h=domainkey-signature:received:received:message-id:date:from:to:subject:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references; b=GR6bDkDAl27JXDL6/V3qwiL3TfdP3ehlrpyKq+mas5xwYuVBpaIZo81UTl1W/UjaEHxGC2+EUnlHv4CalpYTboQKYk2Uc8rYZt40MXjC0V/GvMiaYDttPlD69001aUDSmNXvLCLD/nq3XLSfQ0sD49rm7eDl2LMa0uCD/+ZtOXk= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=beta; h=received:message-id:date:from:to:subject:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references; b=fPsnBESdY9WZJUTEjn2iTv9CLD7Da4aWQFU6soFSGAdxMtsudm6b4tpr/mdjJySZdKSVQEb14bKLGNhAb4rLXFN1JPT7+xhPkzOm6TMKZT3VJEy+FPFhG/+60l7HXrG+FXfZaqtAEztHIyI6xOYxQiV2kbp2hcV/NrAfCACzRgc= Received: by 10.114.202.15 with SMTP id z15mr6563waf.1176861412998; Tue, 17 Apr 2007 18:56:52 -0700 (PDT) Received: by 10.114.103.15 with HTTP; Tue, 17 Apr 2007 18:56:52 -0700 (PDT) Message-ID: <2a41acea0704171856h48f3d7d2u26ee8912c14d2936@mail.gmail.com> Date: Tue, 17 Apr 2007 18:56:52 -0700 From: "Jack Vogel" To: "Jack Vogel" , "Gleb Smirnoff" , "Bill Paul" , freebsd-current@freebsd.org, freebsd-stable@freebsd.org, jon.otterholm@ide.resurscentrum.se In-Reply-To: <20070417233003.GB35507@tirith.brixandersen.dk> MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline References: <2a41acea0701171258k16b4c6ebuf1d4794b89d0749b@mail.gmail.com> <20070120065321.DB61216A405@hub.freebsd.org> <2a41acea0701201435g6f960b40r3cf0552d87ab2bfd@mail.gmail.com> <20070122083506.GW4485@FreeBSD.org> <2a41acea0701221030x52dd8821pd858ae7e6740ce92@mail.gmail.com> <20070417233003.GB35507@tirith.brixandersen.dk> Cc: Subject: Re: Lenovo X60 em workaround X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 18 Apr 2007 01:56:55 -0000 On 4/17/07, Henrik Brix Andersen wrote: > Hi, > > On Mon, Jan 22, 2007 at 10:30:48AM -0800, Jack Vogel wrote: > > Acknowledge... I can do better than that, I have a fix for this problem, and > > its not temporary. Here is the code change (not a patch, I'm very busy), > > its in hardware_init, should be obvious how to patch: > > > > /* Make sure we have a good EEPROM before we read from it */ > > if (e1000_validate_nvm_checksum(&adapter->hw) < 0) { > > /* > > ** Some PCI-E parts fail the first check due to > > ** the link being in sleep state, call it again, > > ** if it fails a second time its a real issue. > > */ > > if (e1000_validate_nvm_checksum(&adapter->hw) < 0) { > > device_printf(dev, > > "The EEPROM Checksum Is Not Valid\n"); > > return (EIO); > > } > > } > > > > This is already checked into my code base at Intel, I've just been too > > busy to do anything with it, be my guest if you wish to check it in after > > testing... > > I can confirm that the above patch fixes the frequent initialization > problems with em(4) on my IBM/Lenovo ThinkPad X60s. Without the patch, > I often see the following on boot when there is no link on the em(4) > interface: > > Apr 17 22:05:12 lothlorien kernel: em0: The EEPROM Checksum Is Not Valid > Apr 17 22:05:12 lothlorien kernel: em0: Unable to initialize the hardware > > With the patch, I can not reproduce the invalid checksum errors - the > second call to e1000_validate_nvm_checksum() succeeds. > > Any chance of this patch hitting CURRENT anytime soon? :) Yes, the reason I have been delaying is that I need to merge the latest driver I've released from Intel into CURRENT, and this is going to be a sizeable task, we have a new shared code base that is more modular than before, it means each family of NIC now gets a seperate file and functions, with function pointers that are set up at runtime. All new drivers, Windows, Linux, and FreeBSD are using this code, its going to be a bit of work to make sure that CURRENT loses no fixes in this merge, I also had another project internally that needed my cycles, but starting tomorrow I will begin the task, I would hope to get something checked in by the weekend. Anyone that wishes to see the new driver structure can download it now from the Intel site, downloadfinder.intel.com, its driver version 6.3.9. Cheers, Jack