aic7xxx.seq (15709) | aic7xxx.seq (15843) |
---|---|
1/*+M*********************************************************************** 2 *Adaptec 274x/284x/294x device driver for Linux and FreeBSD. 3 * 4 *Copyright (c) 1994 John Aycock 5 * The University of Calgary Department of Computer Science. 6 * All rights reserved. 7 * 8 *FreeBSD, Twin, Wide, 2 command per target support, tagged queuing, --- 25 unchanged lines hidden (view full) --- 34 *OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 35 *HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 36 *LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 37 *OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 38 *SUCH DAMAGE. 39 * 40 *-M************************************************************************/ 41 | 1/*+M*********************************************************************** 2 *Adaptec 274x/284x/294x device driver for Linux and FreeBSD. 3 * 4 *Copyright (c) 1994 John Aycock 5 * The University of Calgary Department of Computer Science. 6 * All rights reserved. 7 * 8 *FreeBSD, Twin, Wide, 2 command per target support, tagged queuing, --- 25 unchanged lines hidden (view full) --- 34 *OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 35 *HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 36 *LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 37 *OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 38 *SUCH DAMAGE. 39 * 40 *-M************************************************************************/ 41 |
42VERSION AIC7XXX_SEQ_VER "$Id: aic7xxx.seq,v 1.33 1996/04/20 21:20:29 gibbs Exp $" | 42VERSION AIC7XXX_SEQ_VER "$Id: aic7xxx.seq,v 1.34 1996/05/10 16:11:01 gibbs Exp $" |
43 44#include "../../dev/aic7xxx/aic7xxx_reg.h" 45 46/* 47 * We can't just use ACCUM in the sequencer code because it 48 * must be treated specially by the assembler, and it currently 49 * looks for the symbol 'A'. This is the only register defined in 50 * the assembler's symbol space. --- 197 unchanged lines hidden (view full) --- 248 */ 249 or SXFRCTL0,CLRCHN 250/* 251 * Initialize SCSIRATE with the appropriate value for this target. 252 */ 253 call ndx_dtr 254 mov SCSIRATE,SINDIR 255 | 43 44#include "../../dev/aic7xxx/aic7xxx_reg.h" 45 46/* 47 * We can't just use ACCUM in the sequencer code because it 48 * must be treated specially by the assembler, and it currently 49 * looks for the symbol 'A'. This is the only register defined in 50 * the assembler's symbol space. --- 197 unchanged lines hidden (view full) --- 248 */ 249 or SXFRCTL0,CLRCHN 250/* 251 * Initialize SCSIRATE with the appropriate value for this target. 252 */ 253 call ndx_dtr 254 mov SCSIRATE,SINDIR 255 |
256/* 257 * Initialize Ultra mode setting. ndx_dtr has left our target mask 258 * in A. 259 */ 260 and SINDEX,0xdf,SXFRCTL0 /* default to Ultra disabled */ 261 test SCSIID, 0x80 jnz ultra_b /* Target ID > 7 */ 262 test SBLKCTL, SELBUSB jnz ultra_b /* Second channel device */ 263 test ULTRA_ENB,A jz set_sxfrctl0 264 or SINDEX, ULTRAEN jmp set_sxfrctl0 265ultra_b: 266 test ULTRA_ENB_B,A jz set_sxfrctl0 267 or SINDEX, ULTRAEN 268 269set_sxfrctl0: 270 mov SXFRCTL0,SINDEX 271 |
|
256 mvi SCSISEQ,ENAUTOATNP /* 257 * ATN on parity errors 258 * for "in" phases 259 */ 260 mvi CLRSINT1,CLRBUSFREE 261 mvi CLRSINT0,0x60 /* CLRSELDI|CLRSELDO */ | 272 mvi SCSISEQ,ENAUTOATNP /* 273 * ATN on parity errors 274 * for "in" phases 275 */ 276 mvi CLRSINT1,CLRBUSFREE 277 mvi CLRSINT0,0x60 /* CLRSELDI|CLRSELDO */ |
262 | |
263/* 264 * Main loop for information transfer phases. If BSY is false, then 265 * we have a bus free condition, expected or not. Otherwise, wait 266 * for the target to assert REQ before checking MSG, C/D and I/O 267 * for the bus phase. 268 * 269 */ 270ITloop: --- 7 unchanged lines hidden (view full) --- 278 cmp ALLZEROS,A je p_dataout 279 cmp A,P_DATAIN je p_datain 280 cmp A,P_COMMAND je p_command 281 cmp A,P_MESGOUT je p_mesgout 282 cmp A,P_STATUS je p_status 283 cmp A,P_MESGIN je p_mesgin 284 285 mvi INTSTAT,BAD_PHASE /* unknown phase - signal driver */ | 278/* 279 * Main loop for information transfer phases. If BSY is false, then 280 * we have a bus free condition, expected or not. Otherwise, wait 281 * for the target to assert REQ before checking MSG, C/D and I/O 282 * for the bus phase. 283 * 284 */ 285ITloop: --- 7 unchanged lines hidden (view full) --- 293 cmp ALLZEROS,A je p_dataout 294 cmp A,P_DATAIN je p_datain 295 cmp A,P_COMMAND je p_command 296 cmp A,P_MESGOUT je p_mesgout 297 cmp A,P_STATUS je p_status 298 cmp A,P_MESGIN je p_mesgin 299 300 mvi INTSTAT,BAD_PHASE /* unknown phase - signal driver */ |
301 jmp ITloop /* Try reading the bus again. */ |
|
286 287p_dataout: 288 mvi DMAPARAMS,0x7d /* 289 * WIDEODD|SCSIEN|SDMAEN|HDMAEN| 290 * DIRECTION|FIFORESET 291 */ 292 jmp data_phase_init 293 --- 808 unchanged lines hidden --- | 302 303p_dataout: 304 mvi DMAPARAMS,0x7d /* 305 * WIDEODD|SCSIEN|SDMAEN|HDMAEN| 306 * DIRECTION|FIFORESET 307 */ 308 jmp data_phase_init 309 --- 808 unchanged lines hidden --- |