Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 25 Aug 2001 23:06:59 -0600
From:      Warner Losh <imp@harmony.village.org>
To:        mobile@freebsd.org
Cc:        doc@freebsd.org
Subject:   MFC: ISA routing support
Message-ID:  <200108260507.f7Q570W08734@harmony.village.org>

next in thread | raw e-mail | index | archive | help
[[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-doc" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200108260507.f7Q570W08734>