Re: [bug] e100 bug: checksum mismatch on 82551ER rev10

Auke Kok
2006-07-10T15:26:38Z

Molle Bestefich wrote:
> I'm trying to get Linux running on a Nokia IP130 box.
>
> The 3x Intel i82551ER NICs doesn't work.
>
> Apply this patch which just removes the error return path (and adds a
> little debug info):
>
> ===============================================================
> --- drivers/net/e100.c.orig 2006-07-09 12:03:14.000000000 +0200
> +++ drivers/net/e100.c 2006-07-09 12:03:22.000000000 +0200
> @@ -756,8 +756,7 @@
> * the sum of words should be 0xBABA */
> checksum = le16_to_cpu(0xBABA - checksum);
> if(checksum != nic->eeprom[nic->eeprom_wc - 1]) {
> - DPRINTK(PROBE, ERR, "EEPROM corrupted\n");
> - return -EAGAIN;
> + DPRINTK(PROBE, ERR, "EEPROM corrupted (stored: %4.4x,
> calc'ed: %
> 4.4x)\n", nic->eeprom[nic->eeprom_wc - 1], checksum);
> }
>
> return 0;
> ===============================================================
>
> And everything works!
>
> I think I've heard about this bug before, but I don't know why it occurs.
> So the best I can do is the above (ignore failed EEPROM checksum test).

[removed scott feldman since he's not maintained e100 for a long time now]

Hi,

If you have received a motherboard or card with a broken EEPROM then your card
is in a limbo state - it might work but results are unreliable and may cause
your entire system to break (and even data corruption).

You should contact the hardware vendor and have the board replaced or upgraded
with a proper EEPROM. Continuing to work with the corrupted EEPROM image that
you have now can seriously hurt you later on.

Cheers,

Auke