| Summary: | [f: 4.4] Routing problem with PCI intrrupts. | ||
|---|---|---|---|
| Product: | Base System | Reporter: | Warner Losh <imp> |
| Component: | kern | Assignee: | Warner Losh <imp> |
| Status: | Closed FIXED | ||
| Severity: | Affects Only Me | ||
| Priority: | Normal | ||
| Version: | Unspecified | ||
| Hardware: | Any | ||
| OS: | Any | ||
|
Description
Warner Losh
2001-08-25 03:10:00 UTC
Responsible Changed From-To: freebsd-bugs->imp I'll fix it. I can't test the hw.pci.ignore_pcibios sysctl due to there's no such
sysctl in my kernel(cvsupped about 4 hours ago):
$FreeBSD: src/sys/i386/isa/pcibus.c,v 1.57.2.4 2001/08/21 17:24:36 imp Exp $
$FreeBSD: src/sys/i386/isa/pci_cfgreg.c,v 1.1.2.3 2001/08/21 20:13:54 imp Exp $
$FreeBSD: src/sys/pci/pci.c,v 1.141.2.10 2001/08/21 17:21:13 imp Exp $
$FreeBSD: src/sys/pccard/pccard_nbk.c,v 1.15.2.9 2001/08/23 07:57:14 imp Exp $
$FreeBSD: src/sys/pccard/pcic.c,v 1.89.2.20 2001/08/23 07:57:14 imp Exp $
$FreeBSD: src/sys/pccard/pcic_isa.c,v 1.13.2.5 2001/08/23 07:57:14 imp Exp $
$FreeBSD: src/sys/pccard/pcic_pci.c,v 1.54.2.8 2001/08/23 07:57:14 imp Exp $
$FreeBSD: src/sys/pccard/pcic_pci.h,v 1.23.2.7 2001/08/21 09:06:25 imp Exp $
$FreeBSD: src/sys/pccard/pcicvar.h,v 1.15.2.8 2001/08/23 07:57:14 imp Exp $
pir output:
$PIR table at 0x2811af90 version 1.0
PCI interrupt router at 0:1.8 vendor 0x8086 device 0x122e
PCI-only interrupts [ ]
entry bus slot device
00: 00 00 03 INTA 60 [ 3 4 5 6 7 9 10 11 12 14 15]
INTB 61 [ 3 4 5 6 7 9 10 11 12 14 15]
INTC 62 [ 3 4 5 6 7 9 10 11 12 14 15]
INTD 63 [ 9 11 ]
01: 00 00 10 INTA 60 [ 12 13 14 15]
INTB 61 [ 12 13 14 15]
INTC 00 [ 3 4 5 6 7 9 10 11 12 14 15]
INTD 00 [ 3 4 5 6 7 9 10 11 12 14 15]
02: 00 00 02 INTA 63 [ 9 11 ]
INTB 00 [ 3 4 5 6 7 9 10 11 12 14 15]
INTC 00 [ 3 4 5 6 7 9 10 11 12 14 15]
INTD 00 [ 3 4 5 6 7 9 10 11 12 14 15]
In message <Pine.BSF.4.33.0108251101100.43343-100000@www.mmlab.cse.yzu.edu.tw> Tai-hwa Liang writes: : I can't test the hw.pci.ignore_pcibios sysctl due to there's no such : sysctl in my kernel(cvsupped about 4 hours ago): I'm sorry. I think I was confused. There is no such tunable on stable. Warner On Fri, 24 Aug 2001, Warner Losh wrote: > In message <Pine.BSF.4.33.0108251101100.43343-100000@www.mmlab.cse.yzu.edu.tw> Tai-hwa Liang writes: > : I can't test the hw.pci.ignore_pcibios sysctl due to there's no such > : sysctl in my kernel(cvsupped about 4 hours ago): > > I'm sorry. I think I was confused. There is no such tunable on > stable. > There was such tunable in your no-hang.diff.4. BTW, I've tried to apply that several days ago(around the date you MFC the pci routing related stuff I think); however, if I don't set hw.pci.ignore_pcibios=1 in /boot/loader.conf, the kernel would be hung during boot procedure(Sorry, I forgot where the exactly hanging point it was). About 4 hours ago, I re-cvsupped the latest version -- no kernel freeze during booting anymore with/without hw.pci.ignore_pcibios; however, the /dev/card0 device still cannot be found: . . . pci_cfgintr_search: linked (60) to configured irq 0 at 0:3:0 pci_cfgintr: ROUTE_INTERRUPT failed pcic0: Failed to allocate managment irq device_probe_and_attach: pcic0 attach returned 5 pcic0: Ignoring function 1 . . . In message <Pine.BSF.4.33.0108251147430.43644-100000@www.mmlab.cse.yzu.edu.tw> Tai-hwa Liang writes: : About 4 hours ago, I re-cvsupped the latest version -- no kernel freeze : during booting anymore with/without hw.pci.ignore_pcibios; however, the : /dev/card0 device still cannot be found: Right. Since we can't get an interrupt, we fail to attach, which leads to this. I think we need a fallback mechanism... Warner On Fri, 24 Aug 2001, Warner Losh wrote: > Right. Since we can't get an interrupt, we fail to attach, which > leads to this. I think we need a fallback mechanism... > Hi, I've tested your latest commit against -stable: src/sys/pccard/pcic_pci.c revision 1.54.2.10 src/usr.sbin/pccard/pccardd/cardd.c revision 1.46.2.14 Now pccard0/1 worked again under polling mode; however, my Xircom PCMCIA card doesn't work even it was initialized flawlessly. Everytime I tried to run dhclient, there are error message "xe0: watchdog timeout; resetting card" dumped on console. ## dmesg Copyright (c) 1992-2001 The FreeBSD Project. Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994 The Regents of the University of California. All rights reserved. FreeBSD 4.4-RC #0 Calibrating clock(s) ... TSC clock: 265250746 Hz, i8254 clock: 1193126 Hz Timecounter "i8254" frequency 1193126 Hz CPU: Pentium II/Pentium II Xeon/Celeron (265.25-MHz 686-class CPU) Origin = "GenuineIntel" Id = 0x652 Stepping = 2 Features=0x183f9ff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,MMX,FXSR> real memory = 67108864 (65536K bytes) Physical memory chunk(s): 0x00001000 - 0x0009efff, 647168 bytes (158 pages) 0x0037e000 - 0x03ff5fff, 63406080 bytes (15480 pages) avail memory = 61673472 (60228K bytes) bios32: Found BIOS32 Service Directory header at 0xc00f6460 bios32: Entry = 0xfd7e0 (c00fd7e0) Rev = 0 Len = 1 pcibios: PCI BIOS entry at 0x203 pnpbios: Found PnP BIOS data at 0xc00f6490 pnpbios: Entry = f0000:ac98 Rev = 1.0 Other BIOS signatures found: ACPI: 000f6440 Preloaded elf kernel "kernel" at 0xc0358000. Preloaded userconfig_script "/boot/kernel.conf" at 0xc035809c. Preloaded splash_image_data "/boot/chuck1.bmp" at 0xc03580ec. VESA: information block 56 45 53 41 00 02 6b 00 00 c0 00 00 00 00 42 87 00 c0 20 00 00 00 12 29 00 c0 13 29 00 c0 14 29 00 c0 15 29 00 c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 VESA: 15 mode(s) found VESA: v2.0, 2048k memory, flags:0x0, mode table:0xc00c8742 (c0008742) VESA: Copyright 1994 TRIDENT MICROSYSTEMS INC. VESA: netsmb_dev: loaded Pentium Pro MTRR support enabled pci_open(1): mode 1 addr port (0x0cf8) is 0x80001010 pci_open(1a): mode1res=0x80000000 (0x80000000) pci_cfgcheck: device 0 [class=060000] [hdr=00] is there (id=71928086) Using $PIR table, 3 entries at 0xc00fdf90 apm0: <APM BIOS> on motherboard apm: found APM BIOS v1.2, connected at v1.2 npx0: <math processor> on motherboard npx0: INT 16 interface pcib0: <Intel 82443BX host to PCI bridge (AGP disabled)> on motherboard found-> vendor=0x8086, dev=0x7192, revid=0x02 class=06-00-00, hdrtype=0x00, mfdev=0 subordinatebus=0 secondarybus=0 map[10]: type 1, range 32, base 8c000000, size 26 found-> vendor=0x1023, dev=0x9388, revid=0xd3 class=03-00-00, hdrtype=0x00, mfdev=0 subordinatebus=0 secondarybus=0 intpin=a, irq=9 map[10]: type 1, range 32, base fe400000, size 22 map[14]: type 1, range 32, base fede0000, size 17 map[18]: type 1, range 32, base fe800000, size 22 found-> vendor=0x8086, dev=0x7110, revid=0x02 class=06-01-00, hdrtype=0x00, mfdev=1 subordinatebus=0 secondarybus=0 found-> vendor=0x8086, dev=0x7111, revid=0x01 class=01-01-80, hdrtype=0x00, mfdev=0 subordinatebus=0 secondarybus=0 map[20]: type 1, range 32, base 0000fcd0, size 4 found-> vendor=0x8086, dev=0x7112, revid=0x01 class=0c-03-00, hdrtype=0x00, mfdev=0 subordinatebus=0 secondarybus=0 intpin=d, irq=9 map[20]: type 1, range 32, base 0000fce0, size 5 found-> vendor=0x8086, dev=0x7113, revid=0x02 class=06-80-00, hdrtype=0x00, mfdev=0 subordinatebus=0 secondarybus=0 map[90]: type 1, range 32, base 0000ff80, size 4 found-> vendor=0x104c, dev=0xac19, revid=0x00 class=06-07-00, hdrtype=0x02, mfdev=1 subordinatebus=0 secondarybus=0 intpin=a, irq=255 map[10]: type 1, range 32, base 44000000, size 12 found-> vendor=0x104c, dev=0xac19, revid=0x00 class=06-07-00, hdrtype=0x02, mfdev=1 subordinatebus=0 secondarybus=0 intpin=b, irq=255 pci0: <PCI bus> on pcib0 pci0: <Trident model 9388 VGA-compatible display device> (vendor=0x1023, dev=0x9388) at 2.0 irq 9 isab0: <Intel 82371AB PCI to ISA bridge> at device 3.0 on pci0 isa0: <ISA bus> on isab0 atapci0: <Intel PIIX4 ATA33 controller> port 0xfcd0-0xfcdf at device 3.1 on pci0 ata0: iobase=0x01f0 altiobase=0x03f6 bmaddr=0xfcd0 ata0: mask=03 status0=52 status1=50 ata0: mask=03 ostat0=50 ostat2=50 ata0-master: ATAPI probe a=00 b=00 ata0-slave: ATAPI probe a=14 b=eb ata0: mask=03 status0=50 status1=00 ata0-master: ATA probe a=01 b=a5 ata0: devices=09 ata0: at 0x1f0 irq 14 on atapci0 ata1: iobase=0x0170 altiobase=0x0376 bmaddr=0xfcd8 ata1: mask=00 status0=ff status1=ff ata1: probe allocation failed pci0: <Intel 82371AB/EB (PIIX4) USB controller> (vendor=0x8086, dev=0x7112) at 3.2 irq 9 chip1: <Intel 82371AB Power management controller> port 0xff80-0xff8f at device 3.3 on pci0 pcic0: <TI PCI-1221 PCI-CardBus Bridge> mem 0x44000000-0x44000fff at device 10.0 on pci0 pcic0: Polling mode pcic0: TI12XX PCI Config Reg: [speaker enable][FUNC pci int + CSC serial isa irq] pccard0: <PC Card bus (classic)> on pcic0 pcic1: chip is in D3 power mode -- setting to D0 pcic1: <TI PCI-1221 PCI-CardBus Bridge> at device 10.1 on pci0 pcic1: PCI Memory allocated: 0x44001000 pcic1: Polling mode pcic1: TI12XX PCI Config Reg: [speaker enable][FUNC pci int + CSC serial isa irq] pccard1: <PC Card bus (classic)> on pcic1 Trying Read_Port at 203 Trying Read_Port at 243 Trying Read_Port at 283 Trying Read_Port at 2c3 Trying Read_Port at 303 Trying Read_Port at 343 Trying Read_Port at 383 Trying Read_Port at 3c3 isa_probe_children: disabling PnP devices isa_probe_children: probing non-PnP devices orm0: <Option ROM> at iomem 0xc0000-0xcbfff on isa0 atkbdc0: <Keyboard controller (i8042)> at port 0x60,0x64 on isa0 atkbd0: <AT Keyboard> irq 1 on atkbdc0 atkbd: the current kbd controller command byte 0047 atkbd: keyboard ID 0x41ab (2) kbd0: atkbd0, AT 101/102 (2), config:0x0, flags:0x3d0000 psm0: current command byte:0047 psm0: <PS/2 Mouse> irq 12 on atkbdc0 psm0: model Generic PS/2 mouse, device ID 0-00, 2 buttons psm0: config:00006000, flags:00000000, packet size:3 psm0: syncmask:c0, syncbits:00 vga0: <Generic ISA VGA> at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0 fb0: vga0, vga, type:VGA (5), flags:0x700ff fb0: port:0x3c0-0x3df, crtc:0x3d4, mem:0xa0000 0x20000 fb0: init mode:24, bios mode:3, current mode:24 fb0: window:0xc00b8000 size:32k gran:32k, buf:0 size:32k VGA parameters upon power-up 50 18 10 00 00 00 03 00 02 67 5f 4f 50 82 55 81 bf 1f 00 4f 0d 0e 00 00 07 80 9c 8e 8f 28 1f 96 b9 a3 ff 00 01 02 03 04 05 14 07 38 39 3a 3b 3c 3d 3e 3f 0c 00 0f 08 00 00 00 00 00 10 0e 00 ff VGA parameters in BIOS for mode 24 50 18 10 00 10 00 03 00 02 67 5f 4f 50 82 55 81 bf 1f 00 4f 0d 0e 00 00 00 00 9c 8e 8f 28 1f 96 b9 a3 ff 00 01 02 03 04 05 14 07 38 39 3a 3b 3c 3d 3e 3f 0c 00 0f 08 00 00 00 00 00 10 0e 00 ff EGA/VGA parameters to be used for mode 24 50 18 10 00 10 00 03 00 02 67 5f 4f 50 82 55 81 bf 1f 00 4f 0d 0e 00 00 00 00 9c 8e 8f 28 1f 96 b9 a3 ff 00 01 02 03 04 05 14 07 38 39 3a 3b 3c 3d 3e 3f 0c 00 0f 08 00 00 00 00 00 10 0e 00 ff sc0: <System console> on isa0 sc0: VGA <16 virtual consoles, flags=0x200> sc0: fb0, kbd0, terminal emulator: sc (syscons terminal) fdc0: <NEC 72065B or clone> at port 0x3f0-0x3f5,0x3f7 irq 6 drq 2 on isa0 fdc0: FIFO enabled, 8 bytes threshold fd0: <1440-KB 3.5" drive> on fdc0 drive 0 sio0: irq maps: 0x41 0x51 0x41 0x41 sio0 at port 0x3f8-0x3ff irq 4 flags 0x10 on isa0 sio0: type 16550A sio1: irq maps: 0x41 0x49 0x41 0x41 sio1 at port 0x2f8-0x2ff irq 3 flags 0x10 on isa0 sio1: type 16550A sbc0: <ESS 688> at port 0x220-0x22f irq 5 drq 3 flags 0x15 on isa0 pcm0: <ESS 18xx DSP> on sbc0 pcm0: ESS1869 detected, newspeed pcm: setmap 9000, 1000; 0xc540d000 -> 9000 pcm: setmap a000, 1000; 0xc540e000 -> a000 ppc0: parallel port found at 0x378 ppc0: using extended I/O port range PC873xx probe at 0x398 got unknown ID 0xb1 ppc0: EPP SPP ppc0: <Parallel port> at port 0x378-0x37f irq 7 on isa0 ppc0: Generic chipset (EPP/NIBBLE) in COMPATIBLE mode plip0: <PLIP network interface> on ppbus0 bpf: lp0 attached lpt0: <Printer> on ppbus0 lpt0: Interrupt-driven port ppi0: <Parallel I/O> on ppbus0 isa_probe_children: probing PnP devices BIOS Geometries: 0:03127f3f 0..786=787 cylinders, 0..127=128 heads, 1..63=63 sectors 0 accounted for Device configuration finished. bpf: lo0 attached ata0-master: success setting UDMA2 on Intel chip Creating DISK ad0 ad0: <HITACHI_DK237A-32/00U0A0D0> ATA-3 disk at ata0-master ad0: 3102MB (6354432 sectors), 6304 cyls, 16 heads, 63 S/T, 512 B/S ad0: 16 secs/int, 1 depth queue, UDMA33 ad0: piomode=4 dmamode=2 udmamode=2 cblid=0 ad0: 3102MB <HITACHI_DK237A-32> [6304/16/63] at ata0-master UDMA33 ata0-slave: piomode=4 dmamode=2 udmamode=-1 dmaflag=1 ata0-slave: success setting PIO4 on generic chip acd0: <UJDA150/1.50> CDROM drive at ata0 as slave acd0: read 4134KB/s (4134KB/s), 128KB buffer, PIO4 acd0: Reads: CD-R, CD-RW, CD-DA acd0: Audio: play, 256 volume levels acd0: Mechanism: ejectable tray acd0: Medium: no/blank disc inside, unlocked Mounting root from ufs:/dev/ad0s2a ad0s1: type 0x83, start 63, end = 2096639, size 2096577 : OK ad0s2: type 0xa5, start 2096640, end = 4193279, size 2096640 : OK ad0s3: type 0x6, start 4193280, end = 6072191, size 1878912 : OK ad0s4: type 0xa0, start 6072192, end = 6346367, size 274176 : OK pccard: card inserted, slot 0 start_init: trying /sbin/init pccard0: Assigning xe0: io 0x2e8-0x2ef irq 10 mem 0x0-0xffffffff xe0 at port 0x2e8-0x2ef iomem 0xcc000-0xccfff irq 10 slot 0 on pccard0 pcic: I/O win 1 flags 17 100-10f xe0: Xircom CEM56, bonding version 0x55, 100Mbps capable, with modem xe0: DingoID = 0x444b, RevisionID = 0x1, VendorID = 0 xe0: Ethernet address 00:10:a4:ba:2f:6b bpf: xe0 attached splash: image decoder found: blank_saver Linux-ELF exec handler installed xe0: watchdog timeout; resetting card xe0: watchdog timeout; resetting card xe0: watchdog timeout; resetting card xe0: watchdog timeout; resetting card ## vmstat -i interrupt total rate ata0 irq14 1810 10 atkbd0 irq1 562 3 fdc0 irq6 2 0 clk irq0 16882 99 rtc irq8 21609 127 Total 40865 241 ## /boot/loader.conf #hw.pci.ignore_pcibios=0 hw.pcic.irq=0 #machdep.pccard.pcic_irq="11" #hw.pcic.override_irq=10 #hw.pcic.ignore_function_1=1 hw.pcic.intr_path=1 #hw.pcic.init_routing=1 #machdep.pccard.pcic_resume_reset=1 ## /etc/pccard.conf # Generally available IO ports io 0x240-0x360 # Generally available IRQs (Built-in sound-card owners remove 5) irq 11 10 # Available memory slots memory 0xd4000 96k debuglevel 7 # Xircom CreditCard Ethernet 10/100 + modem (Ethernet part) card "Xircom" "CreditCard Ethernet 10/100 + Modem 56" # config 0x1f "sio" ? config 0x27 "xe" ? insert /etc/pccard_ether $device start remove /etc/pccard_ether $device stop ## kernel configuration related to PCCARD device pcic0 at isa? irq 10 #device pcic1 at isa? device card device ed device xe ## /var/log/messages related to Xircom Aug 26 14:05:57 brahms pccardd[84]: Card "Xircom"("CreditCard Ethernet 10/100 + Modem 56") [CEM56] [1.00] matched "Xircom" ("CreditCard Ethernet 10/100 + Modem 56") [(null)] [(null)] Aug 26 14:05:57 brahms pccardd[84]: Using I/O addr 0x2e8, size 8 Aug 26 14:05:57 brahms pccardd[84]: Setting config reg at offs 0xff80 to 0x67, Reset time = 50 ms Aug 26 14:06:03 brahms pccardd[84]: Assigning I/O window 0, start 0x2e8, size 0x8 flags 0x7 Aug 26 14:06:03 brahms pccardd[84]: Assign xe0, io 0x2e8-0x2ef, mem 0x0, 0 bytes, irq 10, flags 0 Aug 26 14:06:03 brahms /kernel: pccard0: Assigning xe0: io 0x2e8-0x2ef irq 10 mem 0x0-0xffffffff Aug 26 14:06:03 brahms /kernel: xe0 at port 0x2e8-0x2ef iomem 0xcc000-0xccfff irq 10 slot 0 on pccard0 Aug 26 14:06:03 brahms /kernel: pcic: I/O win 1 flags 17 100-10f Aug 26 14:06:03 brahms /kernel: xe0: Xircom CEM56, bonding version 0x55, 100Mbps capable, with modem Aug 26 14:06:03 brahms /kernel: xe0: DingoID = 0x444b, RevisionID = 0x1, VendorID = 0 Aug 26 14:06:03 brahms /kernel: xe0: Ethernet address 00:10:a4:ba:2f:6b Aug 26 14:06:03 brahms /kernel: bpf: xe0 attached Aug 26 14:06:03 brahms pccardd[84]: xe0: Xircom (CreditCard Ethernet 10/100 + Modem 56) inserted. Aug 26 14:06:03 brahms pccardd[84]: pccardd started Aug 26 14:06:07 brahms /kernel: xe0: watchdog timeout; resetting card Aug 26 14:07:45 brahms /kernel: xe0: watchdog timeout; resetting card Aug 26 14:08:11 brahms last message repeated 2 times Aug 26 14:08:30 brahms /kernel: xe0: watchdog timeout; resetting card Hi, Warner: It seems that src/sys/pccard/pcic_pci.c v1.54.2.12 fixes the problem I've mentioned before(xe0: watchdog timeout...). Thanks a lot for your effort! Maybe this PR can be closed? State Changed From-To: open->closed Looks like things have been fixed. |