summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMiod Vallat <miod@cvs.openbsd.org>2013-09-23 22:14:46 +0000
committerMiod Vallat <miod@cvs.openbsd.org>2013-09-23 22:14:46 +0000
commitd72728baab70f57e1f8b37d4fa167f5897be4e95 (patch)
treeaaa1a58abc8c31483eac3edc55fce4642e3ed34d
parentf451ac953e8145d23895ee995f93cb866acb2842 (diff)
Remove SLOWSCSI and the millisecond delay after each phase change it introduces.
This code was added back when the scsi code between the kernel and the boot blocks was shared, to work around an obscure kernel problem (and definitely not related to bootstrap, at all). While there, increase the target selection timeout from 2ms to 250ms, to match the value currently used by the kernel. Crank boot blocks version. Booting a kernel from disk is now significantly faster.
-rw-r--r--sys/arch/hp300/stand/common/scsi.c25
-rw-r--r--sys/arch/hp300/stand/common/version.c5
2 files changed, 8 insertions, 22 deletions
diff --git a/sys/arch/hp300/stand/common/scsi.c b/sys/arch/hp300/stand/common/scsi.c
index 42bd5cc1ff8..bf283a46b4f 100644
--- a/sys/arch/hp300/stand/common/scsi.c
+++ b/sys/arch/hp300/stand/common/scsi.c
@@ -1,13 +1,7 @@
-/* $OpenBSD: scsi.c,v 1.9 2013/03/23 16:08:28 deraadt Exp $ */
+/* $OpenBSD: scsi.c,v 1.10 2013/09/23 22:14:44 miod Exp $ */
/* $NetBSD: scsi.c,v 1.7 1997/01/30 10:32:57 thorpej Exp $ */
/*
- * This is reported to fix some odd failures when disklabeling
- * SCSI disks in SYS_INST.
- */
-#define SLOWSCSI
-
-/*
* Copyright (c) 1988 University of Utah.
* Copyright (c) 1990, 1993
* The Regents of the University of California. All rights reserved.
@@ -172,10 +166,10 @@ issue_select(volatile struct scsidevice *hd, u_char target, u_char our_addr)
hd->scsi_pctl = 0;
hd->scsi_temp = (1 << target) | our_addr;
- /* select timeout is hardcoded to 2ms */
- hd->scsi_tch = 0;
- hd->scsi_tcm = 32;
- hd->scsi_tcl = 4;
+ /* select timeout is hardcoded to 250ms */
+ hd->scsi_tch = 2;
+ hd->scsi_tcm = 113;
+ hd->scsi_tcl = 3;
hd->scsi_scmd = SCMD_SELECT;
return (0);
@@ -330,15 +324,6 @@ scsiicmd(struct scsi_softc *hs, int target, u_char *cbuf, int clen, u_char *buf,
(int)(hs - scsi_softc), phase);
goto abort;
}
-#ifdef SLOWSCSI
- /*
- * XXX we have weird transient problems with booting from
- * slow scsi disks on fast machines. I have never been
- * able to pin the problem down, but a large delay here
- * seems to always work.
- */
- DELAY(1000);
-#endif
/* wait for last command to complete */
while ((ints = hd->scsi_ints) == 0) {
if (--wait < 0)
diff --git a/sys/arch/hp300/stand/common/version.c b/sys/arch/hp300/stand/common/version.c
index c605023e867..e2a89de9929 100644
--- a/sys/arch/hp300/stand/common/version.c
+++ b/sys/arch/hp300/stand/common/version.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: version.c,v 1.13 2013/02/02 13:34:29 miod Exp $ */
+/* $OpenBSD: version.c,v 1.14 2013/09/23 22:14:45 miod Exp $ */
/*
* Record major changes in the boot code here, and increment the version
@@ -25,6 +25,7 @@
* from the default boot device without an explicit device or a leading
* `/'.
* 2.14 Build with the ELF toolchain.
+ * 2.15 Remove SLOWSCSI from scsi code, and increase target selection timeout.
*/
-const char version[] = "2.14";
+const char version[] = "2.15";