History log of /src/sys/dev/scsipi/scsipiconf.c |
Revision | | Date | Author | Comments |
1.45 |
| 28-Mar-2019 |
kardel | Add reading of supported opcodes and their timeouts at attachment time. Though this information is optional, it allows to override our fixed timeouts with device provided timeouts. These timeouts will override the hardcoded values if the device provided timeouts exceed the hardcoded values and are less than a day.
Using the device provided timeouts avoids premature device resets and unreliable operation due to inadequate timeouts.
Due to the limited implementations of USB umass devices this feature is disabled for all umass attached devices.
|
1.44 |
| 11-Apr-2017 |
christos | branches: 1.44.12; Put back module_autoload code; the module_autoload code now checks that root is mounted.
|
1.43 |
| 10-Apr-2017 |
jdolecek | just do not autoload scsiverbose module, it causes deadlock if it happens while root fs is being mounted
adresses second part of PR kern/52147 by Michael van Elst, thank you
|
1.42 |
| 20-Nov-2016 |
mlelstv | branches: 1.42.2; Make scsipi framework MPSAFE.
Data structures are now protected by a per-adapter mutex at IPL_BIO that is created by the scsibus or atapibus instance when the adapter is configured. The enable reference counter and the channel freeze counter which are currently used by HBA code before the adapter is configured, are made atomic. The target drivers are now all tagged as D_MPSAFE.
Almost all HBA drivers still require the kernel lock to present, so all callbacks into HBA code are still protected by kernel lock unless the driver is tagged as SCSIPI_ADAPT_MPSAFE.
TODO: refactor sd and cd to use dksubr.
|
1.41 |
| 02-May-2016 |
christos | branches: 1.41.2; move scsipi_strvis -> libkern:strnvisx() change the prototype to match userland fix sizes of strings passed to it
|
1.40 |
| 21-Aug-2010 |
pgoyette | branches: 1.40.18; 1.40.36; Update the various xxx_verbose modules to conform to the module subsystem's new locking protocol.
|
1.39 |
| 25-Jul-2010 |
pgoyette | Move setting of scsi_verbose_loaded flag into the module's init routine. This ensures that the flag is set even if the module was manually loaded by the user rather than just auto-loaded.
|
1.38 |
| 07-Jun-2010 |
pgoyette | Update scsiverbose module to use module_autoload() rather than module_load(). Load the module right before each attempt to use its features, and let the module subsystem handle unloading.
|
1.37 |
| 30-May-2010 |
pgoyette | Extract SCSIVERBOSE into a kernel module. The module can be builtin by defining 'options SCSIVERBOSE' in the kernel config file (no change from current behavior), or it can be loaded at boot time on those architectures that support the boot loader's "load" command.
The module is built for all architectures, whether or not SCSI or atapi support exists.
|
1.36 |
| 28-Apr-2008 |
martin | branches: 1.36.20; 1.36.22; Remove clause 3 and 4 from TNF licenses
|
1.35 |
| 09-Jul-2007 |
ad | branches: 1.35.28; 1.35.30; 1.35.32; Merge some of the less invasive changes from the vmlocking branch:
- kthread, callout, devsw API changes - select()/poll() improvements - miscellaneous MT safety improvements
|
1.34 |
| 11-Dec-2005 |
christos | branches: 1.34.30; 1.34.32; merge ktrace-lwp.
|
1.33 |
| 30-May-2005 |
christos | branches: 1.33.2; - remove bogus casts - add more const
|
1.32 |
| 29-May-2005 |
christos | - Sprinkle const - Avoid variable shadowing. - Eliminate some caddr_t abuse.
|
1.31 |
| 27-Feb-2005 |
perry | nuke trailing whitespace
|
1.30 |
| 01-Feb-2005 |
reinoud | Backing out changes to clean up scsipi. I was pointed out there were problems i hadn't seen. To prevent lossage i'd decided to back off all changes and let them be reviewed on tech-kern.
|
1.29 |
| 31-Jan-2005 |
reinoud | Part of the cleanup of sys/scsipi's use of types; rename all u_int* to uint* and change the u_long's to uint32_t's where possible. Note that the iocl definitions/hooks have to be ulong (or u_long) or they'll bomb out.
|
1.28 |
| 31-Jan-2005 |
reinoud | As part of cleaning up sys/scsipi, replace all u_char by uint8_t and replace all `short' with int16_t.
|
1.27 |
| 18-Sep-2004 |
mycroft | branches: 1.27.4; 1.27.6; Minor rearrangement. Whitespace and #include cleanup.
|
1.26 |
| 17-Sep-2004 |
mycroft | Remove the "xfer" argument to scsipi_command().
|
1.25 |
| 17-Sep-2004 |
mycroft | Change the way bustype_cmd is used. Rather than having it be responsible for calling scsipi_make_xs() and scsipi_execute_xs(), instead push these into scsipi_command. Make bustype_cmd and PHOLD/PRELE be called from scsipi_execute_xs(). This allows us to create a xfer structure -- possibly on the stack -- and call scsipi_execute_xs() directly.
|
1.24 |
| 09-Sep-2004 |
bouyer | Make the xxstart() functions reentrant again, as some drivers HBA can call scsipi_done() from their scsipi_request(). For this, add a struct scsipi_xfer * argument to scsipi_command(). If not NULL scsipi_command() will use this to enqueue this xfer, otherwise it'll try to allocate a new one. This scsipi_xfer has to be allocated and initialised by scsipi_make_xs() or equivalent. In xxstart(), allocate a scsipi_xfer using scsipi_make_xs(), and if not NULL, dequeue the buffer before calling scsipi_command(). This makes sure that scsipi_command() will not fail, and also makes sure that xxstart() won't be called again between the BUFQ_PEEK() and BUFQ_GET().
Fix "dequeued wrong buf" panics reported by Juergen Hannken-Illjes in private mail and Andreas Wrede on current-users@. Thanks to Jason Thorpe and Chuck Silver for review, and Andreas Wrede for testing the patch.
|
1.23 |
| 21-Aug-2004 |
thorpej | Oops, missed one in last.
|
1.22 |
| 21-Aug-2004 |
thorpej | Const poison scsipi_dtype().
|
1.21 |
| 21-Aug-2004 |
thorpej | Use ANSI function decls and make use of static.
|
1.20 |
| 18-Jan-2003 |
martin | branches: 1.20.2; 1.20.4; Merge botch.
|
1.19 |
| 09-Nov-2002 |
thorpej | Fix signed/unsigned comparison warnings.
|
1.18 |
| 04-Oct-2002 |
soren | Slightly simplicy the SCSI device attachment message: - Use the plain words 'disk' and 'tape' instead of 'direct' and 'sequential'. - Media status will be printed in the frontend, so don't bother with it. - Don't bother printing the SCSI version, which is fixed these days, or the numberic device type.
|
1.17 |
| 12-Jan-2002 |
tsutsui | Call malloc(9) with M_ZERO flag instead of memset() after malloc().
|
1.16 |
| 15-Nov-2001 |
lukem | don't need <sys/types.h> when including <sys/param.h>
|
1.15 |
| 13-Nov-2001 |
lukem | add RCSIDs
|
1.14 |
| 18-Jul-2001 |
thorpej | bcmp -> memcmp
|
1.13 |
| 25-Apr-2001 |
bouyer | branches: 1.13.2; Pull up the thorpej_scsipi branch to main branch. This is a completely rewritten scsipi_xfer execution engine, and the associated changes to HBA drivers. Overview of changes & features: - All xfers are queued in the mid-layer, rather than doing so in an ad-hoc fashion in individual adapter drivers. - Adapter/channel resource management in the mid-layer, avoids even trying to start running an xfer if the adapter/channel doesn't have the resources. - Better communication between the mid-layer and the adapters. - Asynchronous event notification mechanism from adapter to mid-layer and peripherals. - Better peripheral queue management: freeze/thaw, sorted requeueing during recovery, etc. - Clean separation of peripherals, adapters, and adapter channels (no more scsipi_link). - Kernel thread for each scsipi_channel makes error recovery much easier (no more dealing with interrupt context when recovering from an error). - Mid-layer support for tagged queueing: commands can have the tag type set explicitly, tag IDs are allocated in the mid-layer (thus eliminating the need to use buggy tag ID allocation schemes in many adapter drivers). - support for QUEUE FULL and CHECK CONDITION status in mid-layer; the command will be requeued, or a REQUEST SENSE will be sent as appropriate.
Just before the merge syssrc has been tagged with thorpej_scsipi_beforemerge
|
1.12 |
| 31-Dec-2000 |
ad | branches: 1.12.2; PR 6402: some SCSI devices use \377 as blank, so adjust scsipi_strvis().
|
1.11 |
| 28-Jun-2000 |
mrg | <vm/vm.h> -> <uvm/uvm_extern.h>
|
1.10 |
| 09-Jun-2000 |
enami | Prevent a process being swapped out during I/O if the data buffer is allocated on stack. This potential problem is noticed by Noriyuki Soda and the idea and sample code to fix is given by Jason R. Thorpe.
|
1.9 |
| 15-May-2000 |
dante | branches: 1.9.2; Add few peripheral device type Remove "???" from T_IT8_1/2. They actually are pre-press devices for graphic arts as described by ASC IT8 Zeros and blanks scsipi_inquiry_data from byte 58 to byte 74 if additional_length is less than 58
|
1.8 |
| 17-Nov-1998 |
bouyer | branches: 1.8.10; Rename scsi_interpret_sense() to scsipi_interpret_sense() and move it from scsi_base.c to scsipi_base.c. Rename the functions from scsi_verbose.c too, and rename the file itself. Cleaup includes too (scsi_*.h should not be #included in scsipi_*.h files, which are supposed to be common to atapi and scsi).
|
1.7 |
| 17-Aug-1998 |
mycroft | Assign my copyrights to TNF.
|
1.6 |
| 15-Aug-1998 |
mycroft | Make copyright notices with my name consistent.
|
1.5 |
| 05-Aug-1998 |
drochner | Improve generation of default disklabels: -store printable product ID in cd's and sd's softc, use it as "typename" -for this, add a "destination buffer length" argument to scsipi_strvis() -return ATAPI device type for ATAPI devices
|
1.4 |
| 03-Oct-1997 |
thorpej | Clean up and comment the device types, and add the "enclosure services", "storage array", and "IT8" types.
|
1.3 |
| 01-Oct-1997 |
enami | Cosmetic changes to keep coding style consistency in this directory;
- Indent with tab of width 8. - Use four column to indent continuation line. - Fold long line if possible. - Use return (xx) instead of return xx. - Compare pointer against NULL instead of testing like boolean. - Delete whitespace at the end of line. - Delete whitespace in front of function call operator. - Delete whitespace after cast. - Dereference a pointer to function explicitly. - Add an empty line after local variable declaration. - Use NULL instead of (char *)0. - Dont use block for single statement.
|
1.2 |
| 27-Aug-1997 |
bouyer | branches: 1.2.2; Merge scsipi branch in the mainline. This add support for ATAPI devices (currently only CD-ROM drives on i386). The sys/dev/scsipi system provides 2 busses to which devices can attach (scsibus and atapibus). This needed to change some include files and structure names in the low level scsi drivers.
|
1.1 |
| 01-Jul-1997 |
bouyer | branches: 1.1.2; file scsipiconf.c was initially added on branch bouyer-scsipi.
|
1.1.2.1 |
| 01-Jul-1997 |
bouyer | New merged scsi/atapi code. Tested on i386 and sparc. Commiting to a branch for now, so that it can be tested on other ports too. The config sheme is as follow: New merged scsi/atapi code. Tested on i386 and sparc. Commiting to a branch for now, so that it can be tested on other ports too. The config sheme is as follow: scsibus at aha sd at scsibus cd at scsibus atapibus at wdc cd at atapibus cd has bus-specific config and function front-end in scsicd.c and atapicd.c The call to theses functions from cd.c is conditionned to NSCSICD and NATAPICD (all defined in cd.h by config).
|
1.2.2.3 |
| 14-Oct-1997 |
thorpej | Update marc-pcmcia branch from trunk.
|
1.2.2.2 |
| 27-Aug-1997 |
thorpej | Update marc-pcmcia branch from trunk.
|
1.2.2.1 |
| 27-Aug-1997 |
thorpej | file scsipiconf.c was added on branch marc-pcmcia on 1997-08-27 23:33:29 +0000
|
1.8.10.4 |
| 05-Jan-2001 |
bouyer | Sync with HEAD
|
1.8.10.3 |
| 20-Nov-2000 |
bouyer | Update thorpej_scsipi to -current as of a month ago A i386 GENERIC kernel compiles without the siop, ahc and bha drivers (will be updated later). i386 IDE/ATAPI and ncr work, as well as sparc/esp_sbus. alpha should work as well (untested yet). siop, ahc and bha will be updated once I've updated the branch to current -current, as well as machine-dependant code.
Main changes to the scsipi code itself: - add a scsipi_channel->type to allow umass to attach to both atapibus and scsibus. Will die when IDE is converted from ata_atapi_attach to scsipi_channel/scsipi_adapter - Add a chan_defquirks to scsipi_channel so that adapters can pass a default set of quirks to be set for each device attached - add adapt_getgeom and adapt_accesschk callbacks
|
1.8.10.2 |
| 01-Nov-1999 |
thorpej | Fixup the SC_DEBUG() stuff for the new world order.
|
1.8.10.1 |
| 19-Oct-1999 |
thorpej | Completely rewritten scsipi_xfer execution engine: - All xfers are queued in the mid-layer, rather than doing so in an ad-hoc fashion in individual adapter drivers. - Adapter/channel resource management in the mid-layer, avoids even trying to start running an xfer if the adapter/channel doesn't have the resources. - Better communication between the mid-layer and the adapters. - Asynchronous event notification mechanism from adapter to mid-layer and peripherals. - Better peripheral queue management: freeze/thaw, sorted requeueing during recovery, etc. - Clean separation of peripherals, adapters, and adapter channels (no more scsipi_link). - Kernel thread for each scsipi_channel makes error recovery much easier (no more dealing with interrupt context when recovering from an error). - Mid-layer support for tagged queueing: commands can have the tag type set explicitly, tag IDs are allocated in the mid-layer (thus eliminating the need to use buggy tag ID allocation schemes in many adapter drivers).
There is a lot more work to do, but this correctly functions for the most part on several file servers I run.
|
1.9.2.1 |
| 22-Jun-2000 |
minoura | Sync w/ netbsd-1-5-base.
|
1.12.2.10 |
| 11-Nov-2002 |
nathanw | Catch up to -current
|
1.12.2.9 |
| 18-Oct-2002 |
nathanw | Catch up to -current.
|
1.12.2.8 |
| 12-Jul-2002 |
nathanw | No longer need to pull in lwp.h; proc.h pulls it in for us.
|
1.12.2.7 |
| 24-Jun-2002 |
nathanw | Curproc->curlwp renaming.
Change uses of "curproc->l_proc" back to "curproc", which is more like the original use. Bare uses of "curproc" are now "curlwp".
"curproc" is now #defined in proc.h as ((curlwp) ? (curlwp)->l_proc) : NULL) so that it is always safe to reference curproc (*de*referencing curproc is another story, but that's always been true).
|
1.12.2.6 |
| 28-Feb-2002 |
nathanw | Catch up to -current.
|
1.12.2.5 |
| 08-Jan-2002 |
nathanw | Catch up to -current.
|
1.12.2.4 |
| 14-Nov-2001 |
nathanw | Catch up to -current.
|
1.12.2.3 |
| 24-Aug-2001 |
nathanw | Catch up with -current.
|
1.12.2.2 |
| 21-Jun-2001 |
nathanw | Catch up to -current.
|
1.12.2.1 |
| 05-Mar-2001 |
nathanw | Initial commit of scheduler activations and lightweight process support.
|
1.13.2.3 |
| 11-Feb-2002 |
jdolecek | Sync w/ -current.
|
1.13.2.2 |
| 10-Jan-2002 |
thorpej | Sync kqueue branch with -current.
|
1.13.2.1 |
| 03-Aug-2001 |
lukem | update to -current
|
1.20.4.1 |
| 11-Sep-2004 |
he | Pull up revision 1.24 (via patch, requested by bouyer in ticket #837): Improve handling of memory shortage, to fix problems like: sd3(mpt0:0:1:0): unable to allocate scsipi_xfer sd3: not queued, error 12 The theory is that other consumers of pool memory is causing this memory shortage in certain somewhat hard to reproduce situations. This is done by giving scsipi_command an extra argument to optionally pass a preallocated scsipi_xfer, and allocating a scsipi_xfer before dequeueing a buffer in the various *start() functions. If the allocation of a scsipi_xfer fails, schedule a callout for delayed invocation of the start function. Also reserve one page for scsipi_xfer structs, to ensure that we will eventually have some available once pending commands complete. Should fix PR#25670.
|
1.20.2.5 |
| 10-Nov-2005 |
skrll | Sync with HEAD. Here we go again...
|
1.20.2.4 |
| 04-Mar-2005 |
skrll | Sync with HEAD.
Hi Perry!
|
1.20.2.3 |
| 21-Sep-2004 |
skrll | Fix the sync with head I botched.
|
1.20.2.2 |
| 18-Sep-2004 |
skrll | Sync with HEAD.
|
1.20.2.1 |
| 25-Aug-2004 |
skrll | Sync with HEAD.
|
1.27.6.1 |
| 19-Mar-2005 |
yamt | sync with head. xen and whitespace. xen part is not finished.
|
1.27.4.1 |
| 29-Apr-2005 |
kent | sync with -current
|
1.33.2.1 |
| 03-Sep-2007 |
yamt | sync with head.
|
1.34.32.1 |
| 11-Jul-2007 |
mjf | Sync with head.
|
1.34.30.1 |
| 01-Jul-2007 |
ad | Adapt to callout API change.
|
1.35.32.3 |
| 09-Oct-2010 |
yamt | sync with head
|
1.35.32.2 |
| 11-Aug-2010 |
yamt | sync with head.
|
1.35.32.1 |
| 16-May-2008 |
yamt | sync with head.
|
1.35.30.1 |
| 18-May-2008 |
yamt | sync with head.
|
1.35.28.1 |
| 02-Jun-2008 |
mjf | Sync with HEAD.
|
1.36.22.2 |
| 05-Mar-2011 |
rmind | sync with head
|
1.36.22.1 |
| 03-Jul-2010 |
rmind | sync with head
|
1.36.20.2 |
| 22-Oct-2010 |
uebayasi | Sync with HEAD (-D20101022).
|
1.36.20.1 |
| 17-Aug-2010 |
uebayasi | Sync with HEAD.
|
1.40.36.2 |
| 05-Dec-2016 |
skrll | Sync with HEAD
|
1.40.36.1 |
| 29-May-2016 |
skrll | Sync with HEAD
|
1.40.18.1 |
| 03-Dec-2017 |
jdolecek | update from HEAD
|
1.41.2.2 |
| 26-Apr-2017 |
pgoyette | Sync with HEAD
|
1.41.2.1 |
| 07-Jan-2017 |
pgoyette | Sync with HEAD. (Note that most of these changes are simply $NetBSD$ tag issues.)
|
1.42.2.1 |
| 21-Apr-2017 |
bouyer | Sync with HEAD
|
1.44.12.1 |
| 10-Jun-2019 |
christos | Sync with HEAD
|