Re: wi0 problems under latest STABLE
On Mon, 11 Mar 2002, Brooks Davis wrote: > At this point there isn't. I I'm going to have to rethink handling this > problem. It appears that WI_TIMEOUT is actually too long (it hangs the > machine for WI_TIMEOUT*WI_DELAY if the command doesn't return). > Additionaly, it appears that some cards are just broken and we need to > find a way to deal with them. I made some changes to if_wi.c which completely cleared up the "timeout in wi_cmd" messages and 500ms freezes which came up every minute on my laptop and desktop machines. The laptop is now completely back to the same behaviour as in cvs rev 1.18.2.14 and earlier of if_wi.c, though the desktop still logs these messages at boot: wi0: at port 0x240-0x27f irq 15 slot 0 on pccard0 wi0: 802.11 address: 00:02:2d:2b:ab:06 wi0: using Lucent chip or unknown chip wi0: timeout in wi_cmd 2; event status 8080 wi0: timeout in wi_cmd 0; event status 8080 wi0: wi_cmd: busy bit won't clear. wi0: wi_cmd: busy bit won't clear. wi0: wi_cmd: busy bit won't clear. wi0: wi_cmd: busy bit won't clear. wi0: init failed Probably some changes are still needed at attach time. Here is the patch: Index: if_wi.c === RCS file: /usr/src/cvs-repo/src/sys/i386/isa/Attic/if_wi.c,v retrieving revision 1.18.2.16 diff -c -r1.18.2.16 if_wi.c *** if_wi.c 4 Mar 2002 20:03:57 - 1.18.2.16 --- if_wi.c 14 Mar 2002 12:55:54 - *** *** 453,459 --- 453,461 struct wi_ltv_gen gen; struct ifnet*ifp; int error; + int s; + s = splimp(); sc = device_get_softc(dev); ifp = &sc->arpcom.ac_if; *** *** 463,468 --- 465,471 if (error) { device_printf(dev, "bus_setup_intr() failed! (%d)\n", error); wi_free(dev); + splx(s); return (error); } *** *** 481,486 --- 484,490 if ((error = wi_read_record(sc, (struct wi_ltv_gen *)&mac)) != 0) { device_printf(dev, "mac read failed %d\n", error); wi_free(dev); + splx(s); return (error); } bcopy((char *)&mac.wi_mac_addr, *** *** 584,589 --- 588,594 ether_ifattach(ifp, ETHER_BPF_SUPPORTED); callout_handle_init(&sc->wi_stat_ch); + splx(s); return(0); } *** *** 799,804 --- 804,810 { struct wi_softc *sc; struct ifnet*ifp; + int s; sc = xsc; ifp = &sc->arpcom.ac_if; *** *** 809,815 --- 815,823 if (ifp->if_flags & IFF_OACTIVE) return; + s = splimp(); wi_cmd(sc, WI_CMD_INQUIRE, WI_INFO_COUNTERS); + splx(s); return; } -- Tod McQuillin To Unsubscribe: send mail to [EMAIL PROTECTED] with "unsubscribe freebsd-stable" in the body of the message
Re: wi0 problems under latest STABLE
On 7 Mar 2002 at 8:13, Michael Sierchio wrote: > Dan Langille wrote: > > > This is the /etc/pccard.conf which I was using: > > > > card "Lucent Technologies" "WaveLAN/IEEE" > > config 0x1 "wi" ? > > insert /etc/pccard_ether $device start > > remove /etc/pccard_ether $device stop > > > > insert wicontrol -i $device -p 3 > > insert wicontrol -i $device -k "4gRp1" > > I don't have those lines in my pccard.conf. I have the following > in /etc/rc.conf > > pccard_enable="YES" > pccard_conf="/etc/pccard.conf" > pccard_mem="DEFAULT" > pccard_beep="0" > pccardd_flags=" -z " Then what do you have in /etc/pccard.conf? Why are you overriding pccard_conf like that? > and have the wicontrol commands in /etc/start_if.wi0 Could you paste that file please? > What rev of the firmware is on the card? You can download WSU_810.exe and > exract and run the util on a windoze macheen. I don't know. How can I tell? And I don't have a windows machine I can run that UTIL on (I have windows boxes, just not one that will take that card). Thank you. -- Dan Langille The FreeBSD Diary - http://freebsddiary.org/ - practical examples To Unsubscribe: send mail to [EMAIL PROTECTED] with "unsubscribe freebsd-stable" in the body of the message
Re: wi0 problems under latest STABLE
On Thu, Mar 07, 2002 at 12:14:41AM -0500, Dan Langille wrote: > I've just updated a my 4.5-STABLE laptop to the latest RELENG_4. It > contains a Lucent Orinoco card which turns up as wi0. It was working with > a STABLE dated Jan 28 2002. With the build from this evening's cvsup, I'm > getting time outs on wi0. > > This is the /etc/pccard.conf which I was using: > > [dan@laptop:~] $ less /etc/pccard.conf > # Lucent WaveLAN/IEEE > card "Lucent Technologies" "WaveLAN/IEEE" > config 0x1 "wi" ? > insert /etc/pccard_ether $device start > remove /etc/pccard_ether $device stop > > insert wicontrol -i $device -p 3 > insert wicontrol -i $device -k "4gRp1" > > What did I miss? > > Under the latest build, I get this: > >laptop /kernel: wi0: timeout in wi_cmd 11; event status 8000 > > If it's any help: > > wi0: at port 0x240-0x27f irq 3 slot 0 on pccard0 > wi0: 802.11 address: 00:02:2d:0e:66:bd > wi0: using Lucent chip or unknown chip > > It doesn't seem to be affecting the traffic, it's just a repeating > message. If I don't use the above pccard.conf, the card doesn't seem to > work very well at all. It's fairly harmless (previously the command just failed without saying anything), it might be worth trying to raise the value of WI_DELAY in if_wireg.h. I'd suggest trying 100 and if that fixes it, lower it to see if you can find a better lower bound then 5. If that doesn't work, it might be worth trying to raise WI_TIMEOUT, but 500ms is a long time for a network adaptor. I'm not sure what you mean about not using the pccard.conf entry. The top part is exactly what is in /etc/defaults/pccard.conf and it won't work if you don't set your wep key and enable ad-hoc mode if that's how your network is configured. -- Brooks -- Any statement of the form "X is the one, true Y" is FALSE. PGP fingerprint 655D 519C 26A7 82E7 2529 9BF0 5D8E 8BE9 F238 1AD4 msg42176/pgp0.pgp Description: PGP signature