Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 28 Aug 2001 00:48:42 -0700
From:      unsafe at any speed <erich@ucsd.edu>
To:        Warner Losh <imp@harmony.village.org>
Cc:        mobile@FreeBSD.ORG
Subject:   cards not getting interrupts (Re: MFC: ISA routing support)
Message-ID:  <3B8B4CDA.9010604@ucsd.edu>
References:  <200108260507.f7Q570W08734@harmony.village.org>

next in thread | previous in thread | raw e-mail | index | archive | help
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: <TI PCI-1250 PCI-CardBus Bridge> 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: <PC Card bus (classic)> on pcic0
pcic1: <TI PCI-1250 PCI-CardBus Bridge> 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: <PC Card bus (classic)> 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




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