Date: Wed, 4 Oct 2000 04:05:12 GMT From: "Justin T. Gibbs" <gibbs@aslan.scsiguy.com> To: FreeBSD-gnats-submit@FreeBSD.org Subject: i386/21772: Incorrect IRQ routing for multi-function PCI devices on PR440FX Message-ID: <200010040405.e9445CB00427@aslan.scsiguy.com>
next in thread | raw e-mail | index | archive | help
>Number: 21772
>Category: i386
>Synopsis: No interrupts for 39160 PCI adapter in PR440FX under SMP kernel
>Confidential: no
>Severity: critical
>Priority: medium
>Responsible: freebsd-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: sw-bug
>Submitter-Id: current-users
>Arrival-Date: Thu Oct 05 09:10:00 PDT 2000
>Closed-Date:
>Last-Modified:
>Originator: Justin T. Gibbs
>Release: FreeBSD 5.0-CURRENT i386
>Organization:
>Environment:
mptable -dmesg -verbose output:
===============================================================================
MPTable, version 2.0.15
looking for EBDA pointer @ 0x040e, found, searching EBDA @ 0x0009fc00
searching CMOS 'top of mem' @ 0x0009f800 (638K)
searching default 'top of mem' @ 0x0009fc00 (639K)
searching BIOS @ 0x000f0000
MP FPS found in BIOS @ physical addr: 0x000f7ef0
-------------------------------------------------------------------------------
MP Floating Pointer Structure:
location: BIOS
physical address: 0x000f7ef0
signature: '_MP_'
length: 16 bytes
version: 1.4
checksum: 0x12
mode: Virtual Wire
-------------------------------------------------------------------------------
MP Config Table Header:
physical address: 0x000f7f00
signature: 'PCMP'
base table length: 228
version: 1.4
checksum: 0x38
OEM ID: 'INTEL '
Product ID: 'PR440FX '
OEM table pointer: 0x00000000
OEM table size: 0
entry count: 20
local APIC address: 0xfec08000
extended table length: 120
extended table checksum: 15
-------------------------------------------------------------------------------
MP Config Base Table Entries:
--
Processors: APIC ID Version State Family Model Step Flags
0 0x11 BSP, usable 6 1 9 0xfbff
12 0x11 AP, usable 6 1 9 0xfbff
--
Bus: Bus ID Type
0 PCI
18 ISA
--
I/O APICs: APIC ID Version State Address
13 0x11 usable 0xfec00000
--
I/O Ints: Type Polarity Trigger Bus ID IRQ APIC ID PIN#
ExtINT active-hi edge 18 0 13 0
INT active-hi edge 18 1 13 1
INT active-hi edge 18 3 13 3
INT active-hi edge 18 4 13 4
INT active-hi edge 18 5 13 5
INT active-hi edge 18 6 13 6
INT active-hi edge 18 7 13 7
INT active-hi edge 18 8 13 8
INT active-hi edge 18 12 13 12
INT active-hi edge 18 14 13 14
INT active-hi edge 18 15 13 15
INT active-lo level 0 17:A 13 18
INT active-lo level 0 11:A 13 16
INT active-lo level 0 9:A 13 17
INT active-lo level 0 6:A 13 18
--
Local Ints: Type Polarity Trigger Bus ID IRQ APIC ID PIN#
-------------------------------------------------------------------------------
MP Config Extended Table Entries:
--
System Address Space
bus ID: 0 address type: memory address
address base: 0xd4000
address range: 0x4000
--
System Address Space
bus ID: 0 address type: memory address
address base: 0xd8000
address range: 0x4000
--
System Address Space
bus ID: 0 address type: memory address
address base: 0xdc000
address range: 0x4000
--
System Address Space
bus ID: 0 address type: memory address
address base: 0xa0000
address range: 0x20000
--
System Address Space
bus ID: 0 address type: memory address
address base: 0x4000000
address range: 0xfc000000
--
System Address Space
bus ID: 0 address type: I/O address
address base: 0x0
address range: 0x10000
-------------------------------------------------------------------------------
# SMP kernel config file options:
# Required:
options SMP # Symmetric MultiProcessor Kernel
options APIC_IO # Symmetric (APIC) I/O
# Optional (built-in defaults will work in most cases):
#options NCPU=2 # number of CPUs
#options NBUS=2 # number of busses
#options NAPIC=1 # number of IO APICs
#options NINTR=24 # number of INTs
-------------------------------------------------------------------------------
dmesg output:
Copyright (c) 1992-2000 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 #7: Wed Oct 4 00:08:13 GMT 2000
gibbs@aslan.scsiguy.com:/usr/src/sys/compile/ASLAN
Timecounter "i8254" frequency 1193182 Hz
CPU: Pentium Pro (198.67-MHz 686-class CPU)
Origin = "GenuineIntel" Id = 0x619 Stepping = 9
Features=0xfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV>
real memory = 67108864 (65536K bytes)
config> di zp0
No such device: zp0
Invalid command or syntax. Type `?' for help.
config> di ze0
No such device: ze0
Invalid command or syntax. Type `?' for help.
config> di lnc0
No such device: lnc0
Invalid command or syntax. Type `?' for help.
config> di le0
No such device: le0
Invalid command or syntax. Type `?' for help.
config> di ie0
No such device: ie0
Invalid command or syntax. Type `?' for help.
config> di fe0
No such device: fe0
Invalid command or syntax. Type `?' for help.
config> di ex0
No such device: ex0
Invalid command or syntax. Type `?' for help.
config> di ep0
No such device: ep0
Invalid command or syntax. Type `?' for help.
config> di ed0
No such device: ed0
Invalid command or syntax. Type `?' for help.
config> di cs0
No such device: cs0
Invalid command or syntax. Type `?' for help.
config> di wt0
No such device: wt0
Invalid command or syntax. Type `?' for help.
config> di wdc1
No such device: wdc1
Invalid command or syntax. Type `?' for help.
config> di wdc0
No such device: wdc0
Invalid command or syntax. Type `?' for help.
config> di scd0
No such device: scd0
Invalid command or syntax. Type `?' for help.
config> di mcd0
No such device: mcd0
Invalid command or syntax. Type `?' for help.
config> di matcdc0
No such device: matcdc0
Invalid command or syntax. Type `?' for help.
config> di bt0
No such device: bt0
Invalid command or syntax. Type `?' for help.
config> di aic0
No such device: aic0
Invalid command or syntax. Type `?' for help.
config> di aha0
No such device: aha0
Invalid command or syntax. Type `?' for help.
config> en adv0
No such device: adv0
Invalid command or syntax. Type `?' for help.
config> f adv0 0
No such device: adv0
Invalid command or syntax. Type `?' for help.
config> q
avail memory = 61919232 (60468K bytes)
Preloaded elf kernel "kernel" at 0xc0318000.
Preloaded userconfig_script "/boot/kernel.conf" at 0xc031809c.
Pentium Pro MTRR support enabled
npx0: <math processor> on motherboard
npx0: INT 16 interface
pcib0: <Host to PCI bridge> at pcibus 0 on motherboard
pci0: <PCI bus> on pcib0
fxp0: <Intel Pro 10/100B/100+ Ethernet> port 0xff40-0xff5f mem 0xff800000-0xff8fffff,0xffbdb000-0xffbdbfff irq 9 at device 6.0 on pci0
fxp0: Ethernet address 00:a0:c9:49:b9:fb
isab0: <Intel 82371SB PCI to ISA bridge> at device 7.0 on pci0
isa0: <ISA bus> on isab0
pci0: <Intel PIIX3 ATA controller> at 7.1
ahc0: <Adaptec aic7880 Ultra SCSI adapter> port 0xf400-0xf4ff mem 0xffbdd000-0xffbddfff irq 11 at device 9.0 on pci0
aic7880: Wide Channel A, SCSI Id=7, 16/255 SCBs
pci0: <Trident model 9660 VGA-compatible display device> at 11.0 irq 11
ahc1: <Adaptec 3960D Ultra160 SCSI adapter> port 0xf800-0xf8ff mem 0xffbde000-0xffbdefff irq 9 at device 17.0 on pci0
aic7899: Wide Channel A, SCSI Id=7, 32/255 SCBs
ahc2: <Adaptec 3960D Ultra160 SCSI adapter> port 0xfc00-0xfcff mem 0xffbdf000-0xffbdffff irq 10 at device 17.1 on pci0
aic7899: Wide Channel B, SCSI Id=7, 32/255 SCBs
isa0: unexpected small tag 14
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
atkbdc0: <Keyboard controller (i8042)> at port 0x60,0x64 on isa0
atkbd0: <AT Keyboard> flags 0x1 irq 1 on atkbdc0
kbd0 at atkbd0
psm0: <PS/2 Mouse> irq 12 on atkbdc0
psm0: model Generic PS/2 mouse, device ID 0
vga0: <Generic ISA VGA> at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0
sc0: <System console> at flags 0x100 on isa0
sc0: VGA <16 virtual consoles, flags=0x300>
sio0 at port 0x3f8-0x3ff irq 4 flags 0x10 on isa0
sio0: type 16550A
sio1 at port 0x2f8-0x2ff irq 3 on isa0
sio1: type 16550A
ppc0: <Parallel port> at port 0x378-0x37f irq 7 on isa0
ppc0: Generic chipset (NIBBLE-only) in COMPATIBLE mode
lpt0: <Printer> on ppbus0
lpt0: Interrupt-driven port
ppi0: <Parallel I/O> on ppbus0
plip0: <PLIP network interface> on ppbus0
unknown: <PNP0303> can't assign resources
unknown: <PNP0f13> can't assign resources
unknown: <PNP0700> can't assign resources
unknown: <PNP0400> can't assign resources
unknown: <PNP0501> can't assign resources
unknown: <PNP0501> can't assign resources
Waiting 2 seconds for SCSI devices to settle
Mounting root from ufs:/dev/da0s1a
da2 at ahc1 bus 0 target 2 lun 0
da2: <QUANTUM ATLAS IV 9 WLS 9712> Fixed Direct Access SCSI-3 device
da2: 160.000MB/s transfers (80.000MHz, offset 31, 16bit)
da2: 8761MB (17942584 512 byte sectors: 255H 63S/T 1116C)
da0 at ahc0 bus 0 target 0 lun 0
da0: <SEAGATE ST32171W 0338> Fixed Direct Access SCSI-2 device
da0: 40.000MB/s transfers (20.000MHz, offset 8, 16bit)
da0: 2061MB (4222640 512 byte sectors: 64H 32S/T 2061C)
da1 at ahc0 bus 0 target 1 lun 0
da1: <SEAGATE ST32171W 0338> Fixed Direct Access SCSI-2 device
da1: 40.000MB/s transfers (20.000MHz, offset 8, 16bit)
da1: 2061MB (4222640 512 byte sectors: 64H 32S/T 2061C)
===============================================================================
>Description:
When booting this system with an SMP kernel all disk activity
on the 39160 PCI HBA results in a timeout. After instrumenting
the aic7xxx driver, it is plain that interrupts are not being
delivered. In the SMP boot case, ahc0 is given irq 17, ahc1
is given irq 18, and ahc2 is given irq 10. A UP kernel from
the same sources boots correctly.
>How-To-Repeat:
Boot a PR440FX with a multi-function PCI device.
>Fix:
My guess is that we're missing another workaround for a
broken mptable, but I don't know enough about the MP
spec to determine exactly what is wrong nor how to
correct it.
>Release-Note:
>Audit-Trail:
>Unformatted:
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-bugs" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200010040405.e9445CB00427>
