Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 18 Apr 2007 01:30:03 +0200
From:      Henrik Brix Andersen <henrik@brixandersen.dk>
To:        Jack Vogel <jfvogel@gmail.com>
Cc:        Bill Paul <wpaul@freebsd.org>, jon.otterholm@ide.resurscentrum.se, Gleb Smirnoff <glebius@freebsd.org>, freebsd-stable@freebsd.org, freebsd-current@freebsd.org
Subject:   Re: Lenovo X60 em workaround
Message-ID:  <20070417233003.GB35507@tirith.brixandersen.dk>
In-Reply-To: <2a41acea0701221030x52dd8821pd858ae7e6740ce92@mail.gmail.com>
References:  <2a41acea0701171258k16b4c6ebuf1d4794b89d0749b@mail.gmail.com> <20070120065321.DB61216A405@hub.freebsd.org> <2a41acea0701201435g6f960b40r3cf0552d87ab2bfd@mail.gmail.com> <20070122083506.GW4485@FreeBSD.org> <2a41acea0701221030x52dd8821pd858ae7e6740ce92@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help

--xXmbgvnjoT4axfJE
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

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:
>=20
>        /* 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);
>                 }
>         }
>=20
>  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? :)

Regards,
Brix
--=20
Henrik Brix Andersen <henrik@brixandersen.dk>

--xXmbgvnjoT4axfJE
Content-Type: application/pgp-signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.7 (FreeBSD)
Comment: GnuPG signed

iD8DBQFGJVh6v+Q4flTiePgRAl8HAKChX/5jZNCWUqFlKQMac+F4X1RaGwCdEWTc
MDVyabUN/0TK4sbsjGRchpc=
=M00m
-----END PGP SIGNATURE-----

--xXmbgvnjoT4axfJE--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20070417233003.GB35507>