summaryrefslogtreecommitdiffstats
path: root/sys/cam
Commit message (Collapse)AuthorAgeFilesLines
* Add a quirk type (and one for ARCHIVE Python's) that disables themjacob2000-02-031-24/+33
| | | | | | | dummy read at sa_mount that attempts to latch up density. This breaks on at least one drive and sends it into the weeds. Approved: jkh
* Because we added 4 bytes to the inquiry data size, we need tomjacob2000-01-251-1/+1
| | | | | rev the CAM revision too. Tsk. Submitted by: ken@freebsd.org
* Redo the SHORT INQUIRY length stuff to be a bit cleaner.mjacob2000-01-251-32/+27
| | | | Obtained from:gibbs@freebsd.org
* When autosense fails, make sure we retry the command.ken2000-01-251-1/+1
| | | | | PR: kern/15975 Submitted by: Carl Mascott <cmascott@world.std.com>, n_hibma
* Propagate sense data through from SIM (if there) and mark the CTIOmjacob2000-01-251-51/+88
| | | | | | | | | | | that there's sense to send with status (if the SIM does it), and then clear any pending contingent allegiance state for this initiator if the SIM actually did send the sense data. Widen MAX_INITITATORS to 256- that's still not quite right, but will accomodate the widest Fibre Channel support in FreeBSD now. Obtained from:(partially) gibbs@freebsd.org
* Propagate sense data through from SIM (if there) and mark the CTIOmjacob2000-01-251-2/+28
| | | | | that there's sense to send with status (if the SIM does it). Reviewed by: gibbs@freebsd.org
* Go for the gusto and do the full 256 bytes for inquiry data.mjacob2000-01-252-6/+8
| | | | Obtained from:gibbs@freebsd.org
* A minimal update to the device wiring code so that it looks at thepeter2000-01-233-160/+83
| | | | | | dynamic resource tables rather than relying on a duplicated cam-specific table generated by config(8) in ioconf.c. This was a major holdup to getting loader / userconfig driven configuration of scsi wiring.
* Clean up some of the SAF-TE matching code. Addmjacob2000-01-211-10/+16
| | | | a few missing newlines in printouts.
* Do the minor changes needed because of change to ccb_getdev structure.mjacob2000-01-176-14/+16
| | | | | | JKH Trading Stamps applied. Reviewed by: gibbs@freebsd.org, ken@freebsd.org
* Increase size of the scsi_inquiry_data structure to it's nearlymjacob2000-01-171-1/+44
| | | | | | | | | | | | | | full size. Define a SHORT_INQUIRY_LENGTH for use during initial probing (covers the size used previously). Define some SPC-2 related fields (and define the revision code for SPC-2) which includes some further SPI-3 defines. Don't go all the way (256 bytes) for the structure- stop 4 bytes short- because we haven't auditted the source base to find any u_int8_t potential overflow issues. Add RBC (single byte device) and OCR (Optical Character Reader) device type codes. Approved by JKH. Reviewed by: gibbs@freebsd.org, ken@freebsd.org
* Remove garbage collected tags from their usage in the ccb_getdevmjacob2000-01-171-12/+39
| | | | | | | | | | | | | | | | | | structure. Remove usage of the (now gone) pd_type tag of same. Add an extra probing state such that if we successfully run an initial inquiry (36 bytes), rerun another one with a longer data size as informed by the 'additional length' field in the first returned inquiry data (making sure not to get bigger than the actual scsi_inquiry_data structure- which has also been modified- see separate checkin of scsi_all.h). This allows devices such as SAF-TE devices (which have identifying marks in offsets 48-53 in inquiry data) to be successfully found without special case inquiry commands. There are also a lot of other things such as version codes that are coming in in the SPC2 specification that it would be useful to get our hands on. Reviewed by: gibbs@freebsd.org, ken@freebsd.org
* Shift bits for CAM flags so that the top bit isn't set in an enummjacob2000-01-171-28/+13
| | | | | | | | | | | | | (at request of Ken Merry). Garbage collect items out of the ccb_getdev structure and and a length field so that consumes will know how much of the inq_data tag is valid. Clean up a few misspellings. Add a CAM_SEND_STATUS target mode flag. All of this necessitated a CAM_VERSION bump. JHK approved. Reviewed by: gibbs@freebsd.org, ken@freebsd.org
* Add a CAM_SENT_STATUS for use in target mode. JHK approved.mjacob2000-01-171-1/+4
| | | | Reviewed by: gibbs@freebsd.org, ken@freebsd.org
* Do not propagate the ENCI_SVALID bit for overall enclosure statusmjacob2000-01-171-5/+4
| | | | to userland apps- they get confused.
* Add in SAF-TE handling code and do some minor consistency cleanups.mjacob2000-01-171-10/+1017
|
* buglet fixmjacob2000-01-151-1/+1
|
* Do a wad of cleanup and put into place at least *one* functionalmjacob2000-01-151-85/+1077
| | | | | portion of SES retrieval (native SES itself) and implement all the appropriate ioctls. Seems to work...
* Move the kernel specific stuff into scsi_ses.c. Redo the ioctlsmjacob2000-01-151-46/+19
| | | | | | | | | to be more platform independent. Add a ses_hlptxt structure definition and retrieval ioctl for when we are able to retrieve object help text SES Objects can have up to 64 KBytes of associated 'help' text- the Sun A5000 uses this, for example, to give physical location information (e.g., 'left power supply').
* add SEND/RECEIVE diagnostic opcodes, SEND is a Mandatory commandmjacob2000-01-151-0/+2
|
* Remove inclusion of dkbad.h- seems like a bug, but I had a stalemjacob2000-01-151-1/+0
| | | | | dkbad.h in /usr/include/sys- the local build process shouldn't have been happy with that, but not finding dkbad.h in ../../sys. Hmm.
* add functional but stub SES/SAF-TE drivermjacob2000-01-152-0/+763
|
* Clean up the xpt_sim creation to mirror how HBA drivers perform this task.gibbs2000-01-142-74/+127
| | | | | | | | | | | | | | Clean up node creation in the EDT so that initialization follows member declaration. Sort registered paths by pathid so that we probe busses in order of ascending pathid. This makes hardwiring of busses without wiring individual targets do what the user expects. (submitted by tegge@FreeBSD.org) Fix an EDT node leak. Target nodes would never go away. Implement xpt_bus_deregister(). (prodded by some patches from T. Ichinoseki, but implemented differently.)
* Widen width of tag && initiator ids to u_intmjacob2000-01-031-2/+2
| | | | | | | | (from u_int8_t) in ccb_accept_tio structure. This matches usage elsewhere and also allows me to overload the tag id with the RX_ID for fibre channel target mode. Reviewed by: gibbs@freebsd.org
* Change error message make sense and add a missingmjacob1999-12-301-1/+4
| | | | | | periph_release on a failed open so that the periph dtor for it will get called when we deallocate the instance from targioctl.
* Restore this driver to a working state. The control device hasmjacob1999-12-291-7/+6
| | | | | | | | | | | to be created at init time. The unit devices are created at ctor when new instances are created and bound and destroyed when that instance is closed. As such, there is just s single static control dev_t for this driver (the per-unit dev_t's are still in the softc). When we have decommissionable periph drivers, a destroy_device on the control device will have to called.
* Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL"peter1999-12-2911-26/+26
| | | | | | is an application space macro and the applications are supposed to be free to use it as they please (but cannot). This is consistant with the other BSD's who made this change quite some time ago. More commits to come.
* Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL"peter1999-12-294-20/+20
| | | | | | is an application space macro and the applications are supposed to be free to use it as they please (but cannot). This is consistant with the other BSD's who made this change quite some time ago. More commits to come.
* Make sure we don't look at an edt entry that could go away when we trymjacob1999-12-201-7/+15
| | | | | and figure out whether to probe higher than logical unit 7. Obtained from:gibbs@freebsd.org
* Add FAST-80 timing to the scsi syncrates table.obrien1999-12-161-0/+1
| | | | Submitted by: Gerard Roudier <groudier@club-internet.fr>
* minor comment updatemjacob1999-12-131-0/+1
|
* Quirk all Pioneer changers as changers up front, instead of waiting for theken1999-12-111-7/+1
| | | | | | | | | | | | second LUN to show up. mjacob's change (which is correct) in rev 1.21 of cam_periph.c to elminiate infinite retries of the SCSI busy status bit seems to have broken probing of Pioneer changers that aren't already quirked. The right way to fix this is probably to change things around so we can guarantee 100% sequential probing of LUN-based changers even if they aren't quirked. This should fix things for now, though.
* Revamp the devstat priority system. All disks now have the same priority.ken1999-12-082-2/+2
| | | | | | | | | | | | | | | | | | The same goes for CD drivers and tape drivers. In systems with mixed IDE and SCSI, devices in the same priority class will be sorted in attach order. Also, the 'CCD' priority is now the 'ARRAY' priority, and a number of drivers have been modified to use that priority. This includes the necessary changes to all drivers, except the ATA drivers. Soren will modify those separately. This does not include and does not require any change in the devstat version number, since no known userland applications use the priority enumerations. Reviewed by: msmith, sos, phk, jlemon, mjacob, bde
* Recognize the Pioneer CD-ROM DRM-6324X as a changer.ken1999-12-071-1/+7
| | | | | PR: kern/15198 Submitted by: Don Lewis <truckman@FreeBSD.org>
* Add back in a prefatory TUR when the tape is *not* mounted. This seemsmjacob1999-12-041-0/+5
| | | | to help with some older tape drives.
* Correct some botched timeout defines. Allocate only 8KB for the test readmjacob1999-12-031-97/+74
| | | | | | in samount. Make things a lot quieter in samount (and other places). Fix ridiculous and not so ridiculous bugs in compression related code in both sagetparams and sasetparams.
* Don't clear the SA_FLAG_TAPE_LOCKED prior to callingmjacob1999-11-211-13/+16
| | | | | | | | | | | | | | | saprevent when we're doing an OFFLINE ioctl- saprevent won't unlock the door, which then causes the unload to fail on some units. If we've already unloaded the tape, don't try and rewind and unload in saclose. This is a slightly riskier change because we're now going to depend on SA_FLAG_TAPE_MOUNTED to say whether we've really unloaded the tape. This involved changing the setting in sadone for tape errors to SA_FLAG_TAPE_FROZEN (which is more accurate anyway-if you get an EIO you've probably lost tape position anyway) where it used to just clear the mounted flag.
* Add make_dev functions. Tested with only one changer (sigh- all my othersmjacob1999-11-211-3/+7
| | | | | are broken). Submitted by: ken@freebsd.org
* Fix a couple of boo-boos in the last delta.mjacob1999-11-171-13/+15
|
* Fix for 11815 (at mount time do a throwaway read of the front of themjacob1999-11-171-131/+321
| | | | | | | tape to force the drive to do a media access so it knows what media may be inserted). Also Ken's make_dev patches- relatively untested.
* Get rid of some trailing commas in enumerated types that cause gcc token1999-11-172-6/+6
| | | | | | complain when some warnings are turned on. Requested by: Bertrand Petit <elrond@phoe.frmug.org>
* Convert the xpt, pass, pt and target drivers to use the newken1999-11-174-18/+27
| | | | make_dev()/destroy_dev() interface.
* Fix Bus Device Resets from userland, and specifically from camcontrol.ken1999-10-311-1/+1
| | | | | | | | | | | camcontrol was setup to use the old scheme of going through the xpt(4) device, which never worked properly (and has been disabled for a while). camcontrol now sends BDRs through the pass(4) device, and XPT_RESET_DEV CCBs are put on the device queue in the transport layer, as they should be. Submitted by: luoqi Reviewed by: ken
* Change useracc() and kernacc() to use VM_PROT_{READ|WRITE|EXECUTE} for thephk1999-10-301-4/+6
| | | | | | | | | "rw" argument, rather than hijacking B_{READ|WRITE}. Fix two bugs (physio & cam) resulting by the confusion caused by this. Submitted by: Tor.Egge@fast.no Reviewed by: alc, ken (partly)
* useracc() the prequel:phk1999-10-291-1/+0
| | | | | | | | | | | Merge the contents (less some trivial bordering the silly comments) of <vm/vm_prot.h> and <vm/vm_inherit.h> into <vm/vm.h>. This puts the #defines for the vm_inherit_t and vm_prot_t types next to their typedefs. This paves the road for the commit to follow shortly: change useracc() to use VM_PROT_{READ|WRITE} rather than B_{READ|WRITE} as argument.
* Mark path for deallocation only *after* you've successfully allocated it.mjacob1999-10-271-2/+3
|
* Put an upper bound on the number of BUSY status retries we'll do (use themjacob1999-10-161-8/+11
| | | | | | | | retry count for the ccb). This is probably not quite the right thing, but it is better than silently hanging on (possibly broken) h/w which is what we do now. Reviewed by:Justin/Ken: they weren't entirely happy about it but didn't say no.
* Protect xpt_run_dev_sendq in xpt_release_devq_device with splsoftcam. Thismjacob1999-10-161-3/+5
| | | | | | seems to handle the case of timeouts firing during probe but after a device has gone away. It really does help. Obtained from:gibbs@freebsd.org
* Removal of sys/device.hn_hibma1999-10-051-1/+0
| | | | | | | | | | | | | - Move intrhook stuff into kernel.h - Remove all occurrences of #device <device.h> - Add kernel.h were necessary (nowhere) - delete device.h This file contained the structures for cfdata (old style config) and is no longer used. It was included by most drivers. It confuses the remote debugger as the definition of 'struct device' in device.h is found before the one in bus_private.h.
* Another 1FM@EOD quirk (from mike@sentex.net for a Seagate STT20000),mjacob1999-10-021-11/+9
| | | | | | and add a config option that allows one to default to 1FM@EOD for tapes otherwise unquirked or unknown as to which to prefer. Note that tcopy will be broken for these tapes until tcopy is fixed.
OpenPOWER on IntegriCloud