Commit Graph

274 Commits

Author SHA1 Message Date
mycroft
e819063285 Define a full set of [234][bl]tol() and lto[234][bl]() conversion functions,
inlined.
Use sized types in protocol structures.
Make the definition of scsi_sense_data less ugly.
1996-03-19 03:05:15 +00:00
hpeyerl
9785218963 Fix for NEC D3847 1.6gB drive which reported itself at lun[1-7]. 1996-03-18 16:19:58 +00:00
pk
12bcc82160 Parentheses are your friends. 1996-03-17 02:06:50 +00:00
thorpej
532e997971 New device attachment scheme:
- split softc size and match/attach out from cfdriver into
	  a new struct cfattach.

	- new "attach" directive for files.*.  May specify the name of
	  the cfattach structure, so that devices may be easily attached
	  to parents with different autoconfiguration semantics.
1996-03-17 00:57:14 +00:00
thorpej
8f4177ba60 Add another broken drive that doesn't deal with LUNs properly to The List.
Fixes PR 1961, from Kevin P. Neal.
1996-03-05 01:45:42 +00:00
thorpej
a8573feb51 Normalize SCSI autoconfiguration output.
From Chris Demetriou <cgd@NetBSD.ORG>.  Fixes PR #1958.
1996-03-05 00:15:09 +00:00
mycroft
ad355be572 Add a SDEV_AUTOSAVE quirk for the DEC RZ55. 1996-02-22 23:37:27 +00:00
mycroft
91e913b297 Handle EOF a little differently. 1996-02-19 00:06:07 +00:00
mycroft
c5326f656e Change variable name to avoid GCC warning. 1996-02-18 23:21:48 +00:00
mycroft
2dfda50bb9 Minor tweak; make sure window size is 0 on close. 1996-02-18 20:44:40 +00:00
mycroft
8f0f40e8b3 Missed some prototyping foo. 1996-02-18 20:41:18 +00:00
mycroft
342c383728 Truncate to the window size in ssminphys(), not ssread(). 1996-02-18 20:38:44 +00:00
mycroft
294879d4ee Add SCSI scanner support by Kenneth Stailey and Joachim Koenig-Baltes,
hacked a bit.  Needs more work.
1996-02-18 20:32:40 +00:00
mycroft
23726708b0 Minor change. 1996-02-18 20:30:53 +00:00
jtk
45eee6c55b remove #ifdef notdef made unnecessary by previous changes (PR#1597)
put in missing "if (error)" that caused tape IO to always fail.
(closes PR#2086)
1996-02-17 16:00:22 +00:00
christos
0bc63f486d scsi prototypes 1996-02-14 21:46:52 +00:00
briggs
f18f32d2e1 PR#2048. Prototype st_erase(). 1996-02-09 14:51:34 +00:00
briggs
e5ece749b2 Handle COMMAND ABORTED by forcing a retry. PR#2003, but with some more
diagnostic info.
1996-01-31 15:16:06 +00:00
thorpej
919f6728ab Accept DIOCEJECT as a synonym for CDIOCEJECT. Implement DIOCLOCK
separately from CDIOCALLOW and CDIOCPREVENT, even though they perform
basically the same function (with a different interface XXX).
1996-01-30 18:28:02 +00:00
thorpej
c7a20f0ee3 Implement DIOCLOCK and DIOCEJECT. DIOCEJECT is limited to removable
media.  Fixes PR #1975.
1996-01-30 18:24:47 +00:00
thorpej
8068d9eeb2 Handle cases like the following:
- controller calls scsi_done() with error XS_TIMEOUT
	- scsi_done() calls sddone()
	- sddone() calls disk_unbusy()
	- scsi_done() calls controller to retry command (missing the
	  call to disk_busy())
	- controller calls scsi_done()
	- scsi_done() calls sddone()
	- sddone() calls disk_busy(), which panics because of the imbalance.
Bug noticed by Leo Weppleman, who also suggested this fix; pass an additional
boolean argument ("complete") to the device's "done" routine, with a
value of `0' passed from the previous call to "done", and add an additional
call to "done" when the xfer resources are freed.
1996-01-12 22:43:26 +00:00
pk
59dd89e3b1 LUN deficient device: Tandberg 3600 (Ken Raeburn; PR#1933). 1996-01-12 11:32:37 +00:00
thorpej
5b51ec5cc8 Honor cache request and implement erase command, and add the SCSI tape
device configuration page.  Fixes PRs 807, 1201, and 1705.
From John Kohl <jtk@kolvir.blrc.ma.us>.
1996-01-11 03:36:34 +00:00
thorpej
5b39541e48 New generic disk framework. Highlights:
- New metrics handling.  Metrics are now kept in the new
	  `struct disk'.  Busy time is now stored as a timeval, and
	  transfer count in bytes.

	- Storage for disklabels is now dynamically allocated, so that
	  the size of the disk structure is not machine-dependent.

	- Several new functions for attaching and detaching disks, and
	  handling metrics calculation.

Old-style instrumentation is still supported in drivers that did it before.
However, old-style instrumentation is being deprecated, and will go away
once the userland utilities are updated for the new framework.

For usage and architectural details, see the forthcoming disk(9) manual
page.
1996-01-07 22:01:38 +00:00
pk
0548b8e5ad SCSI sense `info' field is a signed value (from John Kohl; PR#1597). 1996-01-05 16:03:35 +00:00
thorpej
19c3f6d999 Add another broken CD-ROM drive to The List (Chinon CDS-525), per PR #1686.
From Kortelainen Mika <k125374@cs.tut.fi>.
1995-12-31 02:40:53 +00:00
mycroft
89f8e05c10 Trim NULs, in addition to spaces, in scsi_strvis(). 1995-12-11 04:43:01 +00:00
thorpej
1cd2ca323b Remove a couple of now unneeded assignments. 1995-12-07 21:54:24 +00:00
thorpej
b6c6d46a82 In sdminphys(), add a comment about the semantics of the "length" field
in a 6-byte read/write cdb (namely, length == 0 really means 256), and
that we handle this conservatively by limiting the transfer to 255 blocks.
*sigh* One just never knows how a pre-scsi-1 device is going to behave.
1995-12-07 19:46:00 +00:00
thorpej
c9895db015 In both cd.c and sd.c:
If the read or write request can fit into a 6-byte cdb, then
	use a 6-byte cdb, otherwise use the 10-byte as before.

In sd.c:
	In sdattach(), make a note if the device is "ancient" (i.e.
	inqbuf.version & SID_ANSII == 0).

	Implement sdminphys(): if the device is "ancient", shorten the
	transfer so it will fit into a 6-byte cdb.

These changes have eliminated the rejected read/write requests on my
Sun 3/60 with 2 ESDI disks behind an Emulex MD21.
1995-12-07 19:11:32 +00:00
pk
7a7ca00077 Add quirk for Exabyte 8200/rev. 263H (from Paul Goyette; PR#1797). 1995-11-30 10:12:04 +00:00
mycroft
fbecb8d22b Remove the gratuitous code to check for a disc at boot time. 1995-11-11 20:07:57 +00:00
pk
8d78a257c0 More rogues. 1995-11-01 01:15:07 +00:00
thorpej
cbef9e5129 Add missing spindle synch control, rotational offset, and RPM members
to the rigid geometry mode page.  These missing members are at the
end of the page, in space wich was previously marked "reserved".
1995-10-15 23:32:02 +00:00
gwr
444e2789c6 Add quirk entries for Wangtek SCSI tapes. Also, add entry for
Tandberg 3800 (fixes PR#1592 - from Jochen Pohl).
1995-10-13 20:01:03 +00:00
mycroft
92221a1399 Return EINVAL if something other than a whole number of blocks is requested. 1995-10-10 02:52:56 +00:00
pk
db0107b895 Specify SCSI_DATA_OUT in sddump() (from John Kohl; PR#1482). 1995-09-30 22:57:19 +00:00
thorpej
b93138b93d Add another broken NEC CD-ROM drive to The List. Fixes PR #1451. 1995-09-26 23:37:50 +00:00
thorpej
249cddaaa7 Don't declare Debugger(). It's handled in <sys/systm.h>.
#include <sys/systm.h> where necessary, as suggested by Jonathan Stone.
Fixes PR #1511.
1995-09-26 19:26:48 +00:00
pk
d9e37f2bc7 Set the scsi link before calling config_attach(), so target/lun info is
available to, say, dk_establish().
1995-08-21 09:30:09 +00:00
briggs
3560df43af CHINON CDS-535 version Q117 also needs NOLUNS. Assume all 535s do. 1995-08-14 13:01:42 +00:00
briggs
19f3c3099f Another SDEV_NOLUNS device from paul@pgoyette.bdt.com (Paul Goyette). 1995-08-13 17:48:57 +00:00
mycroft
8887de9230 opri --> s 1995-08-12 22:58:01 +00:00
mycroft
8a9880e714 Fix oversight in previous. 1995-08-12 21:36:46 +00:00
mycroft
80d7b0695a minphys() functions really should return void. 1995-08-12 20:30:45 +00:00
mycroft
92637a6d42 Add another Seagate disk to the list, and make all the disks match any
firmware revision.
1995-08-06 00:04:00 +00:00
mycroft
24a5e56396 Use an intermediate variable to shorten label initialization code. 1995-08-05 23:47:52 +00:00
cgd
d8e7ea659c restore a deleted semicolon 1995-07-24 09:03:00 +00:00
cgd
4d0bd10d53 kill structure offest comments in non-fixed-size structures.
In some of our worlds, pointers just Aren't 4 bytes.
1995-07-24 07:08:14 +00:00
cgd
3301cf82fd update SCSI minphys routines' definitions to match standard minphys()
definition and usage.
1995-07-24 06:55:37 +00:00
cgd
0b469d4a12 add/change a few quirks:
(1) all Chinon CDS-431 CD-ROMs (regardless of revision)
		are forced to only having LUN 0, at the suggestion
		of Michael Hitch.
	(2) _force_ searching of extra LUNs for the Emulex MD21/S2
		ESDI bridge.  It's pre-SCSI 1, but knows about LUNs.
		"amazing."  From Jason Thorpe.
	(3) recognize an Emulex tape adapter in front of a QIC-36
		tape, and have it forced to only LUN 0.  This is
		an odd one; vendor, name, and rev strings are all
		spaces.  Anything that mathes this is very likely
		broken, anyway, so might as well give it a shot.
		Again from Jason Thorpe.
1995-07-12 09:56:09 +00:00
cgd
d8fe81c04c implement SDEV_FORCELUNS flag, as suggested by Jason Thorpe. 1995-07-12 09:43:29 +00:00
cgd
f60db5f02a add a SDEV_FORCELUNS flag, as suggested by Jason Thorpe, to force
the SCSI code to look for LUNs on prehistoric (pre-SCSI 1) drives &
controllers, where normally it would not.
1995-07-12 09:42:00 +00:00
cgd
5b671ea6a8 Morningstar SnapLink -> SDEV_NOLUNS, per Peter Galbavy in pr 1192. 1995-07-09 09:44:57 +00:00
cgd
21b6db23b7 play the alphabetization game 1995-07-09 09:43:07 +00:00
cgd
5a5eb678c9 QUANTUM P105S 910-10-94x A.3 -> SDEV_NOLUNS 1995-07-09 09:30:42 +00:00
mycroft
7263209ce6 Make each disk and tape driver define its own read and write functions.
Deprecate rawread() and rawwrite() completely.  Remove d_strategy from cdevsw to
force the abstraction barrier.
1995-07-04 07:15:28 +00:00
cgd
1c5d265cad another CD-ROM quirk, a la PR 1166 1995-06-27 20:42:45 +00:00
cgd
2a8d6461a8 implement new-style block device dump routine if __BDEVSW_DUMP_OLD_TYPE
not defined, otherwise use an "not implemented" stub.
1995-06-26 05:16:55 +00:00
cgd
d093e5d8b8 make dump stubs consistent 1995-06-26 05:15:33 +00:00
cgd
d8264613c8 add entry for another tweaked Texel CD-ROM. from pr 1151 1995-06-24 01:22:30 +00:00
mycroft
6664ae1ddd Add another CD-ROM drive to The List. 1995-06-18 05:13:09 +00:00
pk
7d18c2534d Add `Maxtor LXT-213S', this time without a Sun OEM addition. 1995-06-02 21:44:11 +00:00
cgd
011aa68805 looks like some extra ')'s were left in here. 1995-05-03 21:38:57 +00:00
mycroft
1d2f0bce2a Make the byte-shifting code consistent. 1995-05-03 19:38:45 +00:00
cgd
224a7f4533 config.new description of SCSI mi files. 1995-04-17 07:15:40 +00:00
mycroft
04e937dcbd Don't boundary check I/O to the `raw' partition. 1995-04-15 05:01:26 +00:00
mycroft
68c8c80929 kernel_pmap --> pmap_kernel() 1995-04-10 16:48:27 +00:00
mycroft
3836533fc6 Add another broken CD-ROM drive to The List. 1995-04-04 05:44:32 +00:00
mycroft
7e2dabf972 Add a missing unlock. 1995-04-01 10:29:41 +00:00
mycroft
1d568eab9a Revamp the locking mechanism slightly. 1995-03-29 23:04:39 +00:00
mycroft
b51403f60d Remove the write protect check altogether, and rely on the drive to do it. 1995-03-25 19:45:18 +00:00
mycroft
12a1b9ad67 Add a rogue entry for the ANRITSU DMT780. 1995-03-25 18:41:42 +00:00
glass
911fbf48fa fix syntax error. Andreas Gustafsson <gson@clinet.fi> 1995-03-24 20:17:15 +00:00
mycroft
990077ba88 Don't bother with DIOCWLABEL. 1995-03-23 12:13:37 +00:00
mycroft
06d0a67a07 Check for read-only media in open(), not write(). 1995-03-23 12:11:07 +00:00
mycroft
d21add8356 Revert cdsize() to do nothing. 1995-03-23 11:51:22 +00:00
mycroft
4712cd33dc Rearrange DIOCWDINFO a little; closer to wd.c. 1995-03-23 11:43:09 +00:00
mycroft
562ca7760b Fix typo. 1995-03-23 11:37:51 +00:00
mycroft
02df08a47e Allow DIOCWDINFO even if label is not `writable'. 1995-03-23 11:33:18 +00:00
mycroft
e203e49ef5 Correct spelling of `fictitious'. Add patterns for optical memory devices.
From Alistair Crooks.
1995-03-07 21:46:06 +00:00
mycroft
2986fc2fd0 Be less picky about revision numbers for some broken devices. 1995-02-22 19:32:33 +00:00
pk
e560d77223 Another Maxtor botch. 1995-02-09 10:23:14 +00:00
mycroft
d8743f51a2 Add Exabyte 8200 to the list. 1995-02-01 09:37:54 +00:00
mycroft
52bacd79d6 Fix invocation of scsi_scsi_cmd(), per John Kohl. 1995-01-30 15:54:42 +00:00
mycroft
1076165d07 All revisions of the TDC 3600 are rogues. 1995-01-30 15:39:33 +00:00
mycroft
7639253b70 Finish last change. 1995-01-30 11:50:23 +00:00
mycroft
321b00bd07 Some drives don't grok START with LoEj=1, either. 1995-01-30 11:47:56 +00:00
mycroft
0ece1143f6 Set the LoadEject bit when issuing a START. 1995-01-30 11:37:17 +00:00
mycroft
9085638020 Some devices really do require the START before the PREVENT. This makes no
sense.
1995-01-30 11:34:25 +00:00
mycroft
1611df6ae0 Update copyrights. 1995-01-26 12:05:49 +00:00
mycroft
b76a328caa Redo the `wait for spin up' code. The Mach 3 method clearly doesn't work.
Also, rearrange the first open sequences a bit; SDEV_OPEN is no longer magic.
1995-01-26 11:56:51 +00:00
mycroft
726fa4e94f Do the PREVENT before the START. 1995-01-23 18:17:22 +00:00
mycroft
feb5b29596 Remove old, misleading comment. 1995-01-23 17:56:26 +00:00
mycroft
a6e7fe0d2a If the disk reports a block size of 0, assume it really meant 512. 1995-01-16 21:40:17 +00:00
mycroft
4a1e51751b Trivial simplification. 1995-01-16 21:34:10 +00:00
mycroft
e71e917e9d Remove unused macros. 1995-01-16 21:31:34 +00:00
mycroft
85532dd4ce Don't clear the debug flags when copying the prototype scsi_link. 1995-01-16 21:13:40 +00:00
mycroft
28775a6a5d Add a DIAGNOSTIC check. 1995-01-13 14:38:13 +00:00
mycroft
7650bd97fc Always boundary check I/O. 1995-01-13 10:46:32 +00:00