lkml.org 
[lkml]   [1996]   [Oct]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectAHA-2940 Bug Report [BIG]

This is a bug-report for the AIC7XXX driver.
[ I know it's a long message. I apologizes if it is a old, well known
problem. Please /bin/flames > /dev/null. ]

I bought a PCI AHA-2940 (NB, not a 2940W) a few weeks ago in order to run
my (SCSI) Iomega Zip and have had trouble with Linux since [my machine has a
Dos/Windows partition too, and I can't see any trouble under neither DOS nor
WFW3.11].

With 2.0.18, I get trouble when trying to mount/unmount the Zip when in X
(my video card is a PCI - Diamond Stealth64 Video 2001 Series): I lost
mouse/keyboard (I mean I already see a bug report about the same kind of
problem on the list). No problem seems to appear if not in X.
[I just tried it again for the benefit of the cause and lack to lost
my Linux root disk in the operation.. :(( ]

With 2.0.21, the system hang up at boot time, giving a "spurious interrupt"
and waiting indefinetely after a "aic7xxx: (reset_channel) Channel reset,
sequencer restarted." message if the Iomega is connected to the SCSI
card (I used the "terminator on" functionnality of the Zip),
but not switched on [No Ctl-Alt-Del available, I must restart the machine
by hand].
If the Iomega is connected and switched on, everything goes alright
(excepting the X problem, of course).
If the Iomega is not connected (empty SCSI bus), everything goes alright.

With 2.0.23 I get the GPF you can see below [The GPF *is* reproductible.]
when nothing is connected to the SCSI bus.
It runs if the Iomega is connected and switched on. [DO NOT ask me if X
crashes.. >:-[ ]

Hope this helps!

Amicalement, (friendly)
Stephane

PS: I only have the Zip to test my SCSI Card. Sorry. :)
PS2: My kernel is configured for the only adapters I got: IDE,
SB16, 3C509 and AHA2940 (+PCI Triton).
PS3: If you want more information, please e-mail me!

X -probeonly (for the X trouble):
---------------------------------

XFree86 Version 3.1.2 / X Window System
(protocol Version 11, revision 0, vendor release 6000)
Operating System: Linux
Configured drivers:
S3: accelerated server for S3 graphics adaptors (Patchlevel 0)
mmio_928, s3_generic
(using VT number 7)


Result of dmesg under (my currently running) 2.0.18:
----------------------------------------------------

Console: 8 point font, 400 scans
Console: colour VGA+ 80x50, 1 virtual console (max 63)
pcibios_init : BIOS32 Service Directory structure at 0x000fb290
pcibios_init : BIOS32 Service Directory entry at 0xfb720
pcibios_init : PCI BIOS revision 2.10 entry at 0xfb750
Probing PCI hardware.
Calibrating delay loop.. ok - 47.92 BogoMIPS
Memory: 30908k/32768k available (744k kernel code, 384k reserved, 732k data)
Swansea University Computer Society NET3.035 for Linux 2.0
NET3: Unix domain sockets 0.12 for Linux NET3.035.
Swansea University Computer Society TCP/IP for NET3.034
IP Protocols: ICMP, UDP, TCP
Checking 386/387 coupling... Ok, fpu using exception 16 error reporting.
Checking 'hlt' instruction... Ok.
Linux version 2.0.18 (alnet@stef-home) (gcc version 2.7.0) #6 Mon Sep 23 18:52:15 MET
DST 1996
Serial driver version 4.13 with no serial options enabled
tty00 at 0x03f8 (irq = 4) is a 16550A
tty01 at 0x02f8 (irq = 3) is a 16550A
lp1 at 0x0378, (polling)
APM BIOS version 1.1 Flags 0x07 (Driver version 1.2)
Entry f000:803c cseg16 f000 dseg fdfc cseg len ff63, dseg len a0
Connection version 1.1
AC on line, battery status unknown, battery life unknown
battery flag 0xf8, battery life 0 seconds
Real Time Clock Driver v1.07
Sound initialization started
<Sound Blaster 16 (4.13)> at 0x220 irq 5 dma 1,5
<Sound Blaster 16> at 0x330 irq 5 dma 0
<Yamaha OPL3 FM> at 0x388
Sound initialization complete
ide: i82371 PIIX (Triton) on PCI bus 0 function 57
ide0: BM-DMA at 0x3000-0x3007
ide1: BM-DMA at 0x3008-0x300f
hda: ST51080A, 1033MB w/128kB Cache, LBA, CHS=525/64/63
hdc: Pioneer CD-ROM ATAPI Model DR-A10X 0100, ATAPI CDROM drive
ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
ide1 at 0x170-0x177,0x376 on irq 15
Floppy drive(s): fd1 is 1.44M
Started kswapd v 1.4.2.2
FDC 0 is an 8272A
aic7xxx: BurstLen = 0 DWDs, Latency Timer = 32 PCLKS
aic7xxx: AHA-2940 Rev B.
aic7xxx: devconfig = 0x580.
aic7xxx: Reading SEEPROM...done.
aic7xxx: Extended translation enabled.
aic7xxx: Memory check yields 16 SCBs, paging not enabled.
AHA-2940 (PCI-bus), I/O 0x6000, Mem 0xf4000000:
irq 9
bus release time 40 bclks
data fifo threshold 100%
SCSI CHANNEL A:
scsi id 7
scsi selection timeout 256 ms
scsi bus reset at power-on enabled
scsi bus parity enabled
scsi bus termination (low byte) enabled
aic7xxx: Downloading sequencer code...done.
aic7xxx: Resetting the SCSI bus...done.
scsi0 : Adaptec AHA274x/284x/294x (EISA/VLB/PCI-Fast SCSI) 3.4/3.2/3.1
scsi : 1 host.
scsi0: Scanning channel A for devices.
scsi : detected total.
eth0: 3c509 at 0x300 tag 1, 10baseT port, address 00 60 8c ba e0 a7, IRQ 12.
3c509.c:1.07 6/15/95 becker@cesdis.gsfc.nasa.gov
Partition check:
hda: hda1 hda2 hda3 hda4 < hda5 hda6 >
VFS: Mounted root (ext2 filesystem) readonly.
Adding Swap: 50364k swap-space
hdc: media changed
hdc : tray open or drive not ready
hdc : tray open or drive not ready
hdc : tray open or drive not ready
hdc : tray open or drive not ready
VFS: Disk change detected on device 16:00
hdc : tray open or drive not ready
hdc : tray open
end_request: I/O error, dev 16:00, sector 65
isofs_read_super: bread failed, dev 16:00 iso_blknum 16 block 32
Unable to identify CD-ROM format.
fcntl_setlk() called by process 75 (agetty) with broken flock() emulation
smb_read_super: Failed connection, bailing out (error = 113).


[Hand-typed] copy of the boot screen under 2.0.23 (including GPF):
------------------------------------------------------------------

aic7xxx: BurstLen = 0 DWDs, Latency Timer = 32 PCLKS
aic7xxx: AHA-2940 Rev B.
aic7xxx: devconfig = 0x580.
aic7xxx: Reading SEEPROM...done.
aic7xxx: Extended translation enabled.
aic7xxx: Memory check yields 16 SCBs, paging not enabled.
AHA-2940 (PCI-bus), I/O 0x6000, Mem 0xf4000000:
irq 9
bus release time 40 bclks
data fifo threhold 100%
SCSI CHANNEL A:
scsi id 7
scsi selection timeout 256 ms
scsi bus reset at power-on enabled
scsi bus parity enabled
scsi bus termination (low byte) enabled
aic7xxx: Downloading sequencer...done.
aic7xxx: (aic7xxx_isr) Encountered spurious interrupt.
scsi0: SCSIINT - Someone reset Channel A.
aic7xxx: (reset_device) target/channel -1/A, active_scb 0
aic7xxx: (match_scb) comparing target/channel -1/A to scb 0/A
general protection: 0000
CPU: 0
EIP: 0010:[<00195387>]
EFLAGS: 00010082
eax: f000ef6f ebx: 000060ba ecx: 00006090 edx: 00006090
esi: 00006000 edi: 00006090 ebp: 00000000 esp: 0027f364
ds: 0018 es: 0018 fs: 002b gs: 0018 ss: 0018
Process swapper (pid: 1, process nr:1, stackpage=0027f000)
Stack: 00000000 0027a8e4 00000001 00006000 ffffffff 00000041 00000041 00000041
00000000 0027a8ff 0000007f 001953ff 001955d6 0027a860 00000000 000000ff
00000041 00006000 0027a860 00006087 00000000 00000000 0000001f 000000ff
Call Trace: [<001953ff>] [<001955d6>] [<00187d39>] [<0017e0a5>] [<0017e209>] [<0
017e363>] [<0019570a>]
[<0019793d>] [<00187d39>] [<00187d39>] [<00187d39>] [<0017e0a5>] [<0017e2
09>] [<0017e363>] [<0010c6c6>]
[<0010bdff>] [<001996a2>] [<00187d39>] [<0017e209>] [<00199edb>] [<0019b3
a0>] [<00193360>] [<0016b089>]
[<0012c328>] [<0010a4e2>] [<0011cfec>] [<0010936e>] [<0010919b>] [<001091
a2>] [<00109324>]
Code: c7 80 f0 00 00 00 00 00 08 00 0f b6 4c 24 24 89 c8 5b 5e 5f
Aiee, killing interrupt handler


Part of "nm /usr/src/linux-2.0.23/vmlinux | sort" concerning the GPF:
---------------------------------------------------------------------

001942f8 T parseInit
001943a0 T parseOpt
00194538 T proc_print_scsidevice
0019470c t debug_config
0019470c t gcc2_compiled.
0019494c T aic7xxx_setup
00194aa4 t aic7xxx_loadseq
00194b00 t aic7xxx_delay
00194b20 T rcs_version
00194c24 T aic7xxx_info
00194cec t aic7xxx_length
00194d30 t aic7xxx_scsirate
00194ee0 t aic7xxx_match_scb
00194f50 t aic7xxx_busy_target
00194f9c t aic7xxx_unbusy_target
00194fe4 t aic7xxx_allocate_scb
001950bc t aic7xxx_free_scb
001951b4 t aic7xxx_done
001951f0 t aic7xxx_done_aborted_scbs
00195274 t aic7xxx_add_waiting_scb
001952d0 t aic7xxx_abort_waiting_scb
001953a0 t aic7xxx_reset_device
001956bc t aic7xxx_reset_current_bus
001956e4 t aic7xxx_reset_channel
001958b8 t aic7xxx_isr
001983e4 t aic7xxx_select_queue_depth
00198400 t aic7xxx_probe
001984b4 t read_2840_seeprom
00198684 t read_seeprom
00198878 t detect_maxscb
001989ec t aic7xxx_register
00199a68 T aic7xxx_detect
00199f28 t aic7xxx_buildscb
0019a084 T aic7xxx_queue
0019a67c t aic7xxx_bus_device_reset
0019a9e4 T aic7xxx_abort
0019aa54 T aic7xxx_reset
0019aca8 T aic7xxx_biosparam


Dump (with gdb) of /usr/src/linux-2.0.23 for address 0x00195387:
----------------------------------------------------------------

Dump of assembler code for function aic7xxx_abort_waiting_scb:
0x1952d0 <aic7xxx_abort_waiting_scb>: subl $0x20,%esp
0x1952d3 <aic7xxx_abort_waiting_scb+3>: pushl %ebp
0x1952d4 <aic7xxx_abort_waiting_scb+4>: pushl %edi
0x1952d5 <aic7xxx_abort_waiting_scb+5>: pushl %esi
0x1952d6 <aic7xxx_abort_waiting_scb+6>: pushl %ebx
0x1952d7 <aic7xxx_abort_waiting_scb+7>: movl 0x34(%esp,1),%ebx
0x1952db <aic7xxx_abort_waiting_scb+11>: movl 0x38(%esp,1),%ebp
0x1952df <aic7xxx_abort_waiting_scb+15>: movb 0x3c(%esp,1),%al
0x1952e3 <aic7xxx_abort_waiting_scb+19>: movb %al,0x2c(%esp,1)
0x1952e7 <aic7xxx_abort_waiting_scb+23>: movb 0x1(%ebp),%dl
0x1952ea <aic7xxx_abort_waiting_scb+26>: shrb $0x4,%dl
0x1952ed <aic7xxx_abort_waiting_scb+29>: movzbl %dl,%eax
0x1952f0 <aic7xxx_abort_waiting_scb+32>: movl %eax,0x20(%esp,1)
0x1952f4 <aic7xxx_abort_waiting_scb+36>: movb $0x41,%cl
0x1952f6 <aic7xxx_abort_waiting_scb+38>: movb 0x1(%ebp),%dl
0x1952f9 <aic7xxx_abort_waiting_scb+41>: testb $0x8,%dl
0x1952fc <aic7xxx_abort_waiting_scb+44>: je 0x195300
<aic7xxx_abort_waiting_scb+48>
0x1952fe <aic7xxx_abort_waiting_scb+46>: movb $0x42,%cl
0x195300 <aic7xxx_abort_waiting_scb+48>: movl 0x8(%ebx),%esi
0x195303 <aic7xxx_abort_waiting_scb+51>: movl %esi,%edi
0x195305 <aic7xxx_abort_waiting_scb+53>: addw $0x90,%di
0x19530a <aic7xxx_abort_waiting_scb+58>: movl %edi,%edx
0x19530c <aic7xxx_abort_waiting_scb+60>: inb (%dx),%al
0x19530d <aic7xxx_abort_waiting_scb+61>: movb %al,%bl
0x19530f <aic7xxx_abort_waiting_scb+63>: movb %bl,0x28(%esp,1)
0x195313 <aic7xxx_abort_waiting_scb+67>: movb 0x28(%ebp),%al
0x195316 <aic7xxx_abort_waiting_scb+70>: outb %al,(%dx)
0x195317 <aic7xxx_abort_waiting_scb+71>: movl %esi,%ebx
0x195319 <aic7xxx_abort_waiting_scb+73>: addw $0xba,%bx
0x19531e <aic7xxx_abort_waiting_scb+78>: movl %ebx,%edx
0x195320 <aic7xxx_abort_waiting_scb+80>: inb (%dx),%al
0x195321 <aic7xxx_abort_waiting_scb+81>: movb %al,0x24(%esp,1)
0x195325 <aic7xxx_abort_waiting_scb+85>: movl %esi,%edx
0x195327 <aic7xxx_abort_waiting_scb+87>: addw $0xa0,%dx
0x19532c <aic7xxx_abort_waiting_scb+92>: xorb %al,%al
0x19532e <aic7xxx_abort_waiting_scb+94>: outb %al,(%dx)
0x19532f <aic7xxx_abort_waiting_scb+95>: movb $0xff,%al
0x195331 <aic7xxx_abort_waiting_scb+97>: movl %ebx,%edx
0x195333 <aic7xxx_abort_waiting_scb+99>: outb %al,(%dx)
0x195334 <aic7xxx_abort_waiting_scb+100>: pushl %esi
0x195335 <aic7xxx_abort_waiting_scb+101>: movsbl %cl,%ecx
0x195338 <aic7xxx_abort_waiting_scb+104>: movl %ecx,0x1c(%esp,1)
0x19533c <aic7xxx_abort_waiting_scb+108>: movl 0x1c(%esp,1),%eax
0x195340 <aic7xxx_abort_waiting_scb+112>: pushl %eax
0x195341 <aic7xxx_abort_waiting_scb+113>: movl 0x28(%esp,1),%edx
0x195345 <aic7xxx_abort_waiting_scb+117>: pushl %edx
0x195346 <aic7xxx_abort_waiting_scb+118>: call 0x194f9c <aic7xxx_unbusy_target>
0x19534b <aic7xxx_abort_waiting_scb+123>: addl $0xc,%esp
0x19534e <aic7xxx_abort_waiting_scb+126>: cmpb $0xff,0x2c(%esp,1)
0x195353 <aic7xxx_abort_waiting_scb+131>: jne 0x195364
<aic7xxx_abort_waiting_scb+148>
0x195355 <aic7xxx_abort_waiting_scb+133>: movl %esi,%edx
0x195357 <aic7xxx_abort_waiting_scb+135>: addw $0x4e,%dx
0x19535b <aic7xxx_abort_waiting_scb+139>: movb 0x24(%esp,1),%al
0x19535f <aic7xxx_abort_waiting_scb+143>: jmp 0x195371
<aic7xxx_abort_waiting_scb+161>
0x195361 <aic7xxx_abort_waiting_scb+145>: nop
0x195362 <aic7xxx_abort_waiting_scb+146>: nop
0x195363 <aic7xxx_abort_waiting_scb+147>: nop
0x195364 <aic7xxx_abort_waiting_scb+148>: movb 0x2c(%esp,1),%al
0x195368 <aic7xxx_abort_waiting_scb+152>: movl %edi,%edx
0x19536a <aic7xxx_abort_waiting_scb+154>: outb %al,(%dx)
0x19536b <aic7xxx_abort_waiting_scb+155>: movb 0x24(%esp,1),%al
0x19536f <aic7xxx_abort_waiting_scb+159>: movl %ebx,%edx
0x195371 <aic7xxx_abort_waiting_scb+161>: outb %al,(%dx)
0x195372 <aic7xxx_abort_waiting_scb+162>: movl %esi,%ecx
0x195374 <aic7xxx_abort_waiting_scb+164>: addw $0x90,%cx
0x195379 <aic7xxx_abort_waiting_scb+169>: movb 0x28(%esp,1),%al
0x19537d <aic7xxx_abort_waiting_scb+173>: movl %ecx,%edx
0x19537f <aic7xxx_abort_waiting_scb+175>: outb %al,(%dx)
0x195380 <aic7xxx_abort_waiting_scb+176>: orb $0x42,0x24(%ebp)
0x195384 <aic7xxx_abort_waiting_scb+180>: movl 0x1c(%ebp),%eax
0x195387 <aic7xxx_abort_waiting_scb+183>: movl $0x80000,0xf0(%eax)
0x195391 <aic7xxx_abort_waiting_scb+193>: movzbl 0x24(%esp,1),%ecx
0x195396 <aic7xxx_abort_waiting_scb+198>: movl %ecx,%eax
0x195398 <aic7xxx_abort_waiting_scb+200>: popl %ebx
0x195399 <aic7xxx_abort_waiting_scb+201>: popl %esi
0x19539a <aic7xxx_abort_waiting_scb+202>: popl %edi
0x19539b <aic7xxx_abort_waiting_scb+203>: popl %ebp
0x19539c <aic7xxx_abort_waiting_scb+204>: addl $0x20,%esp
0x19539f <aic7xxx_abort_waiting_scb+207>: ret
End of assembler dump.


\
 
 \ /
  Last update: 2005-03-22 13:38    [W:0.266 / U:0.728 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site