From owner-freebsd-questions Thu Feb 25 20:49: 4 1999 Delivered-To: freebsd-questions@freebsd.org Received: from netrinsics.com (unknown [210.74.178.40]) by hub.freebsd.org (Postfix) with ESMTP id 5176814DFC; Thu, 25 Feb 1999 20:48:53 -0800 (PST) (envelope-from robinson@netrinsics.com) Received: (from robinson@localhost) by netrinsics.com (8.9.2/8.8.7) id MAA02250; Fri, 26 Feb 1999 12:22:18 +0800 (CST) (envelope-from robinson) Date: Fri, 26 Feb 1999 12:22:18 +0800 (CST) From: Michael Robinson Message-Id: <199902260422.MAA02250@netrinsics.com> To: freebsd-questions@FreeBSD.ORG, mobile@FreeBSD.ORG, patseal@hyperhost.net Subject: Re: PCCARD modem trouble (fwd) In-Reply-To: Sender: owner-freebsd-questions@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG Patrick Seal writes: >If I'm not docked I can use the modem, when I am docked it complains: >driver allocation failed for 3COM >The pccard.conf has irq 10 as the default for the modem. I change it to 8 >(to avoid conflict with xl0) and it won't work docked or undocked, even >thouth the dumpcis seems to say it should work with irq 8. When I moved from 2.2-PAO to 3.1, my pccard support stopped working entirely. After much debugging, I found out it was due in part to how the irq's are being allocated. In order to get an IRQ allocated, there has to be a match between the device IRQ mask and the PCCARD irq mask pool (which is only an approximation of the actual irq slots available). Furthermore, there is no way to control which IRQ the pcic driver grabs for itself, and, since it gets first dibs, if it grabs an IRQ that you need for a card, you're screwed. I added the following to /sys/pccard/pccard.c: +#ifdef PCIC_DEBUG + printf("Locating IRQ...\n(slt->ctrl->irqs=%x, desc->irqmask=%x)\n", slt->ctrl->irqs, desc->irqmask); +#endif if ((slt->ctrl->irqs & desc->irqmask) == 0) return(EINVAL); When I insert my PortableDock harddrive, I get the following kernel message: Locating IRQ... (slt->ctrl->irqs=e00, desc->irqmask=200) As you can see, the PCCARD pool only consists of IRQ 10, 11, and 12 (which is much less than what is actually available). The card requires IRQ 10, and gets it (before I hacked pcic.c, the controller would grab IRQ 10 for itself). I would suggest you check to make sure the PCCARD IRQ pool actually has IRQ 10 available at the time of card insertion (using my method, or something similar). -Michael Robinson To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-questions" in the body of the message