From owner-freebsd-mobile Tue Aug 28 1:38:21 2001 Delivered-To: freebsd-mobile@freebsd.org Received: from jacinto.yi.org (dsl-64-34-174-133.telocity.com [64.34.174.133]) by hub.freebsd.org (Postfix) with ESMTP id 3938D37B401 for ; Tue, 28 Aug 2001 01:38:16 -0700 (PDT) (envelope-from erich@ucsd.edu) Received: from ucsd.edu ([192.168.42.7]) by jacinto.yi.org (8.9.3/8.9.3) with ESMTP id AAA43451; Tue, 28 Aug 2001 00:42:01 -0700 (PDT) (envelope-from erich@ucsd.edu) Message-ID: <3B8B4CDA.9010604@ucsd.edu> Date: Tue, 28 Aug 2001 00:48:42 -0700 From: unsafe at any speed User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:0.9.3+) Gecko/20010825 X-Accept-Language: en-us MIME-Version: 1.0 To: Warner Losh Cc: mobile@FreeBSD.ORG Subject: cards not getting interrupts (Re: MFC: ISA routing support) References: <200108260507.f7Q570W08734@harmony.village.org> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Sender: owner-freebsd-mobile@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.org Hi again Warner, It turns out I'm still not out of the woods with my Thinkpad 560X either. With this change and the lines in loader.conf, the kernel boots fine. Yesterday, if you remember, I had a kernel from 8/26 and a world from before the last set of changes from pccardd. The system booted and worked with my 3c589, even though it was giving it a different IRQ (15) than the ones I had listed in pccard.conf (7, 10). So I built a new world to match the kernel, and it still boots and now assigns the correct IRQs to the pccards. But it doesn't look like any interrupts ever make it to/from the pccards. The 3c589 looks like it gets a DHCP address (unless dhclient saved it from before) and ifconfig shows all the right values. But I can't ping with it or respond to pings. Running cvsup it claims to have connected to cvsup7, but never got past that. The other card I have handy is an ATA adapter with an external hard drive. It identifies the card itself correctly, but can't find any devices on the ATA bus. When I insert it, it says, /kernel: ata3-master: ata_command: timeout waiting for intr /boot/loader.conf says, hw.pcic.intr_path=1 hw.pcic.irq=0 I can't easily get a whole dmesg, but a by-hand copy of the pcic lines looks like this: pcic0: mem 0x20822000-0x20822fff at device 2.0 on pci0 pcic0: Polling mode pcic0: TI12XX PCI Config Reg: [ring enable][speaker enable][pwr save][CSC parallel isa irq] pccard0: on pcic0 pcic1: mem 0x20821000-0x20821fff at device 2.1 on pci0 pcic1: Polling mode pcic1: TI12XX PCI Config Reg: [ring enable][speaker enable][pwr save][CSC parallel isa irq] pccard1: on pcic1 Eric Warner Losh wrote: > [[doc is cc'd so that they can put this in the right release-noteish place]] > > I've implmented the first cut of ISA routing support for PCI devices. > There are just too many machines that FreeBSD can't seem to use their > PCIBIOS to route interrupts :-(. > > So, if you CVSUP after 2001/08/26 04:48:47 GMT (well, give the mirrors > some time to propigate), you will have the following option. > > If your laptop cannot route PCI interrupts with FreeBSD's current > interrupt routing scheme, please use ISA interrupts. To enable ISA > interrupts, you need to set two tunables. A tunable is generally set > in /boot/loader.conf by adding a line that says: > tunable="value" > They may also be set, for testing purposes, at the "ok" command line > prompt using the set command: > ok set tunable="value" > > The first tunable is "hw.pcic.intr_path". Setting this to 1 will > force the PCI pcic attachment to use ISA routing. It has no effect on > the ISA pcic attachment. Almost all will be configured as it was > before. However, since you cannot set irq values for pci interrupts, > the second tunable "hw.pcic.irq" is used. This tunable sets which IRQ > to use for the CSC (aka management) interrupt. 0 is polling, and the > recommended value. Systems with two slots must currently use polling > mode (this will be fixed soon, btw). Systems with one slot may elect > to use an interrupt for the CSC. > > Summary: > To put things into ISA mode, add the following two lines to > /boot/loader.conf: > hw.pcic.intr_path=1 > hw.pcic.irq=0 > Add free IRQs to /etc/pccard.conf for cards to use. > > I was successful at using this on my pc98 laptop that doesn't have a > PIR table, and likely won't be able to route interrupts properly > (since the cbus-pci bridge chip is thinly documented at best). I was > able to use a 3C589E and commit using the new kernel from this box. > > Most of this information is contained in the new pcic.4 man page. > > Those of you having problems with the PCI BIOS interrupt routing, or > if you have a CL-PD6729 or '6730 in your laptop, please try to use ISA > path for the interrupts and let me know if it works or fails. If you > have a pccardd built from sources that are newer than August 21, you > can just boot test kernels with that pccardd and things should work. > (cardd.c revision 1.46.2.14 is the good version, it works with both > old (back to at least 4.2) and new kernels). > > I'll put together a web form with all the information I'll need for > bug reports tomorrow or monday. I gotta write my USENIX paper on this > whole experience still. > > Warner > > P.S. Please accept my profuse appologies for the high rate of change > in pccard in -stable. Given the long shakeout time in -current I > thought that there wouldn't be near this many issues. > > To Unsubscribe: send mail to majordomo@FreeBSD.org > with "unsubscribe freebsd-mobile" in the body of the message > > To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-mobile" in the body of the message