diff options
author | Kenneth R Westerback <krw@cvs.openbsd.org> | 2005-11-20 22:28:12 +0000 |
---|---|---|
committer | Kenneth R Westerback <krw@cvs.openbsd.org> | 2005-11-20 22:28:12 +0000 |
commit | 6617c88d5a71f28493c9343dac127de5f000bc74 (patch) | |
tree | 71b2a8cfe85d6a2d02e2c6b31b0ce137797bbc20 | |
parent | 8c1ff168d5c0e006ec741921ac694853c12ffb71 (diff) |
Add patch from Martin Bouyer to fix NetBSD PR #31990. Will generate
microcode that (in concert with fixes to ic/siop*) fixes problems
found by miod@, martin@, otto@, on some drives.
-rw-r--r-- | sys/dev/microcode/siop/siop.ss | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/sys/dev/microcode/siop/siop.ss b/sys/dev/microcode/siop/siop.ss index 35a04978e58..79e9492a8d4 100644 --- a/sys/dev/microcode/siop/siop.ss +++ b/sys/dev/microcode/siop/siop.ss @@ -1,5 +1,5 @@ -; $OpenBSD: siop.ss,v 1.7 2005/10/10 16:15:17 krw Exp $ -; $NetBSD: siop.ss,v 1.19 2005/02/27 00:27:29 perry Exp $ +; $OpenBSD: siop.ss,v 1.8 2005/11/20 22:28:11 krw Exp $ +; $NetBSD: siop.ss,v 1.20 2005/11/18 23:10:32 bouyer Exp $ ; ; Copyright (c) 2000 Manuel Bouyer. @@ -48,6 +48,7 @@ ABSOLUTE int_msgin = 0xff01; ABSOLUTE int_extmsgin = 0xff02; ABSOLUTE int_extmsgdata = 0xff03; ABSOLUTE int_disc = 0xff04; +ABSOLUTE int_saveoffset = 0xff05; ; interrupts that don't have a valid DSA ABSOLUTE int_reseltarg = 0xff80; ABSOLUTE int_resellun = 0xff81; @@ -263,9 +264,12 @@ handle_msgin: CALL REL(disconnect) ; disconnect message; ; if we didn't get sdp, no need to interrupt MOVE SCRATCHA0 & flag_sdp TO SFBR; + INT int_disc, IF not 0x00; +; update offset if we did some data transfer + MOVE SCRATCHA1 TO SFBR; JUMP REL(script_sched), if 0x00; -; Ok, we need to save data pointers - INT int_disc; + INT int_saveoffset; + msgin_ack: selected: CLEAR ACK; |