summaryrefslogtreecommitdiffstats
path: root/sys/dev/microcode
diff options
context:
space:
mode:
authorkrw <krw@openbsd.org>2005-11-20 22:28:11 +0000
committerkrw <krw@openbsd.org>2005-11-20 22:28:11 +0000
commitc032fbbf2bc98a68a71a861dfd371804c6086178 (patch)
tree34314aa265eb19a007873636bffbed193fb0431c /sys/dev/microcode
parentComplete overhaul of the single-stepping ddb code, close in spirit to the (diff)
downloadwireguard-openbsd-c032fbbf2bc98a68a71a861dfd371804c6086178.tar.xz
wireguard-openbsd-c032fbbf2bc98a68a71a861dfd371804c6086178.zip
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.
Diffstat (limited to 'sys/dev/microcode')
-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;