aic7xxx.seq (6940) | aic7xxx.seq (7118) |
---|---|
1# @(#)aic7xxx.seq 1.32 94/11/29 jda 2# 3# Adaptec 274x/284x/294x device driver for Linux and FreeBSD. 4# Copyright (c) 1994 The University of Calgary Department of Computer Science. 5# 6# This program is free software; you can redistribute it and/or modify 7# it under the terms of the GNU General Public License as published by 8# the Free Software Foundation; either version 2 of the License, or --- 7 unchanged lines hidden (view full) --- 16# You should have received a copy of the GNU General Public License 17# along with this program; if not, write to the Free Software 18# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 19# 20 21# FreeBSD, Twin, Wide, 2 command per target support, tagged queuing and other 22# optimizations provided by Justin T. Gibbs (gibbs@FreeBSD.org) 23# | 1# @(#)aic7xxx.seq 1.32 94/11/29 jda 2# 3# Adaptec 274x/284x/294x device driver for Linux and FreeBSD. 4# Copyright (c) 1994 The University of Calgary Department of Computer Science. 5# 6# This program is free software; you can redistribute it and/or modify 7# it under the terms of the GNU General Public License as published by 8# the Free Software Foundation; either version 2 of the License, or --- 7 unchanged lines hidden (view full) --- 16# You should have received a copy of the GNU General Public License 17# along with this program; if not, write to the Free Software 18# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 19# 20 21# FreeBSD, Twin, Wide, 2 command per target support, tagged queuing and other 22# optimizations provided by Justin T. Gibbs (gibbs@FreeBSD.org) 23# |
24# $Id: aic7xxx.seq,v 1.8 1995/02/22 01:37:52 gibbs Exp $ | |
25 | 24 |
26VERSION AIC7XXX_SEQ_VERSION 1.8 | 25VERSION AIC7XXX_SEQ_VER "$Id: aic7xxx.seq,v 1.9 1995/03/07 09:00:44 gibbs Exp $" |
27 28SCBMASK = 0x1f 29 30SCSISEQ = 0x00 31SXFRCTL0 = 0x01 32SXFRCTL1 = 0x02 33SCSISIGI = 0x03 34SCSISIGO = 0x03 --- 686 unchanged lines hidden (view full) --- 721# that the reconnection is for - find the correct SCB and switch to it, 722# clearing the "disconnected" bit so we don't "find" it by accident later. 723# 724p_mesgin5: 725 test A,0x80 jz p_mesgin6 # identify message? 726 727 test A,0x78 jnz p_mesginN # !DiscPriv|!LUNTAR|!Reserved 728 | 26 27SCBMASK = 0x1f 28 29SCSISEQ = 0x00 30SXFRCTL0 = 0x01 31SXFRCTL1 = 0x02 32SCSISIGI = 0x03 33SCSISIGO = 0x03 --- 686 unchanged lines hidden (view full) --- 720# that the reconnection is for - find the correct SCB and switch to it, 721# clearing the "disconnected" bit so we don't "find" it by accident later. 722# 723p_mesgin5: 724 test A,0x80 jz p_mesgin6 # identify message? 725 726 test A,0x78 jnz p_mesginN # !DiscPriv|!LUNTAR|!Reserved 727 |
729 and A,0x7 # lun in lower three bits | 728 and A,0x07 # lun in lower three bits |
730 or SAVED_TCL,A,SELID 731 and SAVED_TCL,0xf7 732 and A,0x08,SBLKCTL # B Channel?? 733 or SAVED_TCL,A 734 call inb_last # Ack 735 736# Here we "snoop" the bus looking for a SIMPLE QUEUE TAG message. 737# If we get one, we use the tag returned to switch to the proper 738# SCB. Otherwise, we just use the findSCB method. 739p_mesgin5_loop: | 729 or SAVED_TCL,A,SELID 730 and SAVED_TCL,0xf7 731 and A,0x08,SBLKCTL # B Channel?? 732 or SAVED_TCL,A 733 call inb_last # Ack 734 735# Here we "snoop" the bus looking for a SIMPLE QUEUE TAG message. 736# If we get one, we use the tag returned to switch to the proper 737# SCB. Otherwise, we just use the findSCB method. 738p_mesgin5_loop: |
740 test SSTAT1,0x8 jnz use_findSCB # BUSFREE 741 test SSTAT1,0x1 jz p_mesgin5_loop # REQINIT | 739 test SSTAT1,0x08 jnz use_findSCB # BUSFREE 740 test SSTAT1,0x01 jz p_mesgin5_loop # REQINIT |
742 and A,0xe0,SCSISIGI # CDI|IOI|MSGI 743 cmp A,0xe0 jne use_findSCB # Still p_mesgin? 744 mvi A call inb_first 745 cmp A,0x20 je get_tag # Simple Tag message? 746use_findSCB: 747 mov ALLZEROS call findSCB # Have to search 748 749# If a active message is present after calling findSCB, then either it --- 508 unchanged lines hidden --- | 741 and A,0xe0,SCSISIGI # CDI|IOI|MSGI 742 cmp A,0xe0 jne use_findSCB # Still p_mesgin? 743 mvi A call inb_first 744 cmp A,0x20 je get_tag # Simple Tag message? 745use_findSCB: 746 mov ALLZEROS call findSCB # Have to search 747 748# If a active message is present after calling findSCB, then either it --- 508 unchanged lines hidden --- |