Home | History | Annotate | Download | only in i2o
History log of /src/sys/dev/i2o/iopsp.c
RevisionDateAuthorComments
 1.41  04-May-2022  andvar fix various typos in comments and log messages.
 1.40  07-Aug-2021  thorpej Merge thorpej-cfargs2.
 1.39  24-Apr-2021  thorpej branches: 1.39.8;
Merge thorpej-cfargs branch:

Simplify and make extensible the config_search() / config_found() /
config_attach() interfaces: rather than having different variants for
which arguments you want pass along, just have a single call that
takes a variadic list of tag-value arguments.

Adjust all call sites:
- Simplify wherever possible; don't pass along arguments that aren't
actually needed.
- Don't be explicit about what interface attribute is attaching if
the device only has one. (More simplification.)
- Add a config_probe() function to be used in indirect configuiration
situations, making is visibly easier to see when indirect config is
in play, and allowing for future change in semantics. (As of now,
this is just a wrapper around config_match(), but that is an
implementation detail.)

Remove unnecessary or redundant interface attributes where they're not
needed.

There are currently 5 "cfargs" defined:
- CFARG_SUBMATCH (submatch function for direct config)
- CFARG_SEARCH (search function for indirect config)
- CFARG_IATTR (interface attribte)
- CFARG_LOCATORS (locators array)
- CFARG_DEVHANDLE (devhandle_t - wraps OFW, ACPI, etc. handles)

...and a sentinel value CFARG_EOL.

Add some extra sanity checking to ensure that interface attributes
aren't ambiguous.

Use CFARG_DEVHANDLE in MI FDT, OFW, and ACPI code, and macppc and shark
ports to associate those device handles with device_t instance. This
will trickle trough to more places over time (need back-end for pre-OFW
Sun OBP; any others?).
 1.38  10-Nov-2019  chs branches: 1.38.10;
in many device attach paths, allocate memory with M_WAITOK instead of M_NOWAIT
and remove code to handle failures that can no longer happen.
 1.37  16-Aug-2015  msaitoh branches: 1.37.18;
Fix device_t/softc split bug.
 1.36  27-Oct-2012  chs branches: 1.36.14;
split device_t/softc for all remaining drivers.
replace "struct device *" with "device_t".
use device_xname(), device_unit(), etc.
 1.35  12-May-2009  cegger branches: 1.35.12; 1.35.22;
struct device * -> device_t, no functional changes intended.
 1.34  12-May-2009  cegger struct cfdata * -> cfdata_t, no functional changes intended.
 1.33  08-Sep-2008  gmcgarry branches: 1.33.8;
Replace most gcc-specific __attribute__ uses with BSD-style sys/cdef.h
preprocessor macros.
 1.32  28-Apr-2008  martin branches: 1.32.2; 1.32.6;
Remove clause 3 and 4 from TNF licenses
 1.31  06-Apr-2008  cegger branches: 1.31.2; 1.31.4;
use aprint_*_dev and device_xname
 1.30  01-Dec-2007  ad branches: 1.30.14;
Noisy printfs.
 1.29  19-Oct-2007  ad branches: 1.29.2;
machine/{bus,cpu,intr}.h -> sys/{bus,cpu,intr}.h
 1.28  16-Jun-2007  ad branches: 1.28.6; 1.28.8; 1.28.12;
- Merge changes from the vmlocking branch.
- Eliminate opt_i2o.h, since I2OVERBOSE is gone.
 1.27  04-Mar-2007  christos branches: 1.27.2; 1.27.4;
Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
 1.26  15-Feb-2007  ad branches: 1.26.2;
Replace some uses of lockmgr() / simplelocks.
 1.25  16-Nov-2006  christos __unused removal on arguments; approved by core.
 1.24  12-Oct-2006  christos - sprinkle __unused on function decls.
- fix a couple of unused bugs
- no more -Wno-unused for i386
 1.23  29-Mar-2006  thorpej branches: 1.23.8; 1.23.10;
Use device_private().
 1.22  25-Mar-2006  thorpej Use device_parent().
 1.21  29-Jan-2006  dsl branches: 1.21.2; 1.21.4; 1.21.6; 1.21.8; 1.21.10;
Make almost everything #include <sys/bswap.h> instead of <machine/bswap.h>
The bswap.h and endian.h files are all rather incestuous, but I want to
get the constant folding stuff into one place - sys/bswap.h
 1.20  11-Dec-2005  christos branches: 1.20.2;
merge ktrace-lwp.
 1.19  27-Feb-2005  perry branches: 1.19.4;
nuke trailing whitespace
 1.18  13-Jun-2003  thorpej branches: 1.18.2; 1.18.10; 1.18.12;
Fix the way the scsipi adapter openings are adjusted when the array
controller adjusts our queue length.
 1.17  06-Dec-2002  ad - Handle DPT ioctls from native NetBSD binaries.
- SCSI targets could disapper mid-way through autoconfig if the board
notifed us of a changed LCT at the wrong time. Fix that.
 1.16  02-Oct-2002  thorpej Add trailing ; to CFATTACH_DECL.
 1.15  30-Sep-2002  thorpej Use CFATTACH_DECL().
 1.14  27-Sep-2002  thorpej Declare all cfattach structures const.
 1.13  27-Sep-2002  provos remove trailing \n in panic(). approved perry.
 1.12  12-Jan-2002  tsutsui branches: 1.12.10;
Call malloc(9) with M_ZERO flag instead of memset() after malloc().
 1.11  13-Nov-2001  lukem add RCSID
 1.10  22-Aug-2001  ad branches: 1.10.6;
Parameter group changes:

- Do FIELD_SET correctly for scalar types.
- Add some basic table ops.
- Push error reporting back into iop.c.
- Add some field index and (yet more) LAN defs to i2o.h.
 1.9  04-Aug-2001  ad Some changes from OpenBSD, and some of my own:

- More SCSI port defs.
- Nuke vtophys().
- Release resources in iop_init() upon failure.
- Don't use a message wrapper when initalising the outbound FIFO.
- A couple of field size/endian fixes.
- Just use iop_post() when we don't need special handling.
- IM_DISCARD is now pointless, since we don't queue at the driver level.
- Map data transfers from/to userspace directly.
- A few comment and stylistic changes.
 1.8  26-Jun-2001  bouyer branches: 1.8.2;
Make it compile with SCSIPI_DEBUG
 1.7  25-Apr-2001  bouyer 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.6  01-Apr-2001  ad - Allocate any private space that's requested.
- Fix a few bogons with the last update.
- Add some more LAN defs.
 1.5  20-Mar-2001  ad Major update; basically, improve performance somewhat and play nicer with
Intel and AMI IOPs. There still exists one nasty problem with Intel adapters
when under load, which I'm working on.
 1.4  07-Feb-2001  ad branches: 1.4.2;
FC peripherals on DPT/Adaptec boards only respond to private class messages.
 1.3  03-Dec-2000  ad - Only configure un-claimed devices. Implement re-configuration.
- Adhere to the spec better in some places. Also, work around some quirks
noted in the Linux I2O code.
- Register event handlers for the executive and RBS devices.
- Fix a number of buglets and tidy a little.
- Implement a message pass-through interface and some other useful ioctls.
 1.2  09-Nov-2000  ad branches: 1.2.2;
- A few minor changes (typos and the like).
- Use SPLs in iop_msg_send() and not the interrupt mask - it accesses
shared resources lower down.
 1.1  08-Nov-2000  ad Add support for I2O adapters and SCSI/FC-AL/BSA class devices. This needs
more testing with different configurations, and work in a number of areas
(which I'm not able to do for a little while), but is at least functional
and stable on i386 with DPT adapters.
 1.2.2.11  23-Apr-2001  ad bouyer says to call it channel 0.
 1.2.2.10  23-Apr-2001  ad - Set SCSIPI_CHAN_NOSETTLE in the channel's flags, otherwise boards with lots
of SCSI ports will take ages to configure.
- We have 1 channel, so call it channel -1.
- Fix off-by-one when draining.
 1.2.2.9  01-Apr-2001  ad Sync w/current.
 1.2.2.8  27-Mar-2001  ad Fix a couple of style nits & merge errors.
 1.2.2.7  27-Mar-2001  bouyer Sync with HEAD.
 1.2.2.6  11-Feb-2001  bouyer Sync with HEAD.
 1.2.2.5  22-Jan-2001  bouyer make it compile
 1.2.2.4  15-Jan-2001  bouyer req_sense_length is dead.
 1.2.2.3  08-Dec-2000  bouyer Sync with HEAD.
 1.2.2.2  22-Nov-2000  bouyer Sync thorpej_scsipi with trunk.
 1.2.2.1  09-Nov-2000  bouyer file iopsp.c was added on branch thorpej_scsipi on 2000-11-22 17:34:20 +0000
 1.4.2.10  11-Dec-2002  thorpej Sync with HEAD.
 1.4.2.9  18-Oct-2002  nathanw Catch up to -current.
 1.4.2.8  12-Jul-2002  nathanw No longer need to pull in lwp.h; proc.h pulls it in for us.
 1.4.2.7  28-Feb-2002  nathanw Catch up to -current.
 1.4.2.6  14-Nov-2001  nathanw Catch up to -current.
 1.4.2.5  21-Sep-2001  nathanw Catch up to -current.
 1.4.2.4  24-Aug-2001  nathanw Catch up with -current.
 1.4.2.3  21-Jun-2001  nathanw Catch up to -current.
 1.4.2.2  09-Apr-2001  nathanw Catch up with -current.
 1.4.2.1  05-Mar-2001  nathanw Initial commit of scheduler activations and lightweight process support.
 1.8.2.4  10-Oct-2002  jdolecek sync kqueue with -current; this includes merge of gehenna-devsw branch,
merge of i386 MP branch, and part of autoconf rototil work
 1.8.2.3  11-Feb-2002  jdolecek Sync w/ -current.
 1.8.2.2  10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.8.2.1  25-Aug-2001  thorpej Merge Aug 24 -current into the kqueue branch.
 1.10.6.3  06-Jun-2002  he Apply patch (requested by bouyer):
Make this compile under SCSIDEBUG.
 1.10.6.2  25-Oct-2001  he Pull up revisions 1.1-1.10 (new, via patch, requested by ad):
Add Mylex DACC960, CAC-EISA, and I2O block/SCSI drivers.
 1.10.6.1  22-Aug-2001  he file iopsp.c was added on branch netbsd-1-5 on 2001-10-25 18:01:04 +0000
 1.12.10.1  12-Dec-2002  he Pull up revision 1.17 (requested by ad in ticket #1030):
Add support for Adaptec 2005S.
Handle DPT ioctls() from native binaries.
Fix SCSI probe problem.
 1.18.12.1  19-Mar-2005  yamt sync with head. xen and whitespace. xen part is not finished.
 1.18.10.1  29-Apr-2005  kent sync with -current
 1.18.2.1  04-Mar-2005  skrll Sync with HEAD.

Hi Perry!
 1.19.4.6  07-Dec-2007  yamt sync with head
 1.19.4.5  27-Oct-2007  yamt sync with head.
 1.19.4.4  03-Sep-2007  yamt sync with head.
 1.19.4.3  26-Feb-2007  yamt sync with head.
 1.19.4.2  30-Dec-2006  yamt sync with head.
 1.19.4.1  21-Jun-2006  yamt sync with head.
 1.20.2.1  01-Feb-2006  yamt sync with head.
 1.21.10.2  31-Mar-2006  tron Merge 2006-03-31 NetBSD-current into the "peter-altq" branch.
 1.21.10.1  28-Mar-2006  tron Merge 2006-03-28 NetBSD-current into the "peter-altq" branch.
 1.21.8.1  19-Apr-2006  elad sync with head.
 1.21.6.1  01-Apr-2006  yamt sync with head.
 1.21.4.1  22-Apr-2006  simonb Sync with head.
 1.21.2.1  09-Sep-2006  rpaulo sync with head
 1.23.10.2  10-Dec-2006  yamt sync with head.
 1.23.10.1  22-Oct-2006  yamt sync with head
 1.23.8.1  18-Nov-2006  ad Sync with head.
 1.26.2.1  12-Mar-2007  rmind Sync with HEAD.
 1.27.4.1  11-Jul-2007  mjf Sync with head.
 1.27.2.3  23-Oct-2007  ad Sync with head.
 1.27.2.2  15-Jul-2007  ad Sync with head.
 1.27.2.1  27-May-2007  ad Checkpoint work in progress. Seems to break block I/O but I am not sure
why yet:

- Avoid a NULL pointer dereference in bus_dmamap_sync.
- MP safety changes, incomplete.
 1.28.12.1  25-Oct-2007  bouyer Sync with HEAD.
 1.28.8.2  09-Jan-2008  matt sync with HEAD
 1.28.8.1  06-Nov-2007  matt sync with HEAD
 1.28.6.2  03-Dec-2007  joerg Sync with HEAD.
 1.28.6.1  26-Oct-2007  joerg Sync with HEAD.

Follow the merge of pmap.c on i386 and amd64 and move
pmap_init_tmp_pgtbl into arch/x86/x86/pmap.c. Modify the ACPI wakeup
code to restore CR4 before jumping back into kernel space as the large
page option might cover that.
 1.29.2.1  08-Dec-2007  mjf Sync with HEAD.
 1.30.14.2  28-Sep-2008  mjf Sync with HEAD.
 1.30.14.1  02-Jun-2008  mjf Sync with HEAD.
 1.31.4.3  16-May-2009  yamt sync with head
 1.31.4.2  04-May-2009  yamt sync with head.
 1.31.4.1  16-May-2008  yamt sync with head.
 1.31.2.1  18-May-2008  yamt sync with head.
 1.32.6.1  19-Oct-2008  haad Sync with HEAD.
 1.32.2.1  24-Sep-2008  wrstuden Merge in changes between wrstuden-revivesa-base-2 and
wrstuden-revivesa-base-3.
 1.33.8.1  13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.35.22.2  03-Dec-2017  jdolecek update from HEAD
 1.35.22.1  20-Nov-2012  tls Resync to 2012-11-19 00:00:00 UTC
 1.35.12.1  30-Oct-2012  yamt sync with head
 1.36.14.1  22-Sep-2015  skrll Sync with HEAD
 1.37.18.1  13-Apr-2020  martin Mostly merge changes from HEAD upto 20200411
 1.38.10.1  21-Mar-2021  thorpej Give config_found() the same variadic arguments treatment as
config_search(). This commit only adds the CFARG_EOL sentinel
to the existing config_found() calls. Conversion of config_found_sm_loc()
and config_found_ia() call sites will be in subsequent commits.
 1.39.8.1  04-Aug-2021  thorpej Adapt to CFARGS().

RSS XML Feed