From owner-freebsd-hackers Wed Nov 27 12:26:18 2002 Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 1EFBB37B401 for ; Wed, 27 Nov 2002 12:26:05 -0800 (PST) Received: from foem.leiden.webweaving.org (fia224-72.dsl.hccnet.nl [62.251.72.224]) by mx1.FreeBSD.org (Postfix) with ESMTP id DEC3F43EA9 for ; Wed, 27 Nov 2002 12:26:02 -0800 (PST) (envelope-from dirkx@webweaving.org) Received: from foem (foem [10.11.0.2]) by foem.leiden.webweaving.org (8.12.6/8.12.6) with ESMTP id gARKPg64092128 (version=TLSv1/SSLv3 cipher=EDH-RSA-DES-CBC3-SHA bits=168 verify=NO); Wed, 27 Nov 2002 21:25:42 +0100 (CET) (envelope-from dirkx@webweaving.org) Date: Wed, 27 Nov 2002 21:25:42 +0100 (CET) From: Dirk-Willem van Gulik X-X-Sender: dirkx@foem.leiden.webweaving.org To: "M. Warner Losh" Cc: freebsd-hackers@FreeBSD.ORG Subject: Re: Understanding PCI intr routing on a Cirrus Logic PD6729 In-Reply-To: <20021127.100323.111035160.imp@bsdimp.com> Message-ID: <20021127210203.N2484-100000@foem.leiden.webweaving.org> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-freebsd-hackers@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG > In theory, you'd set the pd6729_intr_path to 2. However, there's > still some stubtle bug that precludes this wfrom working. Aye - that is what gives me the hangs - and kdb/ddb does not get me into that. > This doesn't force the interrupt to be IRQ3, but rather tells the card > to use INTA#. The probe line for wi card should say irq N where N is > the same as the bridge's irq. Ack. > I don't suppose you could enable a serial console and use that to get > me a dmesg? I'll help you debug this, but am a little busy with 5.0 > issues right now to take another swing at it. See below; intr routing =2 for the pd6729. I can switch off the VGA to claim an extra IRQ. It hangs right at the end. Dw Copyright (c) 1992-2002 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 5.0-CURRENT #43: Wed Nov 27 20:58:23 CET 2002 dirkx@foem.leiden.webweaving.org:/usr/src/sys/i386/compile/FLOOR Preloaded elf kernel "kernel" at 0xc03b41f0. Calibrating clock(s) ... TSC clock: 119741036 Hz, i8254 clock: 1193076 Hz CLK_USE_I8254_CALIBRATION not specified - using default frequency Timecounter "i8254" frequency 1193182 Hz CLK_USE_TSC_CALIBRATION not specified - using old calibration method Timecounter "TSC" frequency 119753076 Hz CPU: Pentium/P54C (119.75-MHz 586-class CPU) Origin = "GenuineIntel" Id = 0x526 Stepping = 6 Features=0x1bf real memory = 67108864 (64 MB) Physical memory chunk(s): 0x00001000 - 0x0009ffff, 651264 bytes (159 pages) 0x003db000 - 0x03ff7fff, 63033344 bytes (15389 pages) avail memory = 61280256 (58 MB) bios32: Found BIOS32 Service Directory header at 0xc00f99e0 bios32: Entry = 0xf0380 (c00f0380) Rev = 0 Len = 1 pcibios: PCI BIOS entry at 0xf0000+0x3b0 pnpbios: Found PnP BIOS data at 0xc00fcef0 pnpbios: Entry = f0000:cf20 Rev = 1.0 pnpbios: OEM ID cd041 Other BIOS signatures found: Intel Pentium detected, installing workaround for F00F bug Initializing GEOMetry subsystem null: random: mem: npx0: on motherboard npx0: INT 16 interface pci_open(1): mode 1 addr port (0x0cf8) is 0x80004830 pci_open(1a): mode1res=0x80000000 (0x80000000) pci_cfgcheck: device 0 [class=060000] [hdr=00] is there (id=122d8086) Using $PIR table, 4 entries at 0xc00f0930 PCI-Only Interrupts: none Location Bus Device Pin Link IRQs slot 1 0 12 A 0x60 3 4 5 7 9 10 11 12 slot 1 0 12 B 0x61 3 4 5 7 9 10 11 12 slot 1 0 12 C 0x62 3 4 5 7 9 10 11 12 slot 1 0 12 D 0x63 3 4 5 7 9 10 11 12 slot 2 0 11 A 0x61 3 4 5 7 9 10 11 12 slot 2 0 11 B 0x62 3 4 5 7 9 10 11 12 slot 2 0 11 C 0x63 3 4 5 7 9 10 11 12 slot 2 0 11 D 0x60 3 4 5 7 9 10 11 12 slot 3 0 10 A 0x62 3 4 5 7 9 10 11 12 slot 3 0 10 B 0x63 3 4 5 7 9 10 11 12 slot 3 0 10 C 0x60 3 4 5 7 9 10 11 12 slot 3 0 10 D 0x61 3 4 5 7 9 10 11 12 slot 4 0 9 A 0x63 3 4 5 7 9 10 11 12 slot 4 0 9 B 0x60 3 4 5 7 9 10 11 12 slot 4 0 9 C 0x61 3 4 5 7 9 10 11 12 slot 4 0 9 D 0x62 3 4 5 7 9 10 11 12 pcib0: at pcibus 0 on motherboard pci0: on pcib0 pci0: physical bus=0 found-> vendor=0x8086, dev=0x122d, revid=0x02 bus=0, slot=0, func=0 class=06-00-00, hdrtype=0x00, mfdev=0 cmdreg=0x0006, statreg=0x2200, cachelnsz=0 (dwords) lattimer=0x20 (960 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns) found-> vendor=0x8086, dev=0x122e, revid=0x02 bus=0, slot=7, func=0 class=06-01-00, hdrtype=0x00, mfdev=1 cmdreg=0x0007, statreg=0x0280, cachelnsz=0 (dwords) lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns) map[20]: type 4, range 32, base 0000e800, size 4, enabled found-> vendor=0x8086, dev=0x1230, revid=0x02 bus=0, slot=7, func=1 class=01-01-80, hdrtype=0x00, mfdev=0 cmdreg=0x0005, statreg=0x0280, cachelnsz=0 (dwords) lattimer=0x20 (960 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns) map[10]: type 4, range 32, base 0000e400, size 5, enabled found-> vendor=0x10b7, dev=0x5950, revid=0x00 bus=0, slot=9, func=0 class=02-00-00, hdrtype=0x00, mfdev=0 cmdreg=0x0007, statreg=0x0200, cachelnsz=0 (dwords) lattimer=0x00 (0 ns), mingnt=0x03 (750 ns), maxlat=0x08 (2000 ns) intpin=a, irq=7 map[10]: type 4, range 32, base 0000e000, size 2, enabled found-> vendor=0x1013, dev=0x1100, revid=0x07 bus=0, slot=10, func=0 class=06-05-00, hdrtype=0x00, mfdev=0 cmdreg=0x0083, statreg=0x0400, cachelnsz=0 (dwords) lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns) intpin=a, irq=9 map[10]: type 4, range 32, base 0000d800, size 2, enabled found-> vendor=0x1013, dev=0x1100, revid=0x07 bus=0, slot=11, func=0 class=06-05-00, hdrtype=0x00, mfdev=0 cmdreg=0x0083, statreg=0x0400, cachelnsz=0 (dwords) lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns) intpin=a, irq=10 map[10]: type 4, range 32, base 0000d400, size 2, enabled found-> vendor=0x1013, dev=0x1100, revid=0x07 bus=0, slot=12, func=0 class=06-05-00, hdrtype=0x00, mfdev=0 cmdreg=0x0083, statreg=0x0400, cachelnsz=0 (dwords) lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns) intpin=a, irq=11 isab0: at device 7.0 on pci0 isa0: on isab0 pci0: at device 7.1 (no driver attached) vx0: <3COM 3C595 Etherlink III PCI> port 0xe400-0xe41f irq 7 at device 9.0 on pci0 utp/tx[*utp*] address 00:a0:24:78:31:0d vx0: bpf attached pcic0: port 0xe000-0xe003 irq 9 at device 10.0 on pci0 pcic0: PD67xx maybe broken for PCI routing. pcic0: PCI Configuration space: 0x00: 0x11001013 0x04000083 0x06050007 0x00000000 0x10: 0x0000e001 0x00000000 0x00000000 0x00000000 0x20: 0x00000000 0x00000000 0x00000000 0x00000000 0x30: 0x00000000 0x00000000 0x00000000 0x00000109 0x40: 0x00000000 0x00000000 0x00000000 0x00000000 0x50: 0x00000000 0x00000000 0x00000000 0x00000000 0x60: 0x00000000 0x00000000 0x00000000 0x00000000 0x70: 0x00000000 0x00000000 0x00000000 0x00000000 0x80: 0x00212007 0x00045309 0x00000000 0x00000000 0x90: 0x00000000 0x00000000 0x00000000 0x00000000 0xa0: 0x00000000 0x00000000 0x00000000 0x00000000 0xb0: 0x00000000 0x00000000 0x00000000 0x00000000 0xc0: 0x00000000 0x00000000 0x00000000 0x00000000 0xd0: 0x00000000 0x00000000 0x00000000 0x00000000 0xe0: 0x00000000 0x00000000 0x00000000 0x00000000 0xf0: 0x00000000 0x00000000 0x00000000 0x00000000 pccard0: on pcic0 pccard1: on pcic0 pcic1: port 0xd800-0xd803 irq 10 at device 11.0 on pci0 pcic1: PD67xx maybe broken for PCI routing. pcic1: PCI Configuration space: 0x00: 0x11001013 0x04000083 0x06050007 0x00000000 0x10: 0x0000d801 0x00000000 0x00000000 0x00000000 0x20: 0x00000000 0x00000000 0x00000000 0x00000000 0x30: 0x00000000 0x00000000 0x00000000 0x0000010a 0x40: 0x00000000 0x00000000 0x00000000 0x00000000 0x50: 0x00000000 0x00000000 0x00000000 0x00000000 0x60: 0x00000000 0x00000000 0x00000000 0x00000000 0x70: 0x00000000 0x00000000 0x00000000 0x00000000 0x80: 0x00212007 0x00045309 0x00000000 0x00000000 0x90: 0x00000000 0x00000000 0x00000000 0x00000000 0xa0: 0x00000000 0x00000000 0x00000000 0x00000000 0xb0: 0x00000000 0x00000000 0x00000000 0x00000000 0xc0: 0x00000000 0x00000000 0x00000000 0x00000000 0xd0: 0x00000000 0x00000000 0x00000000 0x00000000 0xe0: 0x00000000 0x00000000 0x00000000 0x00000000 0xf0: 0x00000000 0x00000000 0x00000000 0x00000000 pccard2: on pcic1 pccard3: on pcic1 pcic2: port 0xd400-0xd403 irq 11 at device 12.0 on pci0 pcic2: PD67xx maybe broken for PCI routing. pcic2: PCI Configuration space: 0x00: 0x11001013 0x04000083 0x06050007 0x00000000 0x10: 0x0000d401 0x00000000 0x00000000 0x00000000 0x20: 0x00000000 0x00000000 0x00000000 0x00000000 0x30: 0x00000000 0x00000000 0x00000000 0x0000010b 0x40: 0x00000000 0x00000000 0x00000000 0x00000000 0x50: 0x00000000 0x00000000 0x00000000 0x00000000 0x60: 0x00000000 0x00000000 0x00000000 0x00000000 0x70: 0x00000000 0x00000000 0x00000000 0x00000000 0x80: 0x00212007 0x00045309 0x00000000 0x00000000 0x90: 0x00000000 0x00000000 0x00000000 0x00000000 0xa0: 0x00000000 0x00000000 0x00000000 0x00000000 0xb0: 0x00000000 0x00000000 0x00000000 0x00000000 0xc0: 0x00000000 0x00000000 0x00000000 0x00000000 0xd0: 0x00000000 0x00000000 0x00000000 0x00000000 0xe0: 0x00000000 0x00000000 0x00000000 0x00000000 0xf0: 0x00000000 0x00000000 0x00000000 0x00000000 pccard4: on pcic2 pccard5: on pcic2 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 pnpbios: 11 devices, largest 66 bytes PNP0500: adding irq mask 0x10 PNP0500: adding fixed io range 0x3f8-0x3ff, size=0x8, align=0x1 pnpbios: handle 2 device ID PNP0500 (0005d041) PNP0700: adding irq mask 0x40 PNP0700: adding fixed io range 0x3f2-0x3f5, size=0x4, align=0x1 PNP0700: adding dma mask 0x4 PNP0700: adding fixed io range 0x3f7-0x3f7, size=0x1, align=0x1 pnpbios: handle 4 device ID PNP0700 (0007d041) PNP0c01: adding fixed memory32 range 0-0x9ffff, size=0xa0000 PNP0c01: adding fixed memory32 range 0x100000-0x3ffffff, size=0x3f00000 PNP0c01: adding fixed memory32 range 0xe8000-0xfffff, size=0x18000 PNP0c01: adding fixed memory32 range 0xfffe0000-0xffffffff, size=0x20000 pnpbios: handle 6 device ID PNP0c01 (010cd041) PNP0000: adding irq mask 0x4 PNP0000: adding io range 0x20-0x21, size=0x2, align=0 PNP0000: adding io range 0xa0-0xa1, size=0x2, align=0 PNP0000: adding io range 0x4d0-0x4d1, size=0x2, align=0 pnpbios: handle 7 device ID PNP0000 (0000d041) PNP0100: adding irq mask 0x1 PNP0100: adding io range 0x40-0x43, size=0x4, align=0 pnpbios: handle 8 device ID PNP0100 (0001d041) PNP0b00: adding irq mask 0x100 PNP0b00: adding io range 0x70-0x71, size=0x2, align=0 pnpbios: handle 9 device ID PNP0b00 (000bd041) PNP0303: adding irq mask 0x2 PNP0303: adding io range 0x60-0x60, size=0x1, align=0 PNP0303: adding io range 0x64-0x64, size=0x1, align=0 pnpbios: handle 10 device ID PNP0303 (0303d041) PNP0c04: adding irq mask 0x2000 PNP0c04: adding io range 0xf0-0xf0, size=0x1, align=0 pnpbios: handle 11 device ID PNP0c04 (040cd041) PNP0200: adding dma mask 0x10 PNP0200: adding fixed io range 0-0xf, size=0x10, align=0x1 PNP0200: adding fixed io range 0x80-0x90, size=0x11, align=0x1 PNP0200: adding fixed io range 0x94-0x9f, size=0xc, align=0x1 PNP0200: adding fixed io range 0xc0-0xde, size=0x1f, align=0x1 pnpbios: handle 12 device ID PNP0200 (0002d041) PNP0800: adding fixed io range 0x61-0x61, size=0x1, align=0x1 pnpbios: handle 13 device ID PNP0800 (0008d041) PNP0a03: adding io range 0xcf8-0xcff, size=0x8, align=0x1 pnpbios: handle 14 device ID PNP0a03 (030ad041) sc: sc0 already exists; skipping it vga: vga0 already exists; skipping it isa_probe_children: disabling PnP devices isa_probe_children: probing non-PnP devices orm0: