From owner-freebsd-mobile Sat Jan 31 16:52:35 1998 Return-Path: Received: (from majordom@localhost) by hub.freebsd.org (8.8.8/8.8.8) id QAA11238 for freebsd-mobile-outgoing; Sat, 31 Jan 1998 16:52:35 -0800 (PST) (envelope-from owner-freebsd-mobile@FreeBSD.ORG) Received: from gromit.pinpt.com (gromit.pinpt.com [205.179.195.7]) by hub.freebsd.org (8.8.8/8.8.8) with ESMTP id QAA11209 for ; Sat, 31 Jan 1998 16:52:31 -0800 (PST) (envelope-from schluntz@dns.pinpt.com) Received: from [206.170.30.41] (ppp-206-170-30-41.hywr01.pacbell.net [206.170.30.41]) by gromit.pinpt.com (8.7.5/8.6.12) with SMTP id QAA14335; Sat, 31 Jan 1998 16:52:03 -0800 (PST) Message-Id: <199802010052.QAA14335@gromit.pinpt.com> Subject: Re: Ach! Slot 0, unfielded interrupt 0 (unbreakable loop) Date: Sat, 31 Jan 98 16:57:37 -0700 x-sender: schluntz@dns.pinpt.com x-mailer: Claris Emailer 2.0v2, June 6, 1997 From: "Sean J. Schluntz" To: "Mike Smith" , "Sean J. Schluntz" cc: "Goeringer, Michael" , Mime-Version: 1.0 Content-Type: text/plain; charset="US-ASCII" Sender: owner-freebsd-mobile@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.org X-To-Unsubscribe: mail to majordomo@FreeBSD.org "unsubscribe freebsd-mobile" First, thank you very much for the great amount of assistance you have given me on this. It's a true road map for me to follow. *From the fingers of Mike Smith >> > The "driver allocation failed" message means that the 'ep' driver, >> > given the mappings supplied, failed to locate your card. >> > >> > You should add some debugging messages to the 'ep' driver's probe >> > routines to determine the cause of the rejection. >> >> Hm, unfortunately this is a step beyond me. I can give it a shot, but >> I'm pretty basic when it comes to coding C. > >OK, first perhaps you should go back to basics. > >Configure 'ep0' into your kernel; just copy it as-is from GENERIC. Check! >Make sure pccardd is *NOT* running. Insert the card and say >"pccardc dumpcis". Look through the output for an entry like this: Does killing it after it launches ok? I found that I got strange errors if I turned off pccard in rc.conf but was able to get the info you mentioned when I let the system load it on boot and then killed it. >Tuple #3, code = 0x15 (Version 1 info), length = 43 > 000: 04 01 44 41 4e 50 45 58 00 45 4e 2d 36 32 30 30 > 010: 50 32 00 52 65 76 2e 54 31 00 50 43 4d 43 49 41 > 020: 20 45 74 68 65 72 6e 65 74 00 ff > Version = 4.1, Manuf = [DANPEX],card vers = [EN-6200P2] > Addit. info = [Rev.T1],[PCMCIA Ethernet] > >It won't look exactly like this, but what you want is the Manuf and vers >fields. I think you have these OK already though. Got it, you are right I had this one. I had gotten it from the error message that It could not find "3Com Corporation" "3C589D" so I originally copped the 3C589 section and changed it for the 'D'. > >Now look through the output for one like this: > >Tuple #8, code = 0x1b (Configuration entry), length = 7 > 000: 20 08 ca 60 00 03 1f > Config index = 0x20 > Card decodes 10 address lines, limited 8/16 Bit I/O > I/O address # 1: block start = 0x300 block length = 0x20 I actually got two?: ('scuze any typos, it's on the laptop and I'm writing from the PMac.) Tuple #7, code 0x1b (Configuration entry), length = 15 000: 03 01 71 55 26 26 54 Config index = 0x1(default) and Tuple #8, code 0x1b (Configuration entry), length = 7 000: 03 01 71 55 26 26 54 Config index = 0x3 >What you are interested in is the configuration index number (here >0x20). The normal entry for the '589 is 0x1, and you want to make sure >that the I/O address it specifies *is* valid on your system. If it's >not, pick another configuration index. > >Create an /etc/pccard.conf containing *just* this: > >io 0x240-0x360 >irq 10 > ># 3com 3c589D >card "3Com Corporation" "3C589D" > config 0x1 "ep0" 10 > insert /etc/pccard_ether ep0 -link0 > remove /sbin/ifconfig ep0 delete > >Check your laptop's manual for IRQ details, IRQ 10 is normally but not >always available. Change the first string to match the "Manuf" >parameter, and the second to match the "vers" parameter extracted in >the dumpcis command above. Change the 0x1 on the 'config' line if >necessary to select a valid configuration index. > >Now start pccardd. > Ok, here is what happens: config 0x1 "ep0" 10 Card inserted, slot 0 # 30-45 second delay Slot0, unfielded interrupt (0) Slot0, unfielded interrupt (0) Slot0, unfielded interrupt (0) Slot0, unfielded interrupt (0) ... # Hard reboot is the only answer. config 0x3 "ep0" 10 Card inserted, slot 0 # 30-45 second delay Slot0, unfielded interrupt (0) Slot0, unfielded interrupt (0) Slot0, unfielded interrupt (0) Slot0, unfielded interrupt (0) ... # Hard reboot is the only answer. config 0x300 "ep0" 10 Card inserted, slot 0 # 10-20 second delay Jan 31 16:45:24 quarry cardd[249]: Resource allocation failure for 3Com Corporation. >If you still get the "driver allocation failed" messages, you will have >to do a little hacking. In the file sys/i386/isa/if_ep.c, there is a >function ep_pccard_init(), right near the top of the file. There are >several places where this function returns ENXIO without printing an >error message; you should add printf() statements before these returns >in such a fashion as to be able to tell which one is the one causing >your allocation to fail. At this point, it should be possible to >determine the actual cause of your problem. I went ahead and made the changes (even though this is a resource error not a driver error) and added a printf to the two ENXIO exits that didn't' supply an error but still nothing. Should I do the same to another area of the code to find the problem with the resource allocation? Thanks again for all of your help! -Sean ---------------------------------------------------------------------- Sean J. Schluntz schluntz@pinpt.com Systems Engineer (408) 997-6900 x222 PinPoint Software Corporation http://www.pinpt.com