Messages in this thread | | | Date | Sun, 20 Oct 1996 20:48:34 +0200 | From | Stephane Alnet <> | Subject | AHA-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.
| |