Date: Thu, 29 May 2003 02:43:22 +0200 (CEST) From: Dirk-Willem van Gulik <dirkx@webweaving.org> To: "M. Warner Losh" <imp@bsdimp.com> Cc: hackers@freebsd.org Subject: Re: pcic setup / wi0 timeout Message-ID: <20030529024013.E22309-100000@foem> In-Reply-To: <20030528.183603.98561533.imp@bsdimp.com>
next in thread | previous in thread | raw e-mail | index | archive | help
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<FPU,VME,DE,PSE,TSC,MSR,MCE,CX8,MMX> 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: <null device, zero device> random: <entropy source> mem: <memory & I/O> npx0: <math processor> 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: <Host to PCI bridge> at pcibus 0 on motherboard pci0: <PCI bus> 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: <PCI-ISA bridge> at device 7.0 on pci0 isa0: <ISA bus> on isab0 atapci0: <Intel PIIX4 ATA33 controller> 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: <serial bus, USB> at device 7.2 (no driver attached) pci0: <bridge, PCI-unknown> at device 7.3 (no driver attached) pci0: <display, VGA> at device 8.0 (no driver attached) pci_cfgintr: can't route an interrupt to 0:17 INTA pcic0: <Ricoh RL5C475 PCI-CardBus Bridge> 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: <PC Card 16-bit bus (classic)> on pcic0 pci_cfgintr: can't route an interrupt to 0:18 INTA pcic1: <Ricoh RL5C475 PCI-CardBus Bridge> 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: <PC Card 16-bit bus (classic)> on pcic1 wi0: <Intersil Prism2.5> 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: <Intersil Prism2.5> 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: <Option ROM> at iomem 0xc0000-0xc7fff on isa0 adv0: not probed (disabled) aha0: not probed (disabled) aic0: not probed (disabled) atkbdc0: <Keyboard controller (i8042)> at port 0x64,0x60 on isa0 atkbd0: <AT Keyboard> flags 0x1 irq 1 on atkbdc0 atkbd: the current kbd controller command byte 0065 atkbd: keyboard ID 0x41ab (2) kbd0 at atkbd0 kbd0: atkbd0, AT 101/102 (2), config:0x1, flags:0x3d0000 bt0: not probed (disabled) cs0: not probed (disabled) ed0: not probed (disabled) ed1 failed to probe at port 0x340-0x35f iomem 0xd8000 irq 5 on isa0 fdc0 failed to probe at port 0x3f0 irq 6 drq 2 on isa0 fe0: not probed (disabled) ie0: not probed (disabled) le0: not probed (disabled) lnc0: not probed (disabled) ppc0 failed to probe at irq 7 on isa0 sc0: <System console> at flags 0x100 on isa0 sc0: VGA <16 virtual consoles, flags=0x300> sc0: fb0, kbd0, terminal emulator: sc (syscons terminal) sio0: irq maps: 0x1 0x11 0x1 0x1 sio0 at port 0x3f8-0x3ff irq 4 flags 0x10 on isa0 sio0: type 16550A sio1: configured irq 3 not in bitmap of probed irqs 0 sio1: port may not be enabled sio1: irq maps: 0x1 0x1 0x1 0x1 sio1: probe failed test(s): 0 1 2 4 6 7 9 sio1 failed to probe at port 0x2f8-0x2ff irq 3 on isa0 sio2: not probed (disabled) sio3: not probed (disabled) sn0: not probed (disabled) vga0: <Generic ISA VGA> at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0 fb0: vga0, vga, type:VGA (5), flags:0x7007f 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 05 a0 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 vt0: not probed (disabled) isa_probe_children: probing PnP devices unknown: <PNP0a03> can't assign resources (port) unknown: <PNP0a03> at port 0x4d0-0x4d1,0x80,0xe6,0xcf8-0xcff on isa0 unknown: <PNP0800> failed to probe at port 0x61 on isa0 unknown: <PNP0303> can't assign resources (port) unknown: <PNP0303> at port 0x60 on isa0 unknown: <PNP0501> can't assign resources (port) unknown: <PNP0501> at port 0x3f8-0x3ff on isa0 unknown: <16550A-compatible COM port> failed to probe on isa0 unknown: <PNP0400> failed to probe on isa0 unknown: <PNP0700> failed to probe on isa0 BIOS Geometries: 0:004a0f3f 0..74=75 cylinders, 0..15=16 heads, 1..63=63 sectors 0 accounted for Device configuration finished. procfs registered Timecounters tick every 10.000 msec ipfw2 initialized, divert enabled, rule-based forwarding enabled, default to accept, logging disabled DUMMYNET initialized (011031) lo0: bpf attached ad0: success setting WDMA2 on Intel chip GEOM: new disk ad0 ar: FreeBSD check1 failed ad0: <WDC AC21600H/24.09P07> ATA-0 disk at ata0-master ad0: 1549MB (3173184 sectors), 3148 C, 16 H, 63 S, 512 B ad0: 1 secs/int, 1 depth queue, WDMA2 ad0: piomode=4 dmamode=2 udmamode=-1 cblid=0 GEOM: Configure ad0s1, start 32256 length 1624637952 end 1624670207 GEOM: Add ad0s1 hot[0] start 512 length 276 end 787 GEOM: Configure ad0s1a, start 0 length 226492416 end 226492415 GEOM: Configure ad0s1b, start 226492416 length 251658240 end 478150655 GEOM: Configure ad0s1c, start 0 length 1624637952 end 1624637951 GEOM: Configure ad0s1d, start 478150656 length 402653184 end 880803839 GEOM: Configure ad0s1e, start 880803840 length 125829120 end 1006632959 GEOM: Configure ad0s1f, start 1006632960 length 584056832 end 1590689791 Mounting root from ufs:/dev/ad0s1a start_init: trying /sbin/init pcic1: Autodetected 3.3V card pccard: card inserted, slot 1 pcic1: reset 1 int is 0 stat is 6f pcic1: reset 2 int is 60 stat is 6f pcic1: reset 3 int is 60 stat is 6f pccard1: Assigning wi2: io 0x240-0x27f irq 10 flags 0x0 pcic: I/O win 0 flags 15 240-27f pcic: I/O win 0 flags 5 240-27f wi2 at port 0x240-0x27f irq 10 slot 1 on pccard1 pcic: I/O win 0 flags 15 240-27f wi2: 802.11 address: 00:02:6f:03:0b:1b wi2: using RF:PRISM2.5 MAC:ISL3873 wi2: Intersil Firmware: Primary 1.00.05, Station 1.02.00 wi2: wi_has_wep = 1 wi2: bpf attached wi2: watchdog timeout wi2: watchdog timeout wi2: watchdog timeout wi2: watchdog timeout wi2: watchdog timeout wi2: watchdog timeout wi2: watchdog timeout wi2: watchdog timeout wi2: watchdog timeout wi2: watchdog timeout wi2: watchdog timeout
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20030529024013.E22309-100000>