From owner-freebsd-hackers@FreeBSD.ORG Wed May 28 17:43:28 2003 Return-Path: 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 2220537B401 for ; Wed, 28 May 2003 17:43:28 -0700 (PDT) Received: from foem.leiden.webweaving.org (fia224-72.dsl.hccnet.nl [62.251.72.224]) by mx1.FreeBSD.org (Postfix) with ESMTP id 56E5243F75 for ; Wed, 28 May 2003 17:43:26 -0700 (PDT) (envelope-from dirkx@webweaving.org) Received: from foem (IDENT:chuckwebweaving.org@foem [10.11.0.2]) h4T0hMv7062123; Thu, 29 May 2003 02:43:22 +0200 (CEST) (envelope-from dirkx@webweaving.org) Date: Thu, 29 May 2003 02:43:22 +0200 (CEST) From: Dirk-Willem van Gulik X-X-Sender: dirkx@foem To: "M. Warner Losh" In-Reply-To: <20030528.183603.98561533.imp@bsdimp.com> Message-ID: <20030529024013.E22309-100000@foem> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII cc: hackers@freebsd.org Subject: Re: pcic setup / wi0 timeout X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 29 May 2003 00:43:28 -0000 On Wed, 28 May 2003, M. Warner Losh wrote: > It depends. Really old machines routed interrupts to all PCI slots > and assigned devices found there an interrupt. Newer old machines > expect the PCI bridge driver of the OS to cope. And I take it that if I start mucking myself by poke-ing a value into CB_PCI_INT_LINE that I really really shoot myself in the foot. > Newer old machines provide a BIOS interface to route them (which we can > use). Newer machines with ACPI have ACPI to do the routing. You might > want to do a boot verbose, but I'm not sure how much that would help. > PCIBIOS should have something like: Displayed is: bios32: Found BIOS32 Service Directory header at 0xc00fdb00 bios32: Entry = 0xf5f23 (c00f5f23) Rev = 0 Len = 1 pcibios: PCI BIOS entry at 0xf5ec0+0x2ac pnpbios: Found PnP BIOS data at 0xc00fdb10 pnpbios: Entry = f0000:5159 Rev = 1.0 A complete -v below. How does one distinghish/recognize from this who/what is the routing in this case ? Dw. Copyright (c) 1992-2003 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-RELEASE #0: Mon Apr 28 11:24:06 CEST 2003 dirkx@foem.leiden.webweaving.org:/usr/obj/usr/src/sys/WLEIDEN.93264 Preloaded elf kernel "/boot/kernel/kernel" at 0xc036a000. Calibrating clock(s) ... TSC clock: 199907648 Hz, i8254 clock: 1193205 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 199904646 Hz CPU: Pentium/P55C (199.90-MHz 586-class CPU) Origin = "GenuineIntel" Id = 0x544 Stepping = 4 Features=0x8001bf real memory = 33554432 (32 MB) Physical memory chunk(s): 0x00001000 - 0x0009efff, 647168 bytes (158 pages) 0x00391000 - 0x01ff7fff, 29782016 bytes (7271 pages) avail memory = 29007872 (27 MB) bios32: Found BIOS32 Service Directory header at 0xc00fdb00 bios32: Entry = 0xf5f23 (c00f5f23) Rev = 0 Len = 1 pcibios: PCI BIOS entry at 0xf5ec0+0x2ac pnpbios: Found PnP BIOS data at 0xc00fdb10 pnpbios: Entry = f0000:5159 Rev = 1.0 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 0x80000050 pci_open(1a): mode1res=0x80000000 (0x80000000) pci_cfgcheck: device 0 [class=060000] [hdr=00] is there (id=71008086) pcib0: at pcibus 0 on motherboard pci0: on pcib0 pci0: physical bus=0 found-> vendor=0x8086, dev=0x7100, revid=0x01 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=0x7110, revid=0x01 bus=0, slot=7, func=0 class=06-01-00, hdrtype=0x00, mfdev=1 cmdreg=0x000f, statreg=0x0280, cachelnsz=0 (dwords) lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns) map[20]: type 4, range 32, base 0000fcf0, size 4, enabled found-> vendor=0x8086, dev=0x7111, revid=0x01 bus=0, slot=7, func=1 class=01-01-80, hdrtype=0x00, mfdev=0 cmdreg=0x0005, statreg=0x0280, cachelnsz=0 (dwords) lattimer=0x40 (1920 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns) map[20]: type 4, range 32, base 0000f800, size 5, enabled found-> vendor=0x8086, dev=0x7112, revid=0x01 bus=0, slot=7, func=2 class=0c-03-00, hdrtype=0x00, mfdev=0 cmdreg=0x0005, statreg=0x0280, cachelnsz=0 (dwords) lattimer=0x40 (1920 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns) intpin=d, irq=9 map[90]: type 4, range 32, base 0000f0b0, size 4, enabled found-> vendor=0x8086, dev=0x7113, revid=0x01 bus=0, slot=7, func=3 class=06-80-00, hdrtype=0x00, mfdev=0 cmdreg=0x0003, statreg=0x0280, cachelnsz=0 (dwords) lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns) map[10]: type 1, range 32, base fedfc000, size 14, enabled map[14]: type 3, range 32, base fd800000, size 23, enabled map[18]: type 1, range 32, base fe000000, size 23, enabled found-> vendor=0x102b, dev=0x051a, revid=0x02 bus=0, slot=8, func=0 class=03-00-00, hdrtype=0x00, mfdev=0 cmdreg=0x0087, statreg=0x0280, cachelnsz=0 (dwords) lattimer=0x40 (1920 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns) intpin=a, irq=11 found-> vendor=0x1180, dev=0x0475, revid=0x80 bus=0, slot=17, func=0 class=06-07-00, hdrtype=0x02, mfdev=0 cmdreg=0x0000, statreg=0x0210, cachelnsz=0 (dwords) lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x07 (1750 ns) intpin=a, irq=255 powerspec 2 supports D0 D1 D2 D3 current D0 found-> vendor=0x1180, dev=0x0475, revid=0x80 bus=0, slot=18, func=0 class=06-07-00, hdrtype=0x02, mfdev=0 cmdreg=0x0000, statreg=0x0210, cachelnsz=0 (dwords) lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x07 (1750 ns) intpin=a, irq=255 powerspec 1 supports D0 D1 D2 D3 current D0 map[10]: type 3, range 32, base fedfb000, size 12, enabled found-> vendor=0x1260, dev=0x3873, revid=0x01 bus=0, slot=19, func=0 class=02-80-00, hdrtype=0x00, mfdev=0 cmdreg=0x0017, statreg=0x0290, cachelnsz=8 (dwords) lattimer=0x40 (1920 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns) intpin=a, irq=11 powerspec 2 supports D0 D1 D2 D3 current D0 map[10]: type 3, range 32, base fedfa000, size 12, enabled found-> vendor=0x1260, dev=0x3873, revid=0x01 bus=0, slot=20, func=0 class=02-80-00, hdrtype=0x00, mfdev=0 cmdreg=0x0017, statreg=0x0290, cachelnsz=8 (dwords) lattimer=0x40 (1920 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns) intpin=a, irq=9 powerspec 2 supports D0 D1 D2 D3 current D0 isab0: at device 7.0 on pci0 isa0: on isab0 atapci0: port 0xfcf0-0xfcff at device 7.1 on pci0 ata0: iobase=0x01f0 altiobase=0x03f6 bmaddr=0xfcf0 ata0: mask=03 ostat0=50 ostat2=00 ata0-master: ATAPI 00 00 ata0-slave: ATAPI 00 00 ata0: mask=03 stat0=50 stat1=00 ata0-master: ATA 01 a5 ata0: devices=01 ata0: at 0x1f0 irq 14 on atapci0 ata1: iobase=0x0170 altiobase=0x0376 bmaddr=0xfcf8 ata1: at 0x170 irq 15 on atapci0 pci0: at device 7.2 (no driver attached) pci0: at device 7.3 (no driver attached) pci0: at device 8.0 (no driver attached) pci_cfgintr: can't route an interrupt to 0:17 INTA pcic0: at device 17.0 on pci0 pcic0: PCI Memory allocated: 0x88000000 pci_cfgintr: can't route an interrupt to 0:17 INTA pcic0: No PCI interrupt routed, trying ISA. pcic0: Polling mode pcic0: PCI Configuration space: 0x00: 0x04751180 0x02100003 0x06070080 0x00020000 0x10: 0x88000000 0x020000dc 0x00000000 0x00000000 0x20: 0x00000000 0x00000000 0x00000000 0x00000000 0x30: 0x00000000 0x00000000 0x00000000 0x07a00100 0x40: 0x010114ef 0x00000001 0x00000000 0x00000000 0x50: 0x00000000 0x00000000 0x00000000 0x00000000 0x60: 0x00000000 0x00000000 0x00000000 0x00000000 0x70: 0x00000000 0x00000000 0x00000000 0x00000000 0x80: 0x00000001 0x00000000 0x04630463 0x00000000 0x90: 0x00000000 0x00000000 0x00000000 0x00000000 0xa0: 0x00000010 0x00000000 0x00000000 0x00000000 0xb0: 0x00000000 0x00000000 0x00000000 0x00000000 0xc0: 0x010114ef 0x00000000 0x00000000 0x00000000 0xd0: 0x00000000 0x00000000 0x00000000 0xfe0a0001 0xe0: 0x24c04000 0x00000000 0x00000000 0x00000000 0xf0: 0x00000000 0x00000000 0x00000000 0x00000000 pccard0: on pcic0 pci_cfgintr: can't route an interrupt to 0:18 INTA pcic1: at device 18.0 on pci0 pcic1: PCI Memory allocated: 0x88001000 pci_cfgintr: can't route an interrupt to 0:18 INTA pcic1: No PCI interrupt routed, trying ISA. pcic1: Polling mode pcic1: PCI Configuration space: 0x00: 0x04751180 0x02100003 0x06070080 0x00020000 0x10: 0x88001000 0x020000dc 0x00000000 0x00000000 0x20: 0x00000000 0x00000000 0x00000000 0x00000000 0x30: 0x00000000 0x00000000 0x00000000 0x07a00100 0x40: 0x010114ef 0x00000001 0x00000000 0x00000000 0x50: 0x00000000 0x00000000 0x00000000 0x00000000 0x60: 0x00000000 0x00000000 0x00000000 0x00000000 0x70: 0x00000000 0x00000000 0x00000000 0x00000000 0x80: 0x00000000 0x00000000 0x04630463 0x00000000 0x90: 0x00000000 0x00000000 0x00000000 0x00000000 0xa0: 0x00000010 0x00000000 0x00000000 0x00000000 0xb0: 0x00000000 0x00000000 0x00000000 0x00000000 0xc0: 0x010114ef 0x00000000 0x00000000 0x00000000 0xd0: 0x00000000 0x00000000 0x00000000 0xfe190001 0xe0: 0x24c04000 0x00000000 0x00000000 0x00000000 0xf0: 0x00000000 0x00000000 0x00000000 0x00000000 pccard1: on pcic1 wi0: mem 0xfedfb000-0xfedfbfff irq 11 at device 19.0 on pci0 wi0: 802.11 address: 00:06:25:a7:a8:46 wi0: using RF:PRISM2.5 MAC:ISL3874A(Mini-PCI) wi0: Intersil Firmware: Primary 1.01.01, Station 1.05.06 wi0: wi_has_wep = 1 wi0: bpf attached wi1: mem 0xfedfa000-0xfedfafff irq 9 at device 20.0 on pci0 wi1: 802.11 address: 00:06:25:a7:a9:42 wi1: using RF:PRISM2.5 MAC:ISL3874A(Mini-PCI) wi1: Intersil Firmware: Primary 1.01.01, Station 1.05.06 wi1: wi_has_wep = 1 wi1: bpf attached ata: ata0 already exists; skipping it ata: ata1 already exists; skipping it 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: 13 devices, largest 82 bytes PNP0a03: adding fixed io range 0xcf8-0xcff, size=0x8, align=0x1 PNP0a03: adding fixed io range 0xe6-0xe6, size=0x1, align=0x1 PNP0a03: adding io range 0x80-0x80, size=0x1, align=0 PNP0a03: adding io range 0x4d0-0x4d1, size=0x2, align=0 pnpbios: handle 0 device ID PNP0a03 (030ad041) PNP0800: adding fixed io range 0x61-0x61, size=0x1, align=0x1 pnpbios: handle 1 device ID PNP0800 (0008d041) PNP0c01: adding memory range 0-0x9ffff, size=0xa0000, align=0 PNP0c01: adding memory range 0xe0000-0xfffff, size=0x20000, align=0 PNP0c01: adding fixed memory32 range 0x100000-0x1ffffff, size=0x1f00000 PNP0c01: adding fixed memory32 range 0xfffe0000-0xffffffff, size=0x20000 PNP0c01: adding fixed io range 0x26-0x27, size=0x2, align=0x1 PNP0c01: adding fixed io range 0xf080-0xf08f, size=0x10, align=0x1 PNP0c01: adding fixed io range 0xf0c0-0xf0ff, size=0x40, align=0x1 PNP0c01: adding fixed io range 0xf0b0-0xf0bf, size=0x10, align=0x1 pnpbios: handle 2 device ID PNP0c01 (010cd041) PNP0303: adding fixed io range 0x60-0x60, size=0x1, align=0x1 PNP0303: adding fixed io range 0x64-0x64, size=0x1, align=0x1 PNP0303: adding irq mask 0x2 pnpbios: handle 3 device ID PNP0303 (0303d041) PNP0c04: adding fixed io range 0xf0-0xff, size=0x10, align=0x1 PNP0c04: adding irq mask 0x2000 pnpbios: handle 4 device ID PNP0c04 (040cd041) PNP0200: adding io range 0-0xf, size=0x10, align=0 PNP0200: adding io range 0x81-0x8f, size=0xf, align=0 PNP0200: adding io range 0xc0-0xdf, size=0x20, align=0 PNP0200: adding dma mask 0x10 pnpbios: handle 5 device ID PNP0200 (0002d041) PNP0000: adding io range 0x20-0x21, size=0x2, align=0 PNP0000: adding io range 0xa0-0xa1, size=0x2, align=0 PNP0000: adding irq mask 0x4 pnpbios: handle 6 device ID PNP0000 (0000d041) PNP0100: adding io range 0x40-0x43, size=0x4, align=0 PNP0100: adding irq mask 0x1 pnpbios: handle 7 device ID PNP0100 (0001d041) PNP0b00: adding io range 0x70-0x71, size=0x2, align=0 PNP0b00: adding irq mask 0x100 pnpbios: handle 8 device ID PNP0b00 (000bd041) PNP0501: adding io range 0x3f8-0x3ff, size=0x8, align=0 PNP0501: adding irq mask 0x10 pnpbios: handle 10 device ID PNP0501 (0105d041) pnpbios: handle 11 device ID PNP0501 (0105d041) pnpbios: handle 12 device ID PNP0400 (0004d041) pnpbios: handle 13 device ID PNP0700 (0007d041) 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: