From owner-freebsd-stable Wed Oct 4 4:44:56 2000 Delivered-To: freebsd-stable@freebsd.org Received: from smtp2.vnet.net (smtp2.vnet.net [166.82.1.32]) by hub.freebsd.org (Postfix) with ESMTP id 9ED3237B503 for ; Wed, 4 Oct 2000 04:44:53 -0700 (PDT) Received: from dignus.com (ponds.vnet.net [166.82.177.48]) by smtp2.vnet.net (8.10.1/8.10.1) with ESMTP id e94Bij413508; Wed, 4 Oct 2000 07:44:47 -0400 (EDT) Received: from lakes.dignus.com (lakes.dignus.com [10.0.0.3]) by dignus.com (8.9.2/8.8.5) with ESMTP id HAA42295; Wed, 4 Oct 2000 07:44:43 -0400 (EDT) Received: (from rivers@localhost) by lakes.dignus.com (8.9.3/8.6.9) id HAA84948; Wed, 4 Oct 2000 07:44:42 -0400 (EDT) Date: Wed, 4 Oct 2000 07:44:42 -0400 (EDT) From: Thomas David Rivers Message-Id: <200010041144.HAA84948@lakes.dignus.com> To: imp@village.org, rivers@dignus.com Subject: Re: 4.1-RELEASE pccard? Cc: behanna@zbzoom.net, freebsd-stable@FreeBSD.ORG, jim@siteplus.net, steve@sse0691.bri.hp.com In-Reply-To: <200010032346.RAA31311@harmony.village.org> Sender: owner-freebsd-stable@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG > > In message <200010032214.SAA82730@lakes.dignus.com> Thomas David Rivers writes: > : I 4.1(.1) I get: > : > : ed1 at port 0x300-0x31f ir1 3 slot 1 on pccard1 > : ed1: address 01:02:00:ff:15:1d, type NE2000 (16 bit) > : > > This is a big clue that something bad is wrong. > > Warner > Warner is right... Just to verify things further - I hardcoded the mac address in if_ed.c:ed_get_Linksys() (wrapping an #if 0 around the code that gets it before and simply setting the bytes in sc->arpcom.ac_enaddr[].) This worked beautifully - and my laptop is no `on the net.' The code for this in the 3.4 PAO is: /* * 0x14-0x19 : Physical Address Register 0-5 (PAR0-PAR5) * 0x1A : Card ID Register (CIR) * 0x1B : Check Sum Register (SR) */ for (sum = 0, i = 0x4; i < 0xc; i++) sum += inb(sc->asic_addr + i); if (sum != 0xff) return 0; /* invalid DL10019C */ for (i = 0; i < ETHER_ADDR_LEN; i++) { sc->arpcom.ac_enaddr[i] = inb(sc->asic_addr + 0x4 + i); /* printf("%02x.", sc->arpcom.ac_enaddr[i]); */ } return 2; while the code for this in 4.1.1 is: /* * Linksys registers(offset from ASIC base) * * 0x04-0x09 : Physical Address Register 0-5 (PAR0-PAR5) * 0x0A : Card ID Register (CIR) * 0x0B : Check Sum Register (SR) */ for (sum = 0, i = 0x04; i < 0x0c; i++) sum += ed_asic_inb(sc, i); if (sum != 0xff) return (0); /* invalid DL10019C */ for (i = 0; i < ETHER_ADDR_LEN; i++) { sc->arpcom.ac_enaddr[i] = ed_asic_inb(sc, 0x04 + i); } it turns out that `sum' was not 0xff (but 0x51) as it should have been... but, everything looks just fine to me... (of course, I'm not "up" on the busifying of everything - so I'm not sure if ed_asic_inb() actually expands to the same things as the basic inb() was in 3.4.) But - this seems to be the place for the difficulties... - Dave Rivers - To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-stable" in the body of the message