summaryrefslogtreecommitdiff
path: root/sys/scsi
diff options
context:
space:
mode:
authorkstailey <kstailey@cvs.openbsd.org>1997-03-08 21:21:38 +0000
committerkstailey <kstailey@cvs.openbsd.org>1997-03-08 21:21:38 +0000
commiteb305e3c65485ed2caa35f3a43a43fafe8d24593 (patch)
treea261ff45de07a68047dabde48a8e0c92921c6d37 /sys/scsi
parent6a3437e907a56d4a74b02d6df3f4a409b9bd2c84 (diff)
some scanner driver docs
Diffstat (limited to 'sys/scsi')
-rw-r--r--sys/scsi/README.ss35
1 files changed, 35 insertions, 0 deletions
diff --git a/sys/scsi/README.ss b/sys/scsi/README.ss
new file mode 100644
index 00000000000..88603af1b12
--- /dev/null
+++ b/sys/scsi/README.ss
@@ -0,0 +1,35 @@
+$OpenBSD: README.ss,v 1.1 1997/03/08 21:21:37 kstailey Exp $
+
+If you think SCSI tape drives are quirky you haven't seen anything.
+
+There are many SCSI scanners that don't use the SCSI Scanner protocol
+with CDB's like SET_WINDOW. Instead they send Esc-code sequences over
+the SCSI bus using the READ and WRITE operations. True brain death at
+its finest. The HP ScanJet, the Sharp JX-600S and the Epson ES-300C
+are among these.
+
+Ricoh, UMAX, Mustek, Fujitsu, Microtek on the other hand all try to
+use the SCSI scanner protocol, but scanning, unlike reading a block
+from a disk, is a multi-step operation. Certain steps must be
+performed in sequence and the protocol does not define this. In
+addition vendors are permitted by the SCSI spec. to have unique
+additional features that the spec. does not fully define. Last but not
+least vendors make mistakes in implementing the spec.
+
+My SCSI scanner driver architecture is designed to support scanners
+two ways.
+
+The first way is used if a scanner uses CDB's like SET_WINDOW. The
+driver code should be in ss.c and quirk tables and sequence strings
+etc. can battle it out. This part is not fully implemented yet.
+Work is being done on it from time to time.
+
+The other way is used when the driver is used with an
+Esc-code-over-SCSI case like a ScanJet it installs an "operations
+switch" so that parts of the code in ss.c can be bypassed. This
+feature is implemented for ScanJets. Currently some Mustek scanners
+use this approach, as the Mustek scanners use MODE_SELECT and not
+SET_WINDOW to send parameter data. However it is possible that too
+much code was farmed out to ss_mustek.c; it may be that common code
+for ssread() in ss.c could be used.
+