Date: Tue, 23 Mar 1999 10:40:14 -0800 (PST) From: ume@mahoroba.org To: freebsd-gnats-submit@freebsd.org Subject: kern/10755: de driver says `invalid EESPROM checksum' Message-ID: <19990323184014.4126114BFA@hub.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 10755 >Category: kern >Synopsis: de driver says `invalid EESPROM checksum' >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Tue Mar 23 10:40:01 PST 1999 >Closed-Date: >Last-Modified: >Originator: Hajimu UMEMOTO >Release: 4.0-CURRENT >Organization: Internet Mutual Aid Society YOKOHAMA >Environment: FreeBSD peace.calm.imasy.or.jp 4.0-CURRENT FreeBSD 4.0-CURRENT #0: Fri Feb 12 03:27:37 JST 1999 ume@peace.calm.imasy.or.jp:/usr/src/sys/compile/PEACE-UP i386 >Description: de driver says `invalid EESPROM checksum' for Digital 21143 Fast Ethernet. According to `Digital Semiconductor(TM) 21X4 Serial ROM Format Version 4.05', location of CRC was changed. >How-To-Repeat: Use Digital 21143 Fast Ethernet. >Fix: --- if_de.c.orig Mon Mar 22 23:22:58 1999 +++ if_de.c Wed Mar 24 03:13:25 1999 @@ -2084,9 +2084,14 @@ } #define tulip_mchash(mca) (tulip_crc32(mca, 6) & 0x1FF) -#define tulip_srom_crcok(databuf) ( \ +#define tulip_srom_crcok(databuf) \ + (tulip_srom_crcok128(databuf) || tulip_srom_crcok96(databuf)) +#define tulip_srom_crcok128(databuf) ( \ ((tulip_crc32(databuf, 126) & 0xFFFFU) ^ 0xFFFFU) == \ ((databuf)[126] | ((databuf)[127] << 8))) +#define tulip_srom_crcok96(databuf) ( \ + ((tulip_crc32(databuf, 94) & 0xFFFFU) ^ 0xFFFFU) == \ + ((databuf)[94] | ((databuf)[95] << 8))) static unsigned tulip_crc32( >Release-Note: >Audit-Trail: >Unformatted: To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-bugs" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?19990323184014.4126114BFA>