Commit Graph

71 Commits

Author SHA1 Message Date
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
briggs 9a73f8b22b Make _sure_ that we do not use selatn3 when it is not present. Fixes a
problem on pmax reported by Izumi Tsutsui.  Tested also on alpha and mac68k.
2000-12-20 15:49:03 +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
pk c6bd81f8a6 Fix reversed logic when setting setting sync-negotiation ability flag 2000-12-19 14:08:17 +00:00
briggs 7ea0edc288 If the target rejects a tag message, turn off tagged transfers for that target.
Also, adjust message/command construction in ncr53c9x_select() to work no
matter how the structure alignment works out (needed at least for m68k).
Tested by me on mac68k & alpha, and sanity-checked by eeh.
2000-12-18 23:39:44 +00:00
briggs d25ab824c8 Back out previous change. It appears to be in error. There is something
else that is causing the esp driver on the mac68k to fail miserably.
2000-12-17 04:38:29 +00:00
briggs 0debc0e91e At least the 53c96 does not work with the selatn3 command. Disable it
for both the 53c94 and 53c96.  This also addresses PR port-mac68k/11716.
2000-12-17 03:29:03 +00:00
eeh af770220fa Fix for chips that don't grok NCRCMD_SELATN3. 2000-12-10 19:25:07 +00:00
fvdl d26269e0a6 'error' was not initialized in the _ioctl function, potentially returning
!= 0 values in the non-error case.
2000-12-04 11:18:49 +00:00
eeh 03e0f9950a Fix bug in non-dma select code i added. 2000-12-03 23:25:24 +00:00
augustss a51ea43fd6 Make this compile again (on i386). 2000-12-01 04:37:54 +00:00
pk d736ce5086 We don't need <sys/proc.h>, <sys/user.h> and <machine/cpu.h>. 2000-11-30 23:21:39 +00:00
pk 55fa60c3e5 De-__P(). 2000-11-30 23:12:43 +00:00
pk 03903e1da8 KNF patrol. 2000-11-30 23:01:03 +00:00
thorpej 64222ad03a Fix some printf formats, and remove SPARC-specific debugging stuff. 2000-11-30 14:41:46 +00:00
pk 7006bcd449 Fix two cases of reversed arguments to printf(); 2000-11-30 09:58:03 +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 0c92b006c6 Fix negative timeout symptoms caused by integer multiply overflow,
which is revealed with larger HZ systems like NetBSD/pmax (256Hz)
and NetBSD/alpha (1024Hz) as reported by PR#8645.  Polled tape
drive access is done with maximum 6 hour timeout which ended up
with negative time and then confused SCSI bus severely.
2000-07-04 01:10:18 +00:00
tsutsui a12331c461 Oops, struct scsipi_adapter was changed recently. 2000-06-05 15:19:42 +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
tsutsui c693409acb Nuke register declarations. 2000-03-29 13:57:51 +00:00
thorpej fc96443d15 New callout mechanism with two major improvements over the old
timeout()/untimeout() API:
- Clients supply callout handle storage, thus eliminating problems of
  resource allocation.
- Insertion and removal of callouts is constant time, important as
  this facility is used quite a lot in the kernel.

The old timeout()/untimeout() API has been removed from the kernel.
2000-03-23 07:01:25 +00:00
mycroft b58a073f39 There's no need to frob cfg4/cfg5 in _attach(), since _reset() does it. 2000-03-22 03:27:56 +00:00
tsutsui 979d79d931 Use sc_cfg4 for the Am53c974. 2000-03-20 05:48:28 +00:00
mycroft 41cd6b4fc9 Reset CFG4 and CFG5 correctly in the reset routine. 2000-03-20 00:49:42 +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
matt 9f86839658 change Mb/s to MB/s (Megabit to megabyte). 2000-03-09 23:19:26 +00:00
pk 855fe23671 Prevent possible wayward loop. 2000-01-25 09:30:00 +00:00
mycroft f8934aa2f6 Modification to the previous:
We still have to preload the command, when selecting without ATN.  (We could
probably avoid this by being more careful in the interrupt handler...)
1999-11-10 05:02:53 +00:00
mycroft 58fec0d55a When sending a REQUEST SENSE, do *not* attempt to create an I_T_L nexus. This
is technically wrong, and some targets (like my 4x NEC CD-ROM drive) misbehave
when we do.
1999-11-10 04:21:30 +00:00
mycroft 5b75863870 A residual after select with DMA step 2 is legitimate (in fact, *not* having a
residual would probably be cause for concern), so don't spew about it.
1999-11-10 00:42:37 +00:00
thorpej 63b8530b4e Update for SCSPI changes. 1999-09-30 23:04:39 +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 1ab6db8e5f Fix printf format problems on Alpha. 1999-02-12 00:50:09 +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
mjacob 74bc9f26d5 Update HBAs to incorporate the new max_lun property. 1998-12-05 19:43:33 +00:00
pk adbfb3777a Update previous: we don't have the required information all the time. 1998-11-30 07:54:29 +00:00
pk 0f8cfb66f0 Some more misc. cleanup in the same style as previous. 1998-11-30 07:44:24 +00:00
pk 9860d69b7e Announce negotiation of async mode consistently (Soren Jorvang; PR#6512) 1998-11-30 07:34:06 +00:00
thorpej 5f0577babc Adapt to the new scsipi_adapter interface. 1998-11-19 21:43:00 +00:00
mycroft 62b1bf3e2e Assign my copyrights to TNF. 1998-08-15 10:51:16 +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 6ba2c64ae6 Eliminate the degenerate loop in `ncr53c9x_intr()'. Retain the delay heuristic
it implemented under the label `shortcut:' and only use it in these
cases: (1) after successful re-relection, (2) after receiving command-complete
status, and (3) during message-in handshake.
1998-05-04 14:47:48 +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
pk f3ee364e31 * Make sure the `ECB_NEXUS' flag accurately reflects the existence of
an initiator/target nexus and thus mark the correct queue (if any) a
  command is on.

* If a disconnected command times out, just leave it on the nexus queue
  and do nothing (for now). I need yet to decide on the strategy to
  follow in this case.  Note: we used to move the command to the `ready'
  queue and then do nothing, which is worse.
1998-01-31 23:37:51 +00:00
pk 09559070f7 * Do not remove ATN from the scsi bus if we have no messages queued but
the target still is in MSG OUT phase. We still send a message (a NO_OP)
  in this case and the chip will remove ATN at the appropriate time.
  Using the RSTATN command here induces a "illegal command" in some
  chip revisions.

  This situation only occurs if the target rejects a previous (multi-byte)
  message early (by switching to MESSAGE IN and sending a MESSAGE REJECT)
  before the chip has completed the entire MSG OUT transfer. ATN will
  remain asserted, and the target returns to MESSAGE OUT phase.

* Account for the events above when reporting "DMA not completed"
  diagnostic messages.

* Stream-line the selection code a bit, and make the DMA setup code
  more like the MSG OUT & DATA XFER setup.
1998-01-24 15:33:35 +00:00