Subject: kern/18794: two PCI wi(4) will not run in the same host
To: None <gnats-bugs@gnats.netbsd.org>
From: None <dyoung@netbsd.org>
List: netbsd-bugs
Date: 10/25/2002 08:43:46
>Number:         18794
>Category:       kern
>Synopsis:       two PCI wi(4) will not run in the same host
>Confidential:   no
>Severity:       serious
>Priority:       high
>Responsible:    kern-bug-people
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Fri Oct 25 01:44:01 PDT 2002
>Closed-Date:
>Last-Modified:
>Originator:     dyoung@ojctech.com
>Release:        NetBSD 1.6I
>Organization:
	OJC Technologies
>Environment:
	
	
System: NetBSD anoncuw 1.6I NetBSD 1.6I (GENERIC) #23: Tue Oct 22 01:33:13 CDT 2002     root@noam.onthejob.net:/home/dyoung/anoncvs/src/sys/arch/i386/compile/GENERIC i386
Architecture: i386
Machine: i386
>Description:
	If two LinkSys WMP11 PCI cards are installed on the PCI bus of a
	Dell Pentium 166, one card will not intialize properly inside of
	wi_init. Witness the kernel messages when wi1 loses during
	ifconfig wi1 ...

wi1: command timed out, cmd=0x2, arg=0x0
wi1: command timed out, cmd=0x0, arg=0x0
wi1: wi_cmd: BUSY did not clear, cmd=0x0, prev=0x8000
wi1: wi_cmd: BUSY did not clear, cmd=0x0, prev=0x8000
wi1: wi_cmd: BUSY did not clear, cmd=0x0, prev=0x8000
wi1: wi_cmd: BUSY did not clear, cmd=0x0, prev=0x8000
wi1: init failed
wi1: interface not running
wi1: wi_cmd: BUSY did not clear, cmd=0x2, prev=0x8000
wi1: wi_cmd: BUSY did not clear, cmd=0x2, prev=0x8000
wi1: wi_cmd: BUSY did not clear, cmd=0x0, prev=0x8000
wi1: wi_cmd: BUSY did not clear, cmd=0x0, prev=0x8000
wi1: wi_cmd: BUSY did not clear, cmd=0x0, prev=0x8000
wi1: wi_cmd: BUSY did not clear, cmd=0x0, prev=0x8000
wi1: wi_cmd: BUSY did not clear, cmd=0x0, prev=0x8000
wi1: init failed
wi1: interface not running
wi1: wi_cmd: BUSY did not clear, cmd=0x2, prev=0x8000
wi1: wi_cmd: BUSY did not clear, cmd=0x21, prev=0x8000
wi1: wi_cmd: BUSY did not clear, cmd=0x21, prev=0x8000
wi1: wi_cmd: BUSY did not clear, cmd=0x2, prev=0x8000
wi1: wi_cmd: BUSY did not clear, cmd=0x0, prev=0x8000
wi1: wi_cmd: BUSY did not clear, cmd=0x0, prev=0x8000
wi1: wi_cmd: BUSY did not clear, cmd=0x0, prev=0x8000
wi1: wi_cmd: BUSY did not clear, cmd=0x0, prev=0x8000
wi1: wi_cmd: BUSY did not clear, cmd=0x0, prev=0x8000
wi1: init failed
wi1: interface not running
wi1: wi_cmd: BUSY did not clear, cmd=0x2, prev=0x8000
wi1: wi_cmd: BUSY did not clear, cmd=0x2, prev=0x8000
wi1: wi_cmd: BUSY did not clear, cmd=0x0, prev=0x8000
wi1: wi_cmd: BUSY did not clear, cmd=0x0, prev=0x8000
wi1: wi_cmd: BUSY did not clear, cmd=0x0, prev=0x8000
wi1: wi_cmd: BUSY did not clear, cmd=0x0, prev=0x8000
wi1: wi_cmd: BUSY did not clear, cmd=0x0, prev=0x8000
wi1: init failed
wi1: interface not running
wi1: wi_cmd: BUSY did not clear, cmd=0x2, prev=0x8000
wi1: wi_cmd: BUSY did not clear, cmd=0x21, prev=0x8000
wi1: wi_cmd: BUSY did not clear, cmd=0x21, prev=0x8000
wi1: wi_cmd: BUSY did not clear, cmd=0x21, prev=0x8000
wi1: wi_cmd: BUSY did not clear, cmd=0x21, prev=0x8000

Here is the dmesg output from the host,

NetBSD 1.6I (GENERIC) #23: Tue Oct 22 01:33:13 CDT 2002
    root@noam.onthejob.net:/home/dyoung/anoncvs/src/sys/arch/i386/compile/GENERIC
total memory = 32384 KB
avail memory = 23644 KB
using 430 buffers containing 1720 KB of memory
BIOS32 rev. 0 found at 0xffe90
mainbus0 (root)
cpu0 at mainbus0: (uniprocessor)
cpu0: Intel Pentium (P54C) (586-class), 165.80 MHz
cpu0: features 1bf<FPU,VME,DE,PSE,TSC,MSR,MCE,CX8>
pci0 at mainbus0 bus 0: configuration mode 1
pci0: i/o space, memory space enabled, rd/line, rd/mult, wr/inv ok
pchb0 at pci0 dev 0 function 0
pchb0: Intel 82437FX System Controller (TSC) (rev. 0x02)
pcib0 at pci0 dev 7 function 0
pcib0: Intel 82371FB PCI-to-ISA Bridge (PIIX) (rev. 0x02)
pciide0 at pci0 dev 7 function 1: Intel 82371FB IDE controller (PIIX) (rev. 0x02)
pciide0: bus-master DMA support present
pciide0: primary channel wired to compatibility mode
wd0 at pciide0 channel 0 drive 0: <WDC AC22100H>
wd0: drive supports 16-sector PIO transfers, LBA addressing
wd0: 2014 MB, 4092 cyl, 16 head, 63 sec, 512 bytes/sect x 4124736 sectors
wd0: 32-bit data port
wd0: drive supports PIO mode 4, DMA mode 2
pciide0: primary channel interrupting at irq 14
wd0(pciide0:0:0): using PIO mode 4, DMA mode 2 (using DMA data transfers)
pciide0: secondary channel wired to compatibility mode
atapibus0 at pciide0 channel 1: 2 targets
cd0 at atapibus0 drive 0: <NEC                 CD-ROM DRIVE:282, , 3.07> cdrom removable
cd0: 32-bit data port
cd0: drive supports PIO mode 3, DMA mode 1
pciide0: secondary channel interrupting at irq 15
cd0(pciide0:1:0): using PIO mode 0, DMA mode 1 (using DMA data transfers)
wi0 at pci0 dev 12 function 0: Intersil Prism2.5 Wireless Lan
wi0: interrupting at irq 11
wi0: 802.11 address 00:06:25:a7:a1:f6
wi0: using RF:PRISM2.5 MAC:ISL3874A(Mini-PCI)
wi0: Intersil Firmware: Primary (1.0.5), Station (1.3.4)
wi0: supported rates: 1Mbps 2Mbps 5.5Mbps 11Mbps
wi1 at pci0 dev 13 function 0: Intersil Prism2.5 Wireless Lan
wi1: interrupting at irq 10
wi1: 802.11 address 00:06:25:a7:1e:3a
wi1: using RF:PRISM2.5 MAC:ISL3874A(Mini-PCI)
wi1: Intersil Firmware: Primary (1.0.5), Station (1.3.4)
wi1: supported rates: 1Mbps 2Mbps 5.5Mbps 11Mbps
vga1 at pci0 dev 16 function 0: S3 Trio32/64 (rev. 0x00)
wsdisplay0 at vga1 kbdmux 1: console (80x25, vt100 emulation)
wsmux1: connecting to wsdisplay0
isa0 at pcib0
com0 at isa0 port 0x3f8-0x3ff irq 4: ns16550a, working fifo
com1 at isa0 port 0x2f8-0x2ff irq 3: ns16550a, working fifo
pckbc0 at isa0 port 0x60-0x64
pckbd0 at pckbc0 (kbd slot)
pckbc0: using irq 1 for kbd slot
wskbd0 at pckbd0: console keyboard, using wsdisplay0
lpt0 at isa0 port 0x378-0x37b irq 7
pcppi0 at isa0 port 0x61
midi0 at pcppi0: PC speaker
sysbeep0 at pcppi0
isapnp0 at isa0 port 0x279: ISA Plug 'n Play device support
npx0 at isa0 port 0xf0-0xff: using exception 16
fdc0 at isa0 port 0x3f0-0x3f7 irq 6 drq 2
fd0 at fdc0 drive 0: 1.44MB, 80 cyl, 2 head, 18 sec
isapnp0: read port 0x203
sb1 at isapnp0 port 0x220/16,0x330/2,0x388/4 irq 5 drq 1,5
sb1: Creative ViBRA16C PnP Audio: dsp v4.13
audio0 at sb1: full duplex, mmap, independent
mpu0 at sb1
midi1 at mpu0: SB MPU-401 MIDI UART
opl0 at sb1: model OPL3
midi2 at opl0: SB Yamaha OPL3
joy0 at isapnp0 port 0x200/8
joy0: Creative ViBRA16C PnP Game
joy0: joystick not connected
biomask f345 netmask ff45 ttymask ffc7
boot device: wd0
root device (default wd0e): 
dump device (default wd0b): 
file system (default generic): ffs
root on wd0e dumps on wd0b
warning: no /dev/console
init path (default /sbin/init): 
init: trying /sbin/init
IP Filter: v3.4.29 initialized.  Default = pass all, Logging = enabled
wi1: command timed out, cmd=0x2, arg=0x0
wi1: command timed out, cmd=0x0, arg=0x0
wi1: wi_cmd: BUSY did not clear, cmd=0x0, prev=0x8000
wi1: wi_cmd: BUSY did not clear, cmd=0x0, prev=0x8000
wi1: wi_cmd: BUSY did not clear, cmd=0x0, prev=0x8000
wi1: wi_cmd: BUSY did not clear, cmd=0x0, prev=0x8000
wi1: init failed
wi1: interface not running
wi1: wi_cmd: BUSY did not clear, cmd=0x2, prev=0x8000
wi1: wi_cmd: BUSY did not clear, cmd=0x2, prev=0x8000
wi1: wi_cmd: BUSY did not clear, cmd=0x0, prev=0x8000
wi1: wi_cmd: BUSY did not clear, cmd=0x0, prev=0x8000
wi1: wi_cmd: BUSY did not clear, cmd=0x0, prev=0x8000
wi1: wi_cmd: BUSY did not clear, cmd=0x0, prev=0x8000
wi1: wi_cmd: BUSY did not clear, cmd=0x0, prev=0x8000
wi1: init failed
wi1: interface not running
wi1: wi_cmd: BUSY did not clear, cmd=0x2, prev=0x8000
wi1: wi_cmd: BUSY did not clear, cmd=0x21, prev=0x8000
wi1: wi_cmd: BUSY did not clear, cmd=0x21, prev=0x8000
wi1: wi_cmd: BUSY did not clear, cmd=0x2, prev=0x8000
wi1: wi_cmd: BUSY did not clear, cmd=0x0, prev=0x8000
wi1: wi_cmd: BUSY did not clear, cmd=0x0, prev=0x8000
wi1: wi_cmd: BUSY did not clear, cmd=0x0, prev=0x8000
wi1: wi_cmd: BUSY did not clear, cmd=0x0, prev=0x8000
wi1: wi_cmd: BUSY did not clear, cmd=0x0, prev=0x8000
wi1: init failed
wi1: interface not running
wi1: wi_cmd: BUSY did not clear, cmd=0x2, prev=0x8000
wi1: wi_cmd: BUSY did not clear, cmd=0x2, prev=0x8000
wi1: wi_cmd: BUSY did not clear, cmd=0x0, prev=0x8000
wi1: wi_cmd: BUSY did not clear, cmd=0x0, prev=0x8000
wi1: wi_cmd: BUSY did not clear, cmd=0x0, prev=0x8000
wi1: wi_cmd: BUSY did not clear, cmd=0x0, prev=0x8000
wi1: wi_cmd: BUSY did not clear, cmd=0x0, prev=0x8000
wi1: init failed
wi1: interface not running
wi1: wi_cmd: BUSY did not clear, cmd=0x2, prev=0x8000
wi1: wi_cmd: BUSY did not clear, cmd=0x21, prev=0x8000
wi1: wi_cmd: BUSY did not clear, cmd=0x21, prev=0x8000
wi1: wi_cmd: BUSY did not clear, cmd=0x21, prev=0x8000
wi1: wi_cmd: BUSY did not clear, cmd=0x21, prev=0x8000

>How-To-Repeat:
	Install 1.6J on a Pentium 166. Put two LinkSys WMP11 PCI cards into
	the PCI slots.  Watch wi1 fail.
>Fix:
	A work-around is to revert to the 1.6H kernel, which is not affected
	by this bug. Perhaps changes in autoconf, or shorter time-outs
	in wi(4), break the initialization?
>Release-Note:
>Audit-Trail:
>Unformatted: