Commit Graph

54 Commits

Author SHA1 Message Date
tsutsui c67601b868 Whitespace nits. 2009-09-07 13:31:44 +00:00
tsutsui 531b631d68 Some backends may use ncr53c9x_abort(), so remove static declaration from
the function and explicitly declare it in ncr53c9xvar.h.  Noticed by he@.
2009-09-02 10:34:04 +00:00
cegger 529e91fca1 struct device * -> device_t, no functional changes intended. 2009-05-12 14:16:35 +00:00
martin ce099b4099 Remove clause 3 and 4 from TNF licenses 2008-04-28 20:22:51 +00:00
tsutsui 78a1d236b6 Split device_t/softc for MI ncr53c9x and some related devices,
with various cleanup.
2008-04-13 04:55:52 +00:00
ad 0664a0459b Start detangling lock.h from intr.h. This is likely to cause short term
breakage, but the mess of dependencies has been regularly breaking the
build recently anyhow.
2008-01-04 21:17:40 +00:00
christos 53524e44ef Kill caddr_t; there will be some MI fallout, but it will be fixed shortly. 2007-03-04 05:59:00 +00:00
christos 95e1ffb156 merge ktrace-lwp. 2005-12-11 12:16:03 +00:00
perry 18db93c7f6 de-__P 2005-02-04 02:10:35 +00:00
thorpej d5083f78be Use "struct scsipi_command" in internal command structures so that
we have enough space for 16-byte CDBs.
2004-12-07 22:23:45 +00:00
mycroft 96221eb572 Constify. 2004-08-10 19:12:25 +00:00
wiz c5670263e0 Fix some typos. From Tom Cosgrove via jmc@openbsd. 2003-11-02 11:07:44 +00:00
pk 3592333cbb #include <sys/lock.h> 2003-03-24 14:46:00 +00:00
pk 557a5199d2 Make this driver MP-safe by using a single spin lock to guard all its entrances. 2003-02-04 20:05:11 +00:00
matt 5d09a84558 Add multiple inclusion protection. 2003-01-06 21:02:18 +00:00
petrov a1d708ab63 Correct typo in comment(pointed by john heasley <heas@shrubbery.net>). 2002-10-22 17:58:45 +00:00
mycroft 04f09a4b0c Additional fixes to make 16 targets work on FAS366. 2002-09-25 05:19:20 +00:00
petrov a413e88543 Accept WDTR from device(based on John Heasley patch for SCSI3 drive).
Do not define NCR53C9X_DEBUG.
2002-08-26 06:23:32 +00:00
petrov 584ece2d73 Dispose unused tinfo flags. 2002-08-26 05:14:47 +00:00
jdolecek 08733c9d51 add NCR_VARIANT_NCR53C90_86C01 "NCR53C90 (86C01)"
treat exactly like NCR_VARIANT_ESP100
2001-12-03 23:27:31 +00:00
perry 7a702dcf66 trivially rename some macro parameters to avoid lint warnings. 2001-11-10 22:48:09 +00:00
bouyer 937a7a3ed9 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
2001-04-25 17:53:04 +00:00
tsutsui 64eed5859d Clean up ncr53c9x_select():
- Define NCR_F_SELATN3 for sc_features and use it to check if the chip
  supports SELATN3 command
- Make conditions of sending messages a bit simpler.
2001-04-21 05:35:20 +00:00
petrov b0605f71d5 fas support added 2001-03-29 02:58:38 +00:00
eeh 905ef1b7fa Use the SCSIACCEL ioctl() to turn on TAG QUEUEs. 2001-01-19 23:04:23 +00:00
eeh d1ab475964 Make the driver negotiate sync again and remove some (hopefully) superfluous
DELAY()s.
2000-12-20 03:19:34 +00:00
eeh 519aef8cf4 Make sure bits in the flags are disjoint. 2000-12-17 06:18:21 +00:00
pk 58b6f2ef7d KNF patrol && De-__P(). 2000-11-30 23:06:44 +00:00
eeh 9e7aa98aa6 Add TAG QUEUE support to the ncr53c9x driver. 2000-11-30 00:19:25 +00:00
pk 4c54ce2034 Define ncr53c9x_ioctl() and use it to start sync negotiation. 2000-11-13 15:24:22 +00:00
nisimura 4371d91433 Have MI ncr53c9x_attach() the 2nd and 3rd arguments for scsipi_adater
and scsipi_device respectively, with size reduction of ncr53c9x_softc.
Specifying NULL instructs the driver to use default adapter and default
device codes. Every target port has ncr53c9x_attach(sc, NULL, NULL) anyway.
2000-06-05 07:59:50 +00:00
simonb bfb011b813 Remove duplicate ncr53c9x_dmaselect declaration. 2000-03-29 03:03:28 +00:00
mycroft b8e1812629 For the ESP406/FAS408, add sc_cfg4 and sc_cfg5.
Add a detach routine, and do the addref/delref.
2000-03-19 21:25:49 +00:00
mycroft 744ccf496c Expose ncr53c9x_init(). 2000-03-18 22:18:57 +00:00
mycroft c0b35f72c2 Adjust ncr53c9x_intr() prototype. 2000-03-18 22:09:32 +00:00
nisimura ddd5fcbf66 Remove tinfo_t symbols which result in never used global common variables. 2000-01-07 08:12:15 +00:00
mhitch 636de81487 Define config register 3 values for NCR53C9x/FAS216.
Add sc_cfg3_fscsi to the softc and use it to set the chip into Fast SCSI
mode for the chips that use it.
1999-09-22 03:31:23 +00:00
thorpej 71c86e3e92 Changes to NCR53c9x driver necessary to add support for the AMD Am53c974
PCscsi-PCI SCSI controller.  From Izumi Tsutsui, PR #6654.
1999-01-06 19:19:38 +00:00
thorpej 5f0577babc Adapt to the new scsipi_adapter interface. 1998-11-19 21:43:00 +00:00
pk 380e88d4f0 Adjust some comments. 1998-09-01 22:56:00 +00:00
jeremy 6693724a83 Changed inaccurate comment on the sc_freq member of the driver's softc
structure.  The frequency is represented in MHz rather than Hz. [PR/6805]
1998-09-01 22:22:03 +00:00
thorpej 5442fd5420 If we have an NCR53CF9x (indicated by the front-end by setting a flag
in the softc's new "features" word), set FSCSI bit in CFG3 if the sync
period is <= 200ns, or clear it otherwise.
1998-05-26 23:17:34 +00:00
pk 0d3d41fa21 Allocate SCSI message buffers in ncr53c9x_attach(), with a provision
for front-ends to override the allocation to avoid alignment
handling in their DMA engines. Note that that ncr53c9x_msgout()
can request a 1 byte DMA transfer that would be difficult to break up.
1998-05-04 11:11:24 +00:00
thorpej 616e0b7e33 Copyright assigned to The NetBSD Foundation. 1997-10-05 18:26:38 +00:00
mhitch d2f48f6b3e Add yet another chip variant: FAS216, used by the amiga Phase5 SCSI boards. 1997-10-04 03:59:00 +00:00
bouyer 6f3bab1f59 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.
1997-08-27 11:22:52 +00:00
pk 09109c38a1 Maintain a copy of the configuration flags in our `softc'. 1997-07-30 11:48:32 +00:00
pk a4ae679706 Declare `ncr53c9x_dmaselect'. 1997-07-20 16:24:00 +00:00
pk 31b943b8ac Preliminary support for ESP406 and FAS408 variants (from Eric Hvodza; PR#3559) 1997-05-01 22:16:24 +00:00
pk 94eaf1bb04 Implement target selection using DMA.
To allow a period of testing the variable `ncr53c9x_dmaselect' is used to
enable this feature (default is 0, i.e. the old behaviour).
1997-04-27 22:08:51 +00:00