Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 16 Dec 2000 00:08:10 -0500 (EST)
From:      "James F. Hranicky" <jfh@dogwood.cise.ufl.edu>
To:        FreeBSD-gnats-submit@freebsd.org
Subject:   kern/23580: Second SCSI Adapter (Adaptec 39160) still hanging system
Message-ID:  <200012160508.eBG58Aq04894@dogwood.cise.ufl.edu>
Resent-Message-ID: <200012160510.eBG5A1D18368@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help


>Number:         23580
>Category:       kern
>Synopsis:       Second SCSI Adapter (Adaptec 39160) still hanging system
>Confidential:   no
>Severity:       serious
>Priority:       high
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Fri Dec 15 21:10:01 PST 2000
>Closed-Date:
>Last-Modified:
>Originator:     James F. Hranicky
>Release:        FreeBSD 4.2-STABLE i386
>Organization:
University of Florida
>Environment:

	OS Version	: FreeBSD 4.2-STABLE (Dec 14th)
	Motherboard	: L440GX+
	On Board SCSI	: Adaptec 7896/97
	NIC		: Intel PRo 10/100B/100+
	Other		: IDE CDROM, Floppy, 2 serial, 1 ||

>Description:

	[ Note: I sent a message to freebsd-questions earlier, but have since done
	  more work, and feel a PR is necessary --jfh ]

	Installation of second SCSI adapter (Adaptec 39160) hangs the system. Here's
	a short synopsis of things tried:

	Initial installation:

	  - upon installing the new card and booting, it was discovered that the 
	    system was hung part of the way through boot, after the probe of the
	    SCSI adapters, but before the probe of the disks. Upon further investigation
	    it was discovered that the first adapter was sharing IRQ 11 for both
	    channels, and the second adapter was taking IRQs 5 and 11 for its channels.
	    At first, an IRQ conflict was suspected. The boot process halts after
	    the probe of the parallel port:

plip0: <PLIP network interface> on ppbus0
lpt0: <Printer> on ppbus0
lpt0: Interrupt-driven port
ppi0: <Parallel I/O> on ppbus0

	    At this point, scroll lock and serial break have no effect, while 
	    <Ctrl><Alt><Del> (after plugging the keyboard bak in) does boot the machine

	  - After searching the archives, I discovered that FreeBSD could use IRQs 
	    higher than 15 by enabling APIC_IO (which appears to require SMP support),
	    so I compiled an SMP kernel for the machine. Here are the (edited/annotated
	    slightly) boot messages for that kernel:

-----------------------------------------------------------------

FreeBSD 4.2-STABLE #0: Fri Dec 15 13:29:02 EST 2000
    root@palm.cise.ufl.edu:/private/freebsd-src/src/sys/compile/CISEKERN.SMP
Timecounter "i8254"  frequency 1193182 Hz
CPU: Pentium III/Pentium III Xeon/Celeron (646.67-MHz 686-class CPU)
  Origin = "GenuineIntel"  Id = 0x683  Stepping = 3
  Features=0x387fbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,PN,MMX,FXSR,SSE>
real memory  = 268369920 (262080K bytes)
avail memory = 256520192 (250508K bytes)
Programming 24 pins in IOAPIC #0
IOAPIC #0 intpin 2 -> irq 0
FreeBSD/SMP: Multiprocessor motherboard
 cpu0 (BSP): apic id:  1, version: 0x00040011, at 0xfee00000
 io0 (APIC): apic id:  0, version: 0x00170011, at 0xfec00000
Preloaded elf kernel "kernel.smp" at 0xc0452000.
Pentium Pro MTRR support enabled
md0: Malloc disk
npx0: <math processor> on motherboard
npx0: INT 16 interface
pcib0: <Intel 82443GX host to PCI bridge> on motherboard
pci0: <PCI bus> on pcib0
pcib2: <Intel 82443GX (440 GX) PCI-PCI (AGP) bridge> at device 1.0 on pci0
pci1: <PCI bus> on pcib2
pcib3: <PCI to PCI bridge (vendor=1011 device=0023)> at device 15.0 on pci1
pci2: <PCI bus> on pcib3

[ Here are the lines for the new SCSI card...this card takes ahc[0-1]
  when installed, normally, the internal card has ahc[0-1] ]

ahc0: <Adaptec 3960D Ultra160 SCSI adapter> port 0x2000-0x20ff mem 0xf4100000-0xf4100fff irq 18 at device 11.0 on pci0
aic7899: Wide Channel A, SCSI Id=7, 32/255 SCBs
ahc1: <Adaptec 3960D Ultra160 SCSI adapter> port 0x2400-0x24ff mem 0xf4101000-0xf4101fff irq 23 at device 11.1 on pci0
aic7899: Wide Channel B, SCSI Id=7, 32/255 SCBs
ahc2: <Adaptec aic7896/97 Ultra2 SCSI adapter> port 0x2800-0x28ff mem 0xf4102000-0xf4102fff irq 19 at device 12.0 on pci0
aic7896/97: Wide Channel A, SCSI Id=7, 32/255 SCBs
ahc3: <Adaptec aic7896/97 Ultra2 SCSI adapter> port 0x2c00-0x2cff mem 0xf4103000-0xf4103fff irq 19 at device 12.1 on pci0
aic7896/97: Wide Channel B, SCSI Id=7, 32/255 SCBs
fxp0: <Intel Pro 10/100B/100+ Ethernet> port 0x3000-0x303f mem 0xf4000000-0xf40fffff,0xf4104000-0xf4104fff irq 21 at device 14.0 on pci0
fxp0: Ethernet address 00:d0:b7:89:0e:24
isab0: <Intel 82371AB PCI to ISA bridge> at device 18.0 on pci0
isa0: <ISA bus> on isab0
atapci0: <Intel PIIX4 ATA33 controller> port 0x3060-0x306f at device 18.1 on pci0
ata0: at 0x1f0 irq 14 on atapci0
ata1: at 0x170 irq 15 on atapci0
pci0: <Intel 82371AB/EB (PIIX4) USB controller> at 18.2 irq 21
Timecounter "PIIX"  frequency 3579545 Hz
chip1: <Intel 82371AB Power management controller> port 0x1040-0x104f at device 18.3 on pci0
pci0: <Cirrus Logic GD5480 SVGA controller> at 20.0
pcib1: <Intel 82443GX host to AGP bridge> on motherboard
pci3: <PCI bus> on pcib1
eisa0: <EISA bus> on motherboard
eisa0: unknown card @@@0000 (0x00000000) at slot 2
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> irq 1 on atkbdc0
vga0: <Generic ISA VGA> at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0
sc0: <System console> on isa0
sc0: VGA <16 virtual consoles, flags=0x0>
sio0 at port 0x3f8-0x3ff irq 4 flags 0x10 on isa0
sio0: type 16550A, console
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 (ECP/PS2/NIBBLE) in COMPATIBLE mode
ppc0: FIFO with 16/16/8 bytes threshold
plip0: <PLIP network interface> on ppbus0
lpt0: <Printer> on ppbus0
lpt0: Interrupt-driven port
ppi0: <Parallel I/O> on ppbus0
APIC_IO: Testing 8254 interrupt delivery
APIC_IO: routing 8254 via IOAPIC #0 intpin 2
IPsec: Initialized Security Association Processing.
ata0-slave: ata_command: timeout waiting for intr
ata0-slave: identify failed
acd0: CDROM <CD-540E> at ata0-master using PIO4
Waiting 5 seconds for SCSI devices to settle

[ The system hangs here for a 60-90 seconds, then the following messages
  show up ]

(probe45:ahc3:0:0:0): SCB 0x9 - timed out while idle, SEQADDR == 0x3e

[ N.B. : this is the B channel of the internal SCSI card, which works fine
  when the second SCSI card is pulled out again ]

STACK == 0x0, 0x0, 0x0, 0x1
SXFRCTL0 == 0x80
SCB count = 20
QINFIFO entries: 9 8 7 6 5 4 3 2 1 0 19 18 17 16 15 
Waiting Queue entries: 
Disconnected Queue entries: 
QOUTFIFO entries: 
Sequencer Free SCB List: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 
Pending list: 15 16 17 18 19 0 1 2 3 4 5 6 7 8 9 
Kernel Free SCB list: 13 12 11 10 
Untagged Q(0): 9 
Untagged Q(1): 8 
Untagged Q(2): 7 
Untagged Q(3): 6 
Untagged Q(4): 18 
Untagged Q(5): 17 
Untagged Q(6): 5 
Untagged Q(8): 4 
Untagged Q(9): 16 
Untagged Q(10): 3 
Untagged Q(11): 2 
Untagged Q(12): 15 
Untagged Q(13): 1 
Untagged Q(14): 0 
Untagged Q(15): 19 
sg[0] - Addr 0xd9b0684 : Length 36
(probe45:ahc3:0:0:0): SCB 9: Immediate reset.  Flags = 0x6040
(probe45:ahc3:0:0:0): no longer in timeout, status = 34b
ahc3: Issued Channel A Bus Reset. 15 SCBs aborted
(probe45:ahc3:0:0:0): SCB 0xe - timed out while idle, SEQADDR == 0x3e
STACK == 0x0, 0x0, 0x1, 0x1
SXFRCTL0 == 0x80
SCB count = 20
QINFIFO entries: 14 15 16 17 18 19 0 1 2 3 4 5 6 7 8 
Waiting Queue entries: 
Disconnected Queue entries: 
QOUTFIFO entries: 
Sequencer Free SCB List: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 
Pending list: 8 7 6 5 4 3 2 1 0 19 18 17 16 15 14 
Kernel Free SCB list: 13 12 11 10 
Untagged Q(0): 14 
Untagged Q(1): 15 
Untagged Q(2): 16 
Untagged Q(3): 17 
Untagged Q(4): 5 
Untagged Q(5): 6 
Untagged Q(6): 18 
Untagged Q(8): 19 
Untagged Q(9): 7 
Untagged Q(10): 0 
Untagged Q(11): 1 
Untagged Q(12): 8 
Untagged Q(13): 2 
Untagged Q(14): 3 
Untagged Q(15): 4 
sg[0] - Addr 0xd9b0684 : Length 36
(probe45:ahc3:0:0:0): SCB 14: Immediate reset.  Flags = 0x6040
(probe45:ahc3:0:0:0): no longer in timeout, status = 34b
ahc3: Issued Channel A Bus Reset. 15 SCBs aborted
		
-----------------------------------------------------------------

	  - These probe/timeout messages continue on at this point. Interestingly enough,
	    scroll-lock works at this point, but serial break doesn't.

	  - As another data point, I disabled the parallel port in the BIOS, compiled
	    a new (non-smp) kernel without parallel support, and used the L440GX+
	    CDROM to set the internal SCSI card's IRQ to 7, then booted. The system hung
	    after the probes of the serial ports. It's very possible this is the same place
	    it was hanging before, as the parallel port probes were obviously absent

	  - What convinced me that this is a FreeBSD problem was booting off a Linux
	    emergency floppy, and watching probe the SCSI cards and then the drives 
	    themselves (which FBSD never got to with the second card in). I was both
	    relieved and disturbed at the same time.

>How-To-Repeat:

	I'm not completely sure, but getting the same hardware setup and trying 4.2
	STABLE might work :->

>Fix:

	I may try debugging the kernel, though it's not something I've ever done,
	and I don't really know what I'm looking for. Getting this working is a pretty 
	big deal, and at this point I'm willing to try just about anything.
	


>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?200012160508.eBG58Aq04894>