kern/69158: Cisco MPI350 problems related to irq sharing

Joe Morris jcmorris at bsu.edu
Fri Jul 16 09:00:46 PDT 2004


>Number:         69158
>Category:       kern
>Synopsis:       Cisco MPI350 problems related to irq sharing
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Fri Jul 16 16:00:46 GMT 2004
>Closed-Date:
>Last-Modified:
>Originator:     Joe Morris
>Release:        4.10-p2, 5.2.1-p9, 5.2-CURRENT
>Organization:
>Environment:
FreeBSD Laptopia.joesnetwork 4.10-RELEASE-p2 FreeBSD 4.10-RELEASE-p2 #2: Fri Jul 16 09:13:13 EDT 2004     root at Laptopia.joesnetwork:/usr/obj/usr/src/sys/LAPTOPIA  i386
>Description:
I have an IBM Thinkpad R40, and FreeBSD hardware support has been outstanding for everything but my Cisco MPI350 wireless card. At first, wireless would either quit or lock up entirely, sometimes with strange kernel messages, sometimes with no warning at all.  So, I went into the BIOS and changed the INTC irq to 9 (INTC seems to control the irqs of my wireless and uhci2). Ever since I gave an0 a unique irq (shared only with uhci2), the wireless has worked perfectly, until I plug in a USB device.  When I plug in a USB mouse, I either have a solid lock-up of the system, or I get the following repeatedly:

an0: failed to read RID ff50 7f00 2 3fe 0, 3
an0: failed to read RID ff50 7f00 2 3fe 0, 3
an0: failed to read RID ff50 4a0c 230b 3fe 0, 3

After a short time, ifconfig reports the status of an0 as "no carrier".

I have also run Linux 2.6.7 and Windows XP on here with complete success, but FreeBSD 4.x and 5.x have issues with my irq setup.  Even setting the BIOS irq settings to "Auto" doesn't solve the problem, and in fact makes it worse (guaranteed lock-ups, since the Cisco card is sharing an irq with a system-critical device).

I would be happy to submit any information you may need!  I'm sure it would also help if I told you that in 4.10 GENERIC I was getting "stray irq 7", which was my parallel port, even when the port was disabled in the BIOS.  Now that I've changed irqs, I can't even use the parallel port at all (ppc0: cannot reserve I/O port range), but I'm sure more BIOS fiddling would change that, this is still annoying.  Below is a sample dmesg output. As you will notice, I was hot-plugging a USB mouse into my USB ports to see if a problem would arise, and then I'd try to reinsert the if_an module. Thanks for your time!

Copyright (c) 1992-2004 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.10-RELEASE-p2 #2: Fri Jul 16 09:13:13 EDT 2004
    root at Laptopia.joesnetwork:/usr/obj/usr/src/sys/LAPTOPIA
Timecounter "i8254"  frequency 1193182 Hz
CPU: Intel(R) Pentium(R) M processor 1400MHz (1398.82-MHz 686-class CPU)
  Origin = "GenuineIntel"  Id = 0x695  Stepping = 5
  Features=0xa7e9f9bf<FPU,VME,DE,PSE,TSC,MSR,MCE,CX8,SEP,MTRR,PGE,MCA,CMOV,PAT,C
LFLUSH,DTS,ACPI,MMX,FXSR,SSE,SSE2,TM,PBE>
real memory  = 267780096 (261504K bytes)
avail memory = 256303104 (250296K bytes)
Preloaded elf kernel "kernel" at 0xc042e000.
Pentium Pro MTRR support enabled
md0: Malloc disk
Using $PIR table, 12 entries at 0xc00fded0
apm0: <APM BIOS> on motherboard
apm0: found APM BIOS v1.2, connected at v1.2
npx0: <math processor> on motherboard
npx0: INT 16 interface
pcib0: <Host to PCI bridge> on motherboard
pci0: <PCI bus> on pcib0
pcib1: <PCI to PCI bridge (vendor=8086 device=3341)> at device 1.0 on pci0
pci1: <PCI bus> on pcib1
pci1: <ATI model 4c57 graphics accelerator> at 0.0 irq 11
uhci0: <Intel 82801DB (ICH4) USB controller USB-A> port 0x1800-0x181f irq 11 at 
device 29.0 on pci0
usb0: <Intel 82801DB (ICH4) USB controller USB-A> on uhci0
usb0: USB revision 1.0
uhub0: Intel UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub0: 2 ports with 2 removable, self powered
uhci1: <Intel 82801DB (ICH4) USB controller USB-B> port 0x1820-0x183f irq 11 at 
device 29.1 on pci0
usb1: <Intel 82801DB (ICH4) USB controller USB-B> on uhci1
usb1: USB revision 1.0
uhub1: Intel UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub1: 2 ports with 2 removable, self powered
uhci2: <Intel 82801DB (ICH4) USB controller USB-C> port 0x1840-0x185f irq 9 at d
evice 29.2 on pci0
usb2: <Intel 82801DB (ICH4) USB controller USB-C> on uhci2
usb2: USB revision 1.0
uhub2: Intel UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub2: 2 ports with 2 removable, self powered
ehci0: <EHCI (generic) USB 2.0 controller> mem 0xc0000000-0xc00003ff irq 11 at d
evice 29.7 on pci0
ehci_pci_attach: companion usb0
ehci_pci_attach: companion usb1
ehci_pci_attach: companion usb2
usb3: EHCI version 1.0
usb3: companion controllers, 2 ports each: usb0 usb1 usb2
usb3: <EHCI (generic) USB 2.0 controller> on ehci0
usb3: USB revision 2.0
uhub3: (0x8086) EHCI root hub, class 9/0, rev 2.00/1.00, addr 1
uhub3: 6 ports with 6 removable, self powered
pcib2: <PCI to PCI bridge (vendor=8086 device=2448)> at device 30.0 on pci0
pci2: <PCI bus> on pcib2
pcic0: <TI PCI-1510 PCI-CardBus Bridge> irq 11 at device 0.0 on pci2
pcic0: PCI Memory allocated: 0x88000000
pcic0: TI12XX PCI Config Reg: [speaker enable][pwr save][CSC serial isa irq]
pccard0: <PC Card 16-bit bus (classic)> on pcic0
pci2: <unknown card> (vendor=0x14b9, dev=0xa504) at 2.0 irq 9
fwohci0: vendor=104c, dev=8026
fwohci0: <1394 Open Host Controller Interface> mem 0xc0204000-0xc0207fff,0xc0209
000-0xc02097ff irq 11 at device 7.0 on pci2
fwohci0: OHCI version 1.10 (ROM=0)
fwohci0: No. of Isochronous channel is 4.
fwohci0: EUI64 00:06:1b:00:20:11:1a:a1
fwohci0: Phy 1394a available S400, 1 ports.
fwohci0: Link S400, max_rec 2048 bytes.
firewire0: <IEEE1394(FireWire) bus> on fwohci0
fwe0: <Ethernet over FireWire> on firewire0
if_fwe0: Fake Ethernet address: 02:06:1b:11:1a:a1
sbp0: <SBP-2/SCSI over FireWire> on firewire0
fwohci0: Initiate bus reset
fwohci0: node_id=0xc000ffc0, gen=1, CYCLEMASTER mode
firewire0: 1 nodes, maxhop <= 0, cable IRM = 0 (me)
firewire0: bus manager 0 (me)
fxp0: <Intel 82801DB (ICH4) Pro/100 VE Ethernet> port 0x8400-0x843f mem 0xc02080
00-0xc0208fff irq 11 at device 8.0 on pci2
fxp0: Ethernet address 00:06:1b:db:d9:8c
inphy0: <i82562ET 10/100 media interface> on miibus0
inphy0:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
isab0: <PCI to ISA bridge (vendor=8086 device=24cc)> at device 31.0 on pci0
isa0: <ISA bus> on isab0
atapci0: <Intel ICH4 ATA100 controller> port 0x1860-0x186f,0-0x3,0-0x7,0-0x3,0-0
x7 at device 31.1 on pci0
ata0: at 0x1f0 irq 14 on atapci0
ata1: at 0x170 irq 15 on atapci0
pci0: <unknown card> (vendor=0x8086, dev=0x24c3) at 31.3 irq 11
pcm0: <Intel ICH4 (82801DB)> port 0x18c0-0x18ff,0x1c00-0x1cff mem 0xc0000800-0xc
00008ff,0xc0000c00-0xc0000dff irq 11 at device 31.5 on pci0
pcm0: <Analog Devices AD1981B AC97 Codec>
pci0: <unknown card> (vendor=0x8086, dev=0x24c6) at 31.6 irq 11
orm0: <Option ROMs> at iomem 0xc0000-0xcffff,0xd0000-0xd0fff,0xd1000-0xd1fff,0xd
c000-0xdffff,0xe0000-0xeffff on isa0
pmtimer0 on isa0
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>
ppc0: cannot reserve I/O port range
ad0: 35031MB <IC25N040ATMR04-0> [71175/16/63] at ata0-master UDMA100
acd0: CD-RW <HL-DT-STCD-RW/DVD DRIVE GCC-4240N> at ata1-master UDMA33
Mounting root from ufs:/dev/ad0s2a
WARNING: / was not properly dismounted
an0: <Cisco Aironet MPI350> port 0x8000-0x80ff mem 0xc0400000-0xc07fffff,0xc0200
000-0xc0203fff irq 9 at device 2.0 on pci2
an0: got RSSI <-> dBM map
an0: Ethernet address: 00:02:8a:d8:61:29
ppc0: cannot reserve I/O port range
ums0: Microsoft Microsoft 3-Button Mouse with IntelliEye?, rev 2.00/0.00, addr 2
, iclass 3/1
ums0: 3 buttons and Z dir.
an0: failed to read RID ff50 7f00 2 3fe 0, 3
ums0: at uhub1 port 2 (addr 2) disconnected
ums0: detached
an0: failed to read RID ff50 4a0c 230b 3fe 0, 3
an0: failed to read RID ff50 7f00 2 3fe 0, 3
ums0: Microsoft Microsoft 3-Button Mouse with IntelliEye?, rev 2.00/0.00, addr 2
, iclass 3/1
ums0: 3 buttons and Z dir.
an0: failed to read RID ff50 7f00 2 3fe 0, 3
ums0: at uhub1 port 1 (addr 2) disconnected
ums0: detached
an0: failed to read RID ff50 7f00 2 3fe 0, 3
an0: failed to read RID ff50 7f00 2 3fe 0, 3
ums0: Microsoft Microsoft 3-Button Mouse with IntelliEye?, rev 2.00/0.00, addr 2
, iclass 3/1
ums0: 3 buttons and Z dir.
an0: failed to read RID ff50 7f00 2 3fe 0, 3
an0: failed to read RID ff50 7f00 2 3fe 0, 3
an0: failed to read RID ff50 4a0c 230b 3fe 0, 3
an0: detached
an0: <Cisco Aironet MPI350> port 0x8000-0x80ff mem 0xc0400000-0xc07fffff,0xc0200
000-0xc0203fff irq 9 at device 2.0 on pci2
an0: read record failed
device_probe_and_attach: an0 attach returned 5
ppc0: cannot reserve I/O port range
>How-To-Repeat:
      Use the Cisco card in conjunction with a device sharing its irq.
>Fix:
      Don't use a device using the same irq as the wireless card.
>Release-Note:
>Audit-Trail:
>Unformatted:


More information about the freebsd-bugs mailing list