summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKenneth R Westerback <krw@cvs.openbsd.org>2005-11-20 22:28:12 +0000
committerKenneth R Westerback <krw@cvs.openbsd.org>2005-11-20 22:28:12 +0000
commit6617c88d5a71f28493c9343dac127de5f000bc74 (patch)
tree71b2a8cfe85d6a2d02e2c6b31b0ce137797bbc20
parent8c1ff168d5c0e006ec741921ac694853c12ffb71 (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.ss12
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;