Home | History | Annotate | Download | only in ic
History log of /src/sys/dev/ic/siopvar.h
RevisionDateAuthorComments
 1.29  24-Aug-2012  msaitoh Fix typos
 1.28  19-Oct-2009  bouyer branches: 1.28.12;
Remove closes 3 & 4 from my licence. Lots of thanks to Soren Jacobsen
for the booring work !
 1.27  04-Sep-2009  tsutsui u_intNN_t -> uintNN_t
 1.26  15-Mar-2009  cegger ansify function definitions
 1.25  25-Dec-2007  perry branches: 1.25.10; 1.25.18; 1.25.24;
Convert many of the uses of __attribute__ to equivalent
__packed, __unused and __dead macros from cdefs.h
 1.24  16-Feb-2006  perry branches: 1.24.40; 1.24.46; 1.24.50; 1.24.54;
Change "inline" back to "__inline" in .h files -- C99 is still too
new, and some apps compile things in C89 mode. C89 keywords stay.

As per core@.
 1.23  24-Dec-2005  perry branches: 1.23.2; 1.23.4; 1.23.6;
__inline__ -> inline
 1.22  18-Nov-2005  bouyer Some drives disconnect after the last data phase without a save data pointer
message. In such case we would not update resid with the proper value
(eventually resid would not be updated at all if there was only one data
phase). To fix this, have the script save the offset in the data tables at
disconnect time if there was a transfer, and use this to compute the resid
if the current offset is 0.
Problem reported and patch tested by edwin, Roy Bixler and YAMAMOTO Takashi.
Fix kern/31990 by YAMAMOTO Takashi.
 1.21  27-Feb-2005  perry branches: 1.21.2; 1.21.4; 1.21.10;
nuke trailing whitespace
 1.20  04-Feb-2005  perry de-__P
 1.19  02-Nov-2003  wiz branches: 1.19.6; 1.19.8; 1.19.10; 1.19.12;
Fix some typos. From Tom Cosgrove via jmc@openbsd.
 1.18  23-Apr-2002  bouyer branches: 1.18.4; 1.18.10;
More copyright fixes, pointed out by Thomas. Thanks !
 1.17  20-Apr-2002  bouyer Move a few things around, so that ic/siop_common.c and pci/siop_pci_common.c
can be compiled without including siopvar.h.
 1.16  25-Apr-2001  bouyer branches: 1.16.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.15  15-Mar-2001  bouyer Note that SF_CHIP_QUAD is for clock quadrupler with busy wait for PPL.
SF_CHIP_DBLR is for clock doubler or quadrupler.
 1.14  12-Mar-2001  bouyer Preliminary support for SYM53C1010-33 (at 80MB/s only for now), based on
patches sent by Matthias Drochner <M.Drochner@fz-juelich.de> and
Kenneth R Westerback <kwesterback@home.com>
 1.13  23-Oct-2000  bouyer branches: 1.13.2; 1.13.4;
Fixes related to QUEUE FULL status:
- move status handling in siop_scsicmd_end(), it's better than in siop_intr()
- define 2 internal SIOP status, for "no status reported by device" and
reset condition
- add a list of "urgent" command, to be executed before the list of command
queued the normal way; this is used for command which got aborted
by a QUEUE FULL and have to be requeued in order.
- Don't accept to send a Q_TAG message not immediatly folowing a IDENTIFY
 1.12  23-Oct-2000  bouyer Rearrange for script changes (scheduler core in main script, command part
of the scheduler in command table).
Add tagged command queuing support.
 1.11  18-Oct-2000  bouyer Adapt for new lun switch script.
Implement SCBUSACCEL ioctl.
Snapshot of work in progress on tagged queuing: we can send/receive
queue tag messages. Infrastructure to manage multiple commands per
devices not here yet.
 1.10  06-Oct-2000  bouyer Fix recurent typo: shed->sched
 1.9  06-Oct-2000  bouyer Adapt for reselect handling from the script. While here, fix typo
(SIOP_SCXFER -> SIOP_SXFER).
 1.8  13-Jun-2000  bouyer branches: 1.8.2;
sheduler->scheduler, as pointed out by Klaus Klein
 1.7  25-May-2000  bouyer branches: 1.7.2;
Separate the sheduler from the main script, allocate another DMA-safe
memory page for the sheduler. Put the main script in the on-chip RAM when
available.
Avoid a null-pointer dereference when DSA is invalid.
 1.6  23-May-2000  bouyer Allocate dynamically the command block descriptors.
 1.5  15-May-2000  bouyer - split siop.c in script-dependant vs script-independant part, for
comming esiop
- add a reset callback for bus-dependant registers settings
 1.4  02-May-2000  bouyer - do sync/wide negotiation
- use a circular queue for the start slots, so that order has better chances
to be preserved.
 1.3  27-Apr-2000  bouyer Fix copyrigth notice.
 1.2  25-Apr-2000  bouyer - Change the script to start new commands in an asyncronous way, using
'command slots' in which the host can put command and wait for the script
to start them
- Change siop.c to do full disconnect/reslelect, allowing as much as one
command per target/lun to run in parallel.
- Fix bug in registers init where a board without BIOS would end at
ID 0 (now the driver works on alpha too).
- better handling of messages, sending back a MSG_EXT_SDTR in response to an
incoming MSG_EXT_SDTR, and MSG_MESSAGE_REJECT for unhandled messages.
- fix use of bus_dmamap_sync() and htole32().
- supports shared interrups
- change some int8 and int16 to int, for alpha and mips benefits ( suggested by
Toru Nishimura)
 1.1  21-Apr-2000  bouyer Snapshot of work in progress: new driver for the NCR 53c8xx SCSI controller
(the name 'siop' is still being discussed, may change).
Only basic disconnect/reselect for now, no sync/wide negotiation.
Tested with 810A, 875 and 895 on i386 only.
The bus-independant part should also be able to handle the 53c720 and 53c770.
A new driver with enhanced script should appear for the 825/875/895 'soon'.
 1.7.2.1  22-Jun-2000  minoura Sync w/ netbsd-1-5-base.
 1.8.2.3  29-Jan-2002  he Pull up revisions 1.14-1.15 (requested by bouyer):
Add support for the 53c1010-33, and bring documentation up to
date.
 1.8.2.2  05-Jan-2002  he Apply patch (requested by bouyer):
Don't call siop_morecbd() in interrupt context, but pre-allocate
CBD at probe time instead. Fixes PR#13827, PR#14866 and PR#15048.
 1.8.2.1  15-Dec-2000  he Pull up revisions 1.9-1.13 (requested by bouyer):
Speed improvements to the siop driver, and add tagged queueing
support. As a side effect, better handling of some not so common
phase or message sequences.
 1.13.4.3  20-Jun-2002  nathanw Catch up to -current.
 1.13.4.2  21-Jun-2001  nathanw Catch up to -current.
 1.13.4.1  09-Apr-2001  nathanw Catch up with -current.
 1.13.2.6  03-Apr-2001  bouyer Remove local command queue; if we run out of start slots, just freeze the
channel; and unfreeze it at the first command complete.
 1.13.2.5  27-Mar-2001  bouyer Sync with HEAD.
 1.13.2.4  12-Mar-2001  bouyer Sync with HEAD.
 1.13.2.3  14-Dec-2000  bouyer Convert to thorpej_scsipi interface. Still some work to do to get all benefits
of the new middle layer, but it works.
 1.13.2.2  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.
 1.13.2.1  23-Oct-2000  bouyer file siopvar.h was added on branch thorpej_scsipi on 2000-11-20 11:40:55 +0000
 1.16.2.1  23-Jun-2002  jdolecek catch up with -current on kqueue branch
 1.18.10.6  11-Dec-2005  christos Sync with head.
 1.18.10.5  04-Mar-2005  skrll Sync with HEAD.

Hi Perry!
 1.18.10.4  04-Feb-2005  skrll Sync with HEAD.
 1.18.10.3  21-Sep-2004  skrll Fix the sync with head I botched.
 1.18.10.2  18-Sep-2004  skrll Sync with HEAD.
 1.18.10.1  03-Aug-2004  skrll Sync with HEAD
 1.18.4.1  14-Dec-2005  jmc Pullup via patch (requested in ticket #5957 by bouyer)
Some drives disconnect after the last data phase without a save data pointer
message. In such case we would not update resid with the proper value
(eventually resid would not be updated at all if there was only one data
phase). To fix this, have the script save the offset in the data tables at
disconnect time if there was a transfer, and use this to compute the resid
if the current offset is 0. PR#31990
 1.19.12.1  01-Dec-2005  riz Pull up following revision(s) (requested by bouyer in ticket #10168):
sys/dev/ic/siop.c: revision 1.79 via patch
sys/dev/ic/siopvar_common.h: revision 1.33 via patch
sys/dev/ic/esiopvar.h: revision 1.13 via patch
sys/dev/ic/esiop.c: revision 1.34 via patch
sys/dev/microcode/siop/esiop.ss: revision 1.20 via patch
sys/dev/ic/siopvar.h: revision 1.22 via patch
sys/dev/microcode/siop/siop.ss: revision 1.20 via patch
Some drives disconnect after the last data phase without a save data pointer
message. In such case we would not update resid with the proper value
(eventually resid would not be updated at all if there was only one data
phase). To fix this, have the script save the offset in the data tables at
disconnect time if there was a transfer, and use this to compute the resid
if the current offset is 0.
Problem reported and patch tested by edwin, Roy Bixler and YAMAMOTO Takashi.
Fix kern/31990 by YAMAMOTO Takashi.
 1.19.10.2  19-Mar-2005  yamt sync with head. xen and whitespace. xen part is not finished.
 1.19.10.1  12-Feb-2005  yamt sync with head.
 1.19.8.1  29-Apr-2005  kent sync with -current
 1.19.6.1  01-Dec-2005  riz Pull up following revision(s) (requested by bouyer in ticket #10168):
sys/dev/ic/siop.c: revision 1.79 via patch
sys/dev/ic/siopvar_common.h: revision 1.33 via patch
sys/dev/ic/esiopvar.h: revision 1.13 via patch
sys/dev/ic/esiop.c: revision 1.34 via patch
sys/dev/microcode/siop/esiop.ss: revision 1.20 via patch
sys/dev/ic/siopvar.h: revision 1.22 via patch
sys/dev/microcode/siop/siop.ss: revision 1.20 via patch
Some drives disconnect after the last data phase without a save data pointer
message. In such case we would not update resid with the proper value
(eventually resid would not be updated at all if there was only one data
phase). To fix this, have the script save the offset in the data tables at
disconnect time if there was a transfer, and use this to compute the resid
if the current offset is 0.
Problem reported and patch tested by edwin, Roy Bixler and YAMAMOTO Takashi.
Fix kern/31990 by YAMAMOTO Takashi.
 1.21.10.1  22-Nov-2005  yamt sync with head.
 1.21.4.2  21-Jan-2008  yamt sync with head
 1.21.4.1  21-Jun-2006  yamt sync with head.
 1.21.2.1  21-Nov-2005  tron Pull up following revision(s) (requested by bouyer in ticket #973):
sys/dev/ic/siop.c: revision 1.79
sys/dev/ic/siopvar_common.h: revision 1.33
sys/dev/ic/esiopvar.h: revision 1.13
sys/dev/ic/esiop.c: revision 1.34
sys/dev/microcode/siop/esiop.ss: revision 1.20
sys/dev/ic/siopvar.h: revision 1.22
sys/dev/microcode/siop/siop.ss: revision 1.20
Some drives disconnect after the last data phase without a save data pointer
message. In such case we would not update resid with the proper value
(eventually resid would not be updated at all if there was only one data
phase). To fix this, have the script save the offset in the data tables at
disconnect time if there was a transfer, and use this to compute the resid
if the current offset is 0.
Problem reported and patch tested by edwin, Roy Bixler and YAMAMOTO Takashi.
Fix kern/31990 by YAMAMOTO Takashi.
 1.23.6.1  22-Apr-2006  simonb Sync with head.
 1.23.4.1  09-Sep-2006  rpaulo sync with head
 1.23.2.1  18-Feb-2006  yamt sync with head.
 1.24.54.1  02-Jan-2008  bouyer Sync with HEAD
 1.24.50.1  26-Dec-2007  ad Sync with head.
 1.24.46.1  18-Feb-2008  mjf Sync with HEAD.
 1.24.40.1  09-Jan-2008  matt sync with HEAD
 1.25.24.1  13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.25.18.1  28-Apr-2009  skrll Sync with HEAD.
 1.25.10.3  11-Mar-2010  yamt sync with head
 1.25.10.2  16-Sep-2009  yamt sync with head
 1.25.10.1  04-May-2009  yamt sync with head.
 1.28.12.1  30-Oct-2012  yamt sync with head

RSS XML Feed