Date: Tue, 17 Apr 2007 18:56:52 -0700 From: "Jack Vogel" <jfvogel@gmail.com> To: "Jack Vogel" <jfvogel@gmail.com>, "Gleb Smirnoff" <glebius@freebsd.org>, "Bill Paul" <wpaul@freebsd.org>, freebsd-current@freebsd.org, freebsd-stable@freebsd.org, jon.otterholm@ide.resurscentrum.se Subject: Re: Lenovo X60 em workaround Message-ID: <2a41acea0704171856h48f3d7d2u26ee8912c14d2936@mail.gmail.com> In-Reply-To: <20070417233003.GB35507@tirith.brixandersen.dk> 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>
next in thread | previous in thread | raw e-mail | index | archive | help
On 4/17/07, Henrik Brix Andersen <henrik@brixandersen.dk> 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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?2a41acea0704171856h48f3d7d2u26ee8912c14d2936>