Home | History | Annotate | Download | only in ic
History log of /src/sys/dev/ic/aic7xxxvar.h
RevisionDateAuthorComments
 1.59  08-Feb-2024  andvar s/sharable/shareable in comments and documentation.
 1.58  22-Aug-2021  andvar fix typos in comments, add missing RCSID.
 1.57  12-May-2009  cegger struct device * -> device_t, no functional changes intended.
 1.56  05-May-2009  cegger device_t/softc split
 1.55  11-Feb-2008  dyoung branches: 1.55.10; 1.55.24;
Constify ahc_set_name(), ahc_name(). Do not free(9) memory that
may not belong to us.
 1.54  28-Jan-2008  macallan get rid of the shutdown hook, add suspend and resume handlers instead
XXX: ahc_suspend panics here so suspend calls ahc_shutdown and resume does
nothing.
This fixes a hangup and subsequent panic which occured when the shutdown hooks
were called and /afterwards/ the sd suspend handler tried to flush caches
through an already shut down ahc.
 1.53  11-May-2006  mrg branches: 1.53.34; 1.53.40;
don't declare ahc_pci_ident_table[] and ahc_num_pci_devs extern, they aren't.
 1.52  15-Apr-2006  tsutsui Add AHC_USETARGETDEFAULTS to ahc_flag, which enables to
use default target (but not for host) device settings on
ahc(4) interface without its SEEPROM (mostly on-board one).

This flag could be useful if host's BIOS (firmware) initializes
ahc(4) chip with some conservative (async, no tagged queuing etc.)
target settings for minimum support to load its primary loader etc.,
and it will be enabled in each attachment according to MD device
properties(9). Currently this property is set only on sgimips for
O2 on-board aic7880 adapters.

No objection on tech-kern (and netbsd-bugs), and closes PR kern/23276.
 1.51  14-Mar-2006  tsutsui branches: 1.51.2;
TAB/space cleanup.
 1.50  28-Nov-2005  bouyer branches: 1.50.4; 1.50.6; 1.50.8; 1.50.10;
Don't call alloc_scb() (which can call bus_dmamem_alloc/map) from
ADAPTER_REQ_RUN_XFER context (which can be interrupt context), defer this
to the ADAPTER_REQ_GROW_RESOURCES callback.
Fix a panic in uvm reported by John R. Shannon on port-xen; patch tested on
ahc by me and on ahd by John.
 1.49  28-Jun-2005  thorpej branches: 1.49.2; 1.49.8;
Remove some extern decls for PCI-specific stuff that are private to
the PCI front-end.
 1.48  30-May-2005  christos - add missing const
- fix variable shadowing
- remove unneeded casts
 1.47  27-Feb-2005  perry branches: 1.47.2;
nuke trailing whitespace
 1.46  21-Feb-2005  thorpej Part 1 of a cleanup pass over the SCSI subsystem. The aim is to name
everything "scsi_*", since we really are talking about the SCSI command
set, ATAPI transport not withstanding. Improve the names of many structures,
and prepend "SCSI_" onto all SCSI command opcodes. Place items described
by the SCSI Primary Commands document into scsi_spc.h.
 1.45  21-Apr-2004  itojun branches: 1.45.4; 1.45.6;
avoid unbounded sprintf(), use snprintf()
 1.44  19-Apr-2004  wiz Spell removable with only two es. Inspired by jmc@openbsd.
 1.43  02-Nov-2003  wiz branches: 1.43.2; 1.43.4; 1.43.6;
Fix some typos. From Tom Cosgrove via jmc@openbsd.
 1.42  08-Oct-2003  fvdl Cap the transfer size at MAXPHYS, the driver won't get bigger requests
than that. Allocating 16M per SCB is silly (as pointed out by
Frederick Bruckman).
 1.41  02-Sep-2003  fvdl * Make the ahc and ahd probes more alike.
* Remove some redundant code.
* ahd: Don't initiate negotiation for a discovery xs when the negotiation goal
is set. Just looking at the auto_negotiate mask is enough, and it can
cause an endless loop if the request gets requeued (happens with a
of a PPR negotiation, which ends with a busfree).
 1.40  08-Jul-2003  itojun function prototype must not have variable name
 1.39  14-May-2003  wiz branches: 1.39.2;
summarize with two m.
 1.38  03-May-2003  wiz DMA, not dma nor Dma.
 1.37  21-Apr-2003  fvdl Reset channel(s) in ahc_attach, rather than at first access.
 1.36  20-Apr-2003  fvdl Resurrect change from previous ahc driver version: reset channel (unless
configured not to in the BIOS) on first access.
 1.35  20-Apr-2003  fvdl Fix some AHC_DEBUG printf cases, and undef AHC_DEBUG.
 1.34  20-Apr-2003  fvdl Get rid of AHC_LUN_WILDCARD, making differences with FreeBSD smaller.
 1.33  19-Apr-2003  fvdl Newer adaptec 7xxx driver. Written by Justin Gibbs for FreeBSD. Ported to
NetBSD by Pascal Renauld at Network Storage Solutions, Inc.
Some modifications by me.
 1.32  07-Dec-2002  ichiro delete definition of STAILQ_ENTRY

previous defined sys/sys/queue.h
 1.31  11-Feb-2002  wiz explicitly, with two l.
 1.30  16-Jan-2002  ichiro add detach/activate routine
 1.29  04-Jul-2001  wiz branches: 1.29.2;
Fix typo in comment.
 1.28  30-Apr-2001  lukem delint
 1.27  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.26  05-Feb-2001  chs branches: 1.26.2;
expose the definitions of MIN() and MAX() in sys/param.h to the kernel
and use those in favor of a dozen copies scattered around the source tree.
 1.25  18-Jan-2001  jdolecek constify
 1.24  27-May-2000  fvdl When a bus is accessed for the first time, reset it. Without this,
some devices may not be found if the BIOS (which would normally
do the reset at startup) is disabled. Should really be done from the SCSI
layer.

Implement the SCBUSIORESET ioctl.
 1.23  22-May-2000  fvdl branches: 1.23.2;
Don't try to re-enable tags once they have been disabled because of a
MSG_REJECT from the target. Obey the NOTAG quirk.
 1.22  16-Mar-2000  fvdl Do bus-specific interrupt handling (i.e. ahc_pci_intr) via a bus_intr
field in the softc, instead of relying on NPCI > 0. This would
prevent things from compiling if PCI buses were in the config file,
but ahc was attached only to something else than the PCI bus.
 1.21  15-Mar-2000  fvdl New ahc driver, a port of Justin Gibbs' FreeBSD driver. This adds
support for the U2W chips, and U160 controllers.
 1.20  26-Jan-2000  thorpej Split the code that reads the SEEPROM into its own file.
 1.19  09-Dec-1998  thorpej branches: 1.19.10;
Update for changed scsipi_xfer struct.
 1.18  19-Nov-1998  thorpej Adapt to the new scsipi_adapter interface.
 1.17  22-Jun-1998  sommerfe defopt a bunch of AHC specific options
 1.16  16-Apr-1998  leo Use a stream method for AHC_OUTSL when possible.
 1.15  16-Mar-1998  leo Use bus-dma functions.
 1.14  27-Aug-1997  bouyer 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.13  10-Apr-1997  cgd branches: 1.13.2; 1.13.4;
clean these up (mostly rename bus_space_{tag,handle}_t variables) so that
this code makes equal sense for memory and I/O space, prefer to map
the PCI front end via memory space (conditionalized on a patchable kernel
variable), and do a bit of other random NetBSD-specific cleanup. (These
changes were sent to Justin Gibbs on March 28.)
 1.12  13-Mar-1997  cgd fixes from Matt Jacob so that these can compile and run on the Alpha.
(aic7xxx has been tested and works on the Alpha, bha has not yet been
tested on thne Alpha.)
 1.11  02-Dec-1996  thorpej Implement a simple scsi xfer queue to avoid presenting a resource
shortage to the upper scsi layers, which don't (yet) deal well with
resource shortages.
 1.10  21-Oct-1996  thorpej New bus.h implementation/interface:
- No more distinction between i/o-mapped and memory-mapped
devices. It's all "bus space" now, and space tags
differentiate the space with finer grain than the
bus chipset tag.
- Add memory barrier methods.
- Implement space alloc/free methods.
- Implement region read/write methods (like memcpy to/from
bus space).
This interface provides a better abstraction for dealing with
machine-independent chipset drivers.
 1.9  08-Oct-1996  gibbs dev/microcode/aic7xxx/aic7xxx.seq,
dev/microcode/aic7xxx_seq.h,
dev/ic/aic7xxxreg.h:
Remove intrinsic knowledge about SDTR and WDTR messages and replace it
with a generic message system that allows the kernel driver to handle
SDTR, WDTR and any other type of extended message it chooses too. This
makes the sequencer code much simpler, makes extended message handling
debuggable since the bulk of the work is in the kernel driver, and saves
lots of instruction space.

Regen microcode header file.

dev/ic/aic7xxx.c, dev/ic/aic7xxxvar.h:
Add code to handle WDTR and SDTR negotiation in light of the changes in
the message interface to the sequencer. Don't reject targets that
negotiate async by sending an SDTR with a 0 offset. Use an sdtr message
with 0,0 to negotiate async when a target suggests a period that is too
long for us to handle. Some tape and cdrom drives don't like us doing
the message reject that we did in the past.

Fix a problem with handing the QUEUE FULL condition.

Fix a race condition (most likely the cause of the SCB paging problems) that
might allow the sequencer to get unpaused before the condition that caused
it to be paused (a SEQINT) was handled.

Race condition pointed out by Doug Ledford <dledford@dialnet.net> and
by "Dan Willis" <dan@plutotech.com>.

dev/pci/ahc_pci.c:
Add support for the 2940AU, an aic7860 based controller.

dev/pci/pcidevs.h, dev/pci/pcidevs_data.h:
Add product IDs for the 2940AU, aic7860 and aic7855.

Regen data file.

scsi/scsi_message.h:
Add MSG_EXT_SDTR_LEN and MSG_EXT_WDTR_LEN - the length of bytes in these
extended messages.

Thanks to Chuck Cranor <chuck@maria.wustl.edu> for testing these changes
out for me.
 1.8  10-Jul-1996  explorer Updates to aic7xxx driver ; from pr port-i386/2600
 1.7  20-May-1996  thorpej branches: 1.7.4;
RCS Id police.
 1.6  16-May-1996  mycroft Replace STAILQ with SIMPLEQ.
 1.5  16-May-1996  mycroft Replace STAILQ with SIMPLEQ.
 1.4  16-May-1996  mycroft New version, with changes from Justin Gibbs and Noriyuki Soda.
 1.3  29-Mar-1996  mycroft Eliminate random warnings.
 1.2  14-Mar-1996  cgd RCS Id police
 1.1  09-Oct-1995  mycroft Add an Adaptec 2940 driver, by John Aycock and Justin Gibbs, ported to NetBSD by Stefan
Grefen, with several bug fixes by me.
 1.7.4.2  04-Mar-1997  mycroft Pull up latest ahc driver. Fixes several bugs.
 1.7.4.1  18-Jul-1996  jtc Pulled up from rev 1.8, ahc fixes
 1.13.4.1  27-Aug-1997  thorpej Update marc-pcmcia branch from trunk.
 1.13.2.1  01-Jul-1997  bouyer Updates for new scsipi subsystem. Actally known to work on i386 and sparc.
 1.19.10.6  25-Apr-2001  bouyer Revert back to starting sync/wide negotiation at the first command,
instead of waiting for ADAPTER_REQ_XFER_MODE: as the BIOS may have
negotiated sync/wide, and we don't reset the channel, all async/narrow
xfers would fail until the channel is reset.
 1.19.10.5  02-Apr-2001  bouyer Second part of port to thorpej_scsipi: use ADAPTER_REQ_SET_XFER_MODE to start
sync/wide nego and use tagged queuing; report modes to upper level via
scsipi_async_event().
 1.19.10.4  02-Apr-2001  bouyer Port to thorpej_scsipi, first pass. Doesn't handle ADAPTER_REQ_SET_XFER_MODE
and doesn't report its xfer mode yet, so tagged queuing isn't used yet.
 1.19.10.3  11-Feb-2001  bouyer Sync with HEAD.
 1.19.10.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.19.10.1  19-Oct-1999  thorpej Adapt to scsipi API changes.
 1.23.2.1  22-Jun-2000  minoura Sync w/ netbsd-1-5-base.
 1.26.2.4  11-Dec-2002  thorpej Sync with HEAD.
 1.26.2.3  28-Feb-2002  nathanw Catch up to -current.
 1.26.2.2  24-Aug-2001  nathanw Catch up with -current.
 1.26.2.1  21-Jun-2001  nathanw Catch up to -current.
 1.29.2.2  16-Mar-2002  jdolecek Catch up with -current.
 1.29.2.1  11-Feb-2002  jdolecek Sync w/ -current.
 1.39.2.6  11-Dec-2005  christos Sync with head.
 1.39.2.5  10-Nov-2005  skrll Sync with HEAD. Here we go again...
 1.39.2.4  04-Mar-2005  skrll Sync with HEAD.

Hi Perry!
 1.39.2.3  21-Sep-2004  skrll Fix the sync with head I botched.
 1.39.2.2  18-Sep-2004  skrll Sync with HEAD.
 1.39.2.1  03-Aug-2004  skrll Sync with HEAD
 1.43.6.1  16-Dec-2005  jmc Pullup rev 1.50 (requested by bouyer in ticket #10177)

Don't call alloc_scb() (which can call bus_dmamem_alloc/map) from
ADAPTER_REQ_RUN_XFER context (which can be interrupt context), defer this
to the ADAPTER_REQ_GROW_RESOURCES callback. Fixes a panic in uvm.
 1.43.4.1  16-Dec-2005  jmc Pullup rev 1.50 (requested by bouyer in ticket #10177)

Don't call alloc_scb() (which can call bus_dmamem_alloc/map) from
ADAPTER_REQ_RUN_XFER context (which can be interrupt context), defer this
to the ADAPTER_REQ_GROW_RESOURCES callback. Fixes a panic in uvm.
 1.43.2.1  16-Dec-2005  jmc Pullup rev 1.50 (requested by bouyer in ticket #10177)

Don't call alloc_scb() (which can call bus_dmamem_alloc/map) from
ADAPTER_REQ_RUN_XFER context (which can be interrupt context), defer this
to the ADAPTER_REQ_GROW_RESOURCES callback. Fixes a panic in uvm.
 1.45.6.1  19-Mar-2005  yamt sync with head. xen and whitespace. xen part is not finished.
 1.45.4.1  29-Apr-2005  kent sync with -current
 1.47.2.1  29-Nov-2005  tron Pull up following revision(s) (requested by bouyer in ticket #1014):
sys/dev/ic/aic7xxx.c: revision 1.117
sys/dev/ic/aic79xxvar.h: revision 1.20
sys/dev/ic/aic79xx_osm.c: revision 1.13
sys/dev/ic/aic7xxx_inline.h: revision 1.7
sys/dev/ic/aic79xx.c: revision 1.32
sys/dev/ic/aic7xxx_osm.c: revision 1.19
sys/dev/ic/aic7xxxvar.h: revision 1.50
Don't call alloc_scb() (which can call bus_dmamem_alloc/map) from
ADAPTER_REQ_RUN_XFER context (which can be interrupt context), defer this
to the ADAPTER_REQ_GROW_RESOURCES callback.
Fix a panic in uvm reported by John R. Shannon on port-xen; patch tested on
ahc by me and on ahd by John.
 1.49.8.1  29-Nov-2005  yamt sync with head.
 1.49.2.3  27-Feb-2008  yamt sync with head.
 1.49.2.2  04-Feb-2008  yamt sync with head.
 1.49.2.1  21-Jun-2006  yamt sync with head.
 1.50.10.2  11-May-2006  elad sync with head
 1.50.10.1  19-Apr-2006  elad sync with head.
 1.50.8.2  24-May-2006  yamt sync with head.
 1.50.8.1  01-Apr-2006  yamt sync with head.
 1.50.6.2  01-Jun-2006  kardel Sync with head.
 1.50.6.1  22-Apr-2006  simonb Sync with head.
 1.50.4.1  09-Sep-2006  rpaulo sync with head
 1.51.2.1  24-May-2006  tron Merge 2006-05-24 NetBSD-current into the "peter-altq" branch.
 1.53.40.1  18-Feb-2008  mjf Sync with HEAD.
 1.53.34.1  23-Mar-2008  matt sync with HEAD
 1.55.24.1  13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.55.10.1  16-May-2009  yamt sync with head

RSS XML Feed