From owner-freebsd-bugs Fri Jun 2 13:50:11 2000 Delivered-To: freebsd-bugs@freebsd.org Received: from freefall.freebsd.org (freefall.FreeBSD.ORG [204.216.27.21]) by hub.freebsd.org (Postfix) with ESMTP id 15F4B37B6E6 for ; Fri, 2 Jun 2000 13:50:01 -0700 (PDT) (envelope-from gnats@FreeBSD.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.9.3/8.9.2) id NAA08787; Fri, 2 Jun 2000 13:50:00 -0700 (PDT) (envelope-from gnats@FreeBSD.org) Received: by hub.freebsd.org (Postfix, from userid 32767) id 6CCE737B782; Fri, 2 Jun 2000 13:42:40 -0700 (PDT) Message-Id: <20000602204240.6CCE737B782@hub.freebsd.org> Date: Fri, 2 Jun 2000 13:42:40 -0700 (PDT) From: yergeau@gloworm.stanford.edu To: freebsd-gnats-submit@FreeBSD.org X-Send-Pr-Version: www-1.0 Subject: i386/18970: Linksys PCMPC100 *V2* gets incorrect hardware address Sender: owner-freebsd-bugs@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.org >Number: 18970 >Category: i386 >Synopsis: Linksys PCMPC100 *V2* gets incorrect hardware address >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: Fri Jun 02 13:50:00 PDT 2000 >Closed-Date: >Last-Modified: >Originator: Dan Yergeau >Release: 4.0 >Organization: >Environment: FreeBSD ritter.Stanford.EDU 4.0-RELEASE FreeBSD 4.0-RELEASE #3: Fri Jun 2 12:19:41 PDT 2000 troot@ritter.Stanford.EDU:/usr/src/sys/compile/RITTER i386 >Description: Version 2 of this PCMCIA card is incorrectly identified as a NE2000, and the incorrect MAC address is extracted. ed0: address 01:d4:ff:03:00:20, type NE2000 (16 bit) The MAC address should be 00:e0:98:80:15:df (as printed on the card and reported by Windoze). >How-To-Repeat: >Fix: /sys/dev/ed/if_ed.c:ed_probe_Novell_generic tries to identify if the card is NE2000, NE1000, or Linksys by writing a test pattern into the card's memory at 8k. This fails for the V2 version of the Linksys PCMPC100, so ed_get_Linksys doesn't get called to extract the MAC address in the special way needed for the Linksys (DL10019C). When I change that conditional in if_ed.c to always succeed, ================================================================= *************** *** 1013,1019 **** ed_pio_writemem(sc, test_pattern, 8192, sizeof(test_pattern)); ed_pio_readmem(sc, 8192, test_buffer, sizeof(test_pattern)); ! if (bcmp(test_pattern, test_buffer, sizeof(test_pattern)) == 0) { /* could be either an NE1000 or a Linksys ethernet controller */ linksys = ed_get_Linksys(sc); if (linksys) { --- 1022,1029 ---- ed_pio_writemem(sc, test_pattern, 8192, sizeof(test_pattern)); ed_pio_readmem(sc, 8192, test_buffer, sizeof(test_pattern)); ! /*if (bcmp(test_pattern, test_buffer, sizeof(test_pattern)) == 0) {*/ ! if (1) { /* could be either an NE1000 or a Linksys ethernet controller */ linksys = ed_get_Linksys(sc); if (linksys) { ================================================================= the correct MAC address is not extracted and the card is identified as a "Linksys" instead of a "NE2000". ed0: address 00:e0:98:80:15:df, type Linksys (16 bit) Note that I'm not suggesting the above diff as the fix, but it does point out where the driver needs to be fixed. >Release-Note: >Audit-Trail: >Unformatted: To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-bugs" in the body of the message