Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 01 Sep 2001 02:33:00 -0600
From:      Warner Losh <imp@harmony.village.org>
To:        bmah@FreeBSD.ORG
Cc:        freebsd-mobile@FreeBSD.ORG, freebsd-doc@FreeBSD.ORG
Subject:   Re: Documenting pcic changes to -CURRENT and -STABLE 
Message-ID:  <200109010833.f818X0h10099@harmony.village.org>
In-Reply-To: Your message of "Fri, 31 Aug 2001 15:26:32 PDT." <200108312226.f7VMQWk00844@intruder.bmah.org> 
References:  <200108312226.f7VMQWk00844@intruder.bmah.org>  

next in thread | previous in thread | raw e-mail | index | archive | help
In message <200108312226.f7VMQWk00844@intruder.bmah.org> Bruce A. Mah writes:
: I admit I'm really ignorant about the latest pcic(4) changes for both
: -CURRENT and 4-STABLE.  I'm wondering if someone might be able to help
: me write up release note entries for this stuff.  I asked Warner, but
: he's clearly busy getting the code to *work*, and we are all probably
: better off with him putting his time into that part.
: 
: To kick things off...here was a list of questions I would have needed 
: to write something up.  Some of this might be "remedial knowledge" to 
: some...it might not need to go in release notes entries, but I wouldn't 
: be able to write anything without knowing this...

I'll do my best.  Sorry for not replying sooner.

: > 1.  What does "interrupt routing" mean?  

There are two busses in the laptop.  There's an ISA bus and a PCI
bus.  Most normal devices live on one bus or the other exclusively.
However, the pcic devices are special.  Newer ones live on the PCI
bus, but also have a back door connection to the ISA bus in some way.

Interrupt routing referrs to which set of interrupt signals is used.
PCI means use the PCI bus' interrupt signals.  ISA means use the ISA
bus' interrupt signals (basically).

PCI interrupts can be shared.  ISA interrupts cannot be shared.
PCI interrupts are automatically configured, while ISA interrupts must
be configured by the user.

Since PCI interrupts are automatically configured, and there are a
large number of PCI bridge chipsets, PCI interrupt routing is handled
in the BIOS of the machine.  The BIOS provides two things that we
use.  First, it provides us with a wiring table that lets us know how
the bus is connected.  This is called the PIR table.  Second, it
provides a functions that says "route IRQ 10 (aka intpin 10) to this
interrupt line, which is connected to this slot."

: > 2.  What do "PCI attachment" and "ISA attachment" mean?

PCI attachment means that the device lives on a PCI bus and is treated
as such.  ISA attachment means that the device lives on the ISA bus.
It is a system configuration term.

In 4.3 and earleir, we would always do an ISA attachment of pcic
devices.  We'd put the PCI parts into a compatibility mode and then
attach them as ISA devices.  Now, we don't put them into compatibility
mode and treat them as real PCI devices.

: > 3.  Does this term (and attendant code) apply only to PCMCIA and/or
: > CardBus devices or are other devices (e.g. PCI/ISA cards, built-in
: > NICs/disk controllers/other hardware) affected too?

Only PCI <-> PCMCIA and PCI <-> CardBus bridges.

: > 4.  Does the new code allow me to use new devices (e.g. NICs, disk
: > adapters) that I couldn't use before?

Yes.  It allows one to use the various Cardbus bridge PCI cards.  The
Orinoco cards are the most common, but other cards work too.

: > 5.  Does the new code allow me to use devices on new machines that I
: > couldn't before?

Not really, but see 6.

: > 6.  Does the new code improve performance, flexibility, or reliability
: > in any way?

When PCI interrupt routing works, it allows machines that failed for
polling mode to work without configraution that was needed before.
PCI interrupts can also be shared, which makes it possible to use
cards on some laptops that didn't have any free IRQs.

The code has also been improved wrt eject to help close the inherent
races more than before.

: > 7.  What configuration file (i.e. KERNCONF, rc.conf, rc.sysctl)
: > changes do I need to make?  (RTFM is an acceptable answer if I can
: > point readers someplace, for example the pcic.4 manpage.) 

If PCI interrupt routing works, there are no configuration changes
necessary.  Old configurations will continue to work.

If you have an ISA only system, no configuration changes are
necessary.

On some systems, you need to tweak the configuration.  These systems
either panic when we call the pcibios or hang at root mounting time.
Often time using ISA interrupts on the PCI device fixes the
problem. (see pcic.4 for details, but they can be summarized as
	hw.pcic.intr_path=1
	hw.pcic.irq=0
in /boot/loader.conf.  You can also "set" these at the boot loader if
you are bootstrapping the system).

This needs to be documented in the release notes :-)

And then there are bugs...

: If anyone can help (either by answering the above, or, preferably, 
: actually writing some release notes-like thing), I'd be most grateful.

I can do the above, but writing release notes is hard for me...

Warner

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-mobile" in the body of the message




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