Commit Graph

287 Commits

Author SHA1 Message Date
Bruce Evans
0f49e57b57 Removed `Debugger("no slices")'. It's normal and harmless to have no
slices in sd_open() after a media change when the previous sd_open()
discards the previous slices and then fails.  sd_open() just handles
media changes poorly and fails too often.
1997-01-29 14:18:34 +00:00
Bill Paul
fc7c79b907 Make the SCSI probe messages more BSDish. This may raise a few eyebrows
("Hey! Who made _you_ the keeper of all things BSDish?!") but this has
bugged me for a long time, and now that I finally have the chance
to hack on it (and test the results), I'll take my chances. I can also
point to other BSD implementations for precedents if you put my back to
the wall.

The only thing that's changed is how the messages are formatted. Now,
instead of having this:

aha0 at 0x330-0x333 irq 11 drq 5 on isa
(aha0:3:0): "HP C1553A 9503" type 1 removable SCSI 2
st0(aha0:3:0): Sequential-Access density code 0x24, variable blocks, write-enabled
(aha0:3:1): "HP C1553A 9503" type 8 removable SCSI 2
ch0(aha0:3:1): Medium-Changer 6 slot(s) 1 drive(s) 0 arm(s) 0 i/e-slot(s)

We have this:

aha0 at 0x330-0x333 irq 11 drq 5 on isa
scbus0 at aha0 bus 0
st0 at scbus0 target 3 lun 0
st0: <HP C1553A 9503> type 1 removable SCSI 2
st0: Sequential-Access density code 0x24, variable blocks, write-enabled
ch0 at scbus0 target 3 lun 1
ch0: <HP C1553A 9503> type 8 removable SCSI 2
ch0: Medium-Changer 6 slot(s) 1 drive(s) 0 arm(s) 0 i/e-slot(s)

Which is (to me anyway) is a lot more pleasant to look at. (Call me
crazy -- g'head: you know you wanna -- but the previous messages remind
me of Linux. Ever see the output from the linux device probes? It's a mess
of copyright notices, version numbers/dates, author e-mail addresses and
other crap. Let's not go there, okay? Bleh.)

Notice that devices are now specified in terms of the scsi bus they
live on rather than the adapter. This better reflects the contents
of the kernel config file (if you use wired-down device specifications
anyway) and removes some ambiguity that may arise if you have a multi-
channel adapter with more than one bus.

Also, sc_print_addr() now generates messages like this:
st0 at scbus0 target 3 lun 0: NOT READY asc:3a,0 Medium not present

instead of this:
st0(aha0:3:0): NOT READY asc:3a,0 Medium not present

I also added a quirk entry for the HP Superstore 12000e 6 tape DAT
autoloader, which needs SC_MORE_LUS in order for the changer device
to be properly probed and attached. (I'm working on a chcontrol utility
to manipulate the changer on this drive which should hopefully be general
enough to work with other changers too. If you want the prototype I have
now, it's at ftp://skynet.ctr.columbia.edu/pub/freebsd/changer.c.)

Remaining bugs:

- The 'foodev0: yadda yadda yadda' bits should probably be printed entirely
  by the device-specific subdriver attach code instead of half by the
  scsi_device_attach() routine and half by the device specific attach
  routine like it is now.

- The wired-down device specifications in the kernel config file should
  be used to control bus/device probing to some extent rather than just
  for choosing names for devices we find. If the config says there's a
  device at scbus0 target 0 lun 0 called sd0, we should look there and
  check for a device that can be managed by the sd driver. If we don't
  find one, we should probably complain that there's no device there or
  that there is a device but of the wrong type. Once all the devices from
  the wired down list have been probed, the code can then autodetect and
  autoattach any devices that remain unassigned.

- Apparently some tape changers (hi Ulf!) return 'not ready/medium not
  present' when the magazine is loaded but a tape has not been put in the
  drive yet. This causes an open(/dev/ch0) to fail and prevents you from
  using the changer.c utility to load the first tape into the drive. My
  HP changer does not behave this way. The workaround is to manually load
  a tape into the drive before attempting to use the changer program, but
  you can get in trouble if you accidentally eject a tape without loading
  a new one and you're at a remote location: you won't be able to load
  any tapes anymore. I'm not sure what the correct software solution is
  for this but ideally there should be one.

- I should not be doing this: I'm the NIS guru, not the SCSI guru.
  (This is not my beautiful code. How did I get here? My god: what
  have I done?)
1997-01-25 20:27:13 +00:00
Jordan K. Hubbard
1130b656e5 Make the long-awaited change from $Id$ to $FreeBSD$
This will make a number of things easier in the future, as well as (finally!)
avoiding the Id-smashing problem which has plagued developers for so long.

Boy, I'm glad we're not using sup anymore.  This update would have been
insane otherwise.
1997-01-14 07:20:47 +00:00
Joerg Wunsch
7b0951f009 Slightly re-order the sequence of commands issued, so try to send
the START UNIT command before testing whether the device is ready.
Maybe it should be done even earlier, i'm not 100 % sure.

Again, CD changers will most likely benefit from it.

While i was at it, also made the debugging case a little more verbose
about why the cdopen() yielded an ENXIO.  (Only in effect when
SCSIDEBUG is specified.)

Should eventually also go into 2.2.
1996-12-24 11:35:24 +00:00
Joerg Wunsch
802e82cdd2 Do something Peter Dufault long since intended to do: make a current
error code with ASC/ASCQ 4/1 (``Logical unit is in the process of
becoming ready'') non-fatal.  Retry the operation until it will
eventually either yield a real error condition, or finally succeed.

Devices like CD changers or tape drives with a freshly inserted
cartridge should benefit from this.

Should go into 2.2 after some testing in -current.  I'd like to see
this in the release if possible.
1996-12-24 11:32:41 +00:00
Joerg Wunsch
2f401e5f09 Reorder the wildcard entries to the end of the quirks list, so they
will be probed last.  It's otherwise impossible in some cases to get
SCSI type override working.

Supposed fix for PR # kern/2225.
1996-12-20 20:43:45 +00:00
Joerg Wunsch
fb2efb8992 Add an entry for Ricoh's MO drives.
Submitted by:	msmith@atrad.adelaide.edu.au (Michael Smith)
1996-12-14 09:57:04 +00:00
Jordan K. Hubbard
0b3870cb60 Close PR#2198:
I've added an installation from optical disk drive facility.
	This enables FreeBSD to be installed from an optical disk, which
	may be formatted in "super floppy" style or sliced into MSDOS-FS
	and UFS partitions.

	Note:  ncr.c should be reviewed by Stefan Esser <se@freebsd.org>
	and cd.c by Joerg Wunsch <joerg@freebsd.org> before bringing this
	into 2.2.

Submitted-By: Shunsuke Akiyama <akiyama@kme.mei.co.jp>
1996-12-13 07:55:14 +00:00
Joerg Wunsch
5a4a0aacba Slightly change the `od' driver quirk for the Matsushita LF-1000
series drives, and add the NAKAMICHI MO drive RMD-5200-S.

Closes PR # kern/2200: Change/Add new optical di...

Submitted by:	akiyama@kme.mei.co.jp (Shunsuke Akiyama)
1996-12-13 00:00:51 +00:00
Joerg Wunsch
7a9717ae8e Default the CD-ROM devices to a single LUN only. Too many of them are
broken and respond to multiple LUNs.

Reviewed by:	rv@groa.uct.ac.za (Russell Vincent)
1996-12-07 22:45:15 +00:00
Bruce Evans
4eb73cdaff Removed all references to b_cylinder (aka b_cylin). It was evil and
hasn't been used for a year or two since disksort() started sorting
on b_pblkno.
1996-12-01 16:34:41 +00:00
Søren Schmidt
7cb29d3394 This update adds the support for != 512 byte sector SCSI devices to
the sd & od drivers. There is also slight changes to fdisk & newfs
in order to comply with different sectorsizes.
Currently sectors of size 512, 1024 & 2048 are supported, the only
restriction beeing in fdisk, which hunts for the sectorsize of
the device.
This is based on patches to od.c and the other system files by
John Gumb & Barry Scott, minor changes and the sd.c patches by
me.
There also exist some patches for the msdos filesys code, but I
havn't been able to test those (yet).

	John Gumb (john@talisker.demon.co.uk)
	Barry Scott (barry@scottb.demon.co.uk)
1996-12-01 11:25:38 +00:00
Joerg Wunsch
bf65a4116b Add the Quantum DLT drives. All of them grok SC_MORE_LUS, so the tape
library devices will properly come up with all LUNs detected.

Submitted by:	dawes@Physics.usyd.edu.au (David Dawes)
1996-11-30 07:39:37 +00:00
Poul-Henning Kamp
3faaf0b64a Rogue entry for DEC DLT2700
Reviewed by:	julian & phk
Submitted by:	Andre Albsmeier <Andre.Albsmeier@mchp.siemens.de>
1996-11-28 09:51:03 +00:00
Masafumi Max NAKANE
1473a85114 Back out my previous change.
It probably broke the support for the device.

Pointed-Out by:	joerg
1996-11-09 02:44:11 +00:00
Masafumi Max NAKANE
9358777784 Typo, MATSHITA -> MATSUSHITA.
2.2 & 2.1.6 candidate.
1996-11-07 18:13:57 +00:00
Joerg Wunsch
83e9a3b6fc Fix the sequence at odopen() time so the driver actually notices if a
medium with another size is being inserted.  Right now, this case was
broken and led to a situation where a medium could only be replaced
with another one of the same size.

Closes PR #kern/1830: Can't mount optical disk...

Submitted by:	akiyama@kme.mei.co.jp (Shunsuke Akiyama)
1996-11-06 17:31:14 +00:00
Joerg Wunsch
b99dd17277 Updates and bugfixes to the worm driver:
. also detect the Phlips CDD2000; it's software-compatible with the HP part

Submitted by:	cau@cc.gatech.edu (Carlos Ugarte)

. correct the blocksize handling for CD-DA tracks, and fix multitrack
  handling

Submitted by:	nsayer@quack.kfu.com (Nick Sayer)

2.2 candidates!
1996-11-06 13:33:53 +00:00
Justin T. Gibbs
1e03c19aab Try number two. Add missing paren in MSG_IDENTIFY macro. 1996-10-07 03:53:43 +00:00
Justin T. Gibbs
b109ceda2f Bring in bug fix from 'SCSI' branch. 1996-10-06 22:50:56 +00:00
Justin T. Gibbs
5a3df2165a Bring this over from the SCSI branch. I need it to bring in the fixes to
the aic7xxx driver.
1996-10-06 02:14:31 +00:00
Bruce Evans
a7f8f2ab55 Changed cncheckc() interface so that it is 8-bit clean - return -1
instead of 0 if there is no input.
1996-09-14 04:31:09 +00:00
Bruce Evans
28eda575a7 Restored a non-devconf comment that was removed with devconf. 1996-09-10 23:37:52 +00:00
Bruce Evans
b568ea4e01 Removed more devconf leftovers. 1996-09-10 23:31:13 +00:00
Poul-Henning Kamp
40f3771f7f Various cleanups for remanents of devconf. 1996-09-08 10:44:18 +00:00
Poul-Henning Kamp
bfbb029d87 Remove devconf, it never grew up to be of any use. 1996-09-06 23:09:20 +00:00
Satoshi Asami
1225e2435d Second phase of merge, get rid of more machine-independent-dependencies.
Get rid of pc98/pc98/pc98_device.h.

Submitted by:	The FreeBSD(98) Development Team
1996-09-03 10:24:29 +00:00
Joerg Wunsch
e7e3f60d66 Do not test_unit_ready() before starting the unit... 1996-08-17 20:50:26 +00:00
Peter Wemm
2176b02c56 The sd and od drivers didn't check for negative block numbers (like wd.c
does) before calling dscheck().  dscheck() doesn't appreciate this and
calls Debugger() and returns without setting bp->b_error.

This can happen when there is a casting error and offsets > 2G are
converted to negative off_t's in the disk tools.  (dumpfs used to do this).
1996-08-02 06:10:49 +00:00
Poul-Henning Kamp
cba8a5ddd3 Make a "DWIM" function for adding [bc]devsw entries for bdev drivers.
Saves about 280 butes of source per driver, 56 bytes in object size
and another 56 bytes moves from data to bss.

No functional change intended nor expected.

GENERIC should be about one k smaller now :-)
1996-07-23 21:52:43 +00:00
Joerg Wunsch
6bc025e10d Turn SCSIDEBUG into a new-style option. 1996-07-14 10:46:56 +00:00
Bruce Evans
6ab46d52a5 Don't use NULL in non-pointer contexts. 1996-07-12 04:12:25 +00:00
Justin T. Gibbs
6a2631bf25 Ensure that media protection is released before attempting to eject the
media in all cases.

Remove SCSI_2_MAX_DENSITY_CODE definition and rely on the device to tell
us if we attempt an invalid setting.

Closes PR 1245.

Submitted by:	fredriks@mcs.com a few changes by me.
1996-06-24 04:54:32 +00:00
Bruce Evans
946a489fe1 Forward-declare a struct tag so that this doesn't depend on a side effect
of indirectly including <i386/isa/isa_device.h>.
1996-06-23 15:02:02 +00:00
Joerg Wunsch
06e958d471 Dump the timeout for st_erase().
Fixes PR # kern/1341: Bug fix for SCSI tape

Submitted by:	tundra@tundrware.com
1996-06-22 14:57:55 +00:00
Joerg Wunsch
c30bc9dba0 Miscellaneous cleanup and minor fixes by Shunsuke and by me.
. use new-style options
. introduce an option OD_AUTO_TURNOFF
. try to use the native geometry as reported by the drive instead of
  a faked on -- MOs do have a ``classical'' geometry
. make the scsi_start_unit() actually working
. some cosmetic fixes

Submitted by:	akiyama@kme.mei.co.jp (Shunsuke Akiyama)
1996-06-16 19:58:24 +00:00
Joerg Wunsch
bf3b9d70ed Make sure to update the SDEV_MEDIA_LOADED flag also when working on
the control device.

Submitted by:	akiyama@kme.mei.co.jp (Shunsuke Akiyama)
1996-06-16 19:54:02 +00:00
Satoshi Asami
ad63a118b2 The Great PC98 Merge.
All new code is "#ifdef PC98"ed so this should make no difference to
PC/AT (and its clones) users.

Ok'd by:	core
Submitted by:	FreeBSD(98) development team
1996-06-14 11:02:28 +00:00
Gary Palmer
c23670e294 Clean up -Wunused warnings.
Reviewed by:		bde
1996-06-12 05:11:41 +00:00
John Fieber
18182fa7a3 Append a * to the model field of the Archive Viper quirk entry.
Without the wildcard, the drive would never match the entry.
Also add a comment describing how matching takes place to help avoid
problems like this.
1996-06-03 14:25:11 +00:00
Joerg Wunsch
ef70eb9783 Correct a few mode page definitions according to the SCSI-2 specs.
Not yet used, but might perhaps be used in od(4) some day.
1996-05-19 19:29:09 +00:00
Joerg Wunsch
a77032a5a4 This patch updates sys/scsi/od.c:
* Improve ficticious geometry translation.
  * CD compatible ioctl's, CDIOCALLOW, CDIOCPREVENT and CDIOCEJECT.
  * Additional sense code handling for some drives.

Reviewed by:	joerg
Submitted by:	akiyama@kme.mei.co.jp (Shunsuke Akiyama)
1996-05-19 19:26:21 +00:00
Poul-Henning Kamp
aa8de40ae5 Another sweep over the pmap/vm macros, this time with more focus on
the usage.  I'm not satisfied with the naming, but now at least there is
less bogus stuff around.
1996-05-03 21:01:54 +00:00
Poul-Henning Kamp
031ce85e23 Don't fiddle page tables by hand, use pmap_enter.
(copied from wd.c)
1996-05-02 22:20:52 +00:00
Poul-Henning Kamp
e911eafcba removed:
CLBYTES PD_SHIFT PGSHIFT NBPG PGOFSET CLSIZELOG2 CLSIZE pdei()
        ptei() kvtopte() ptetov() ispt() ptetoav() &c &c
new:
        NPDEPG

Major macro cleanup.
1996-05-02 14:21:14 +00:00
Bruce Evans
87b620baa9 Don't depend on <sys/types.h> including <sys/cdefs.h>. 1996-04-19 17:39:57 +00:00
Bruce Evans
3157adc8af Removed now-unused #includes of <machine/cpu.h>. They were for bootverbose
being declared in the wrong place.
1996-04-07 17:32:42 +00:00
Marc G. Fournier
aab063aa77 Change dev_link() to devfs_link() 1996-04-02 04:54:26 +00:00
Marc G. Fournier
37a16ebf5f Changed use of devfs_add_devsw() to devfs_add_devswf()
Changed DEVFS structure devfs_token so that adding the devices is
a simple matter of a 4 line for loop versus 16 lines of code

Reviewed by:	julian@freebsd.org
1996-04-01 02:12:53 +00:00
Justin T. Gibbs
ef6653eddb Implement the XS_SELTIMEOUT error code. This causes the SCSI code to
not retry again and should be used when a device times out during selection
(ie is not on the bus).  This should speed up the boot sequence.
1996-03-31 03:19:09 +00:00