From owner-freebsd-mobile Sat Aug 25 22: 7:11 2001 Delivered-To: freebsd-mobile@freebsd.org Received: from rover.village.org (rover.bsdimp.com [204.144.255.66]) by hub.freebsd.org (Postfix) with ESMTP id 89B3237B410; Sat, 25 Aug 2001 22:07:01 -0700 (PDT) (envelope-from imp@harmony.village.org) Received: from harmony.village.org (harmony.village.org [10.0.0.6]) by rover.village.org (8.11.3/8.11.3) with ESMTP id f7Q570q61037; Sat, 25 Aug 2001 23:07:00 -0600 (MDT) (envelope-from imp@harmony.village.org) Received: from harmony.village.org (localhost.village.org [127.0.0.1]) by harmony.village.org (8.11.3/8.11.4) with ESMTP id f7Q570W08734; Sat, 25 Aug 2001 23:07:00 -0600 (MDT) (envelope-from imp@harmony.village.org) Message-Id: <200108260507.f7Q570W08734@harmony.village.org> To: mobile@freebsd.org Cc: doc@freebsd.org Subject: MFC: ISA routing support Date: Sat, 25 Aug 2001 23:06:59 -0600 From: Warner Losh 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 [[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