Commit Graph

79 Commits

Author SHA1 Message Date
leo
d3febbb5aa Do endian swaps where appropriate. This is currently dependent on 'BYTE_ORDER'
since the driver only supports little endian busses.
1998-04-16 07:12:43 +00:00
leo
d2551d5b3f Use bus-dma functions. 1998-03-16 15:36:17 +00:00
thorpej
095c4c092d Adjust for config changes. 1998-01-12 09:23:08 +00:00
jtk
827918e4ab fix warnings when -DAHC_DEBUG 1997-10-09 02:17:36 +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
thorpej
da1b5f9021 It's perfectly normal for an older (e.g. pre SCSI-2) device to send
MESSAGE_REJECT in response to SDTR or WDTR.  Because of this, the
printfs that indicate refusal of sync/wide negotiation are unneeded
in normal operation.  In the __NetBSD__ case, disable them by default.
They, like the other extra-verbose ahc driver boot messages, may be
reenabled with "options DEBUG".  The behavior in the !__NetBSD__ case
is unchanged.
1997-06-09 01:51:03 +00:00
cgd
db0f072019 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.)
1997-04-10 02:48:38 +00:00
cgd
4c654c0acf 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.)
1997-03-13 00:38:48 +00:00
mikel
a71e39e5d5 fix some spelling errors noticed by Charles Kane <ckane@mipos2.intel.com>.
fix some more noticed by myself; all are in comments or strings.
1997-03-09 06:10:32 +00:00
mikel
2af30c1cd3 make sure max_target is initialized for both buses on multibus parts;
from Anders Hjalmarsson in PR 3103.
1997-02-20 05:15:50 +00:00
thorpej
d502e68402 Fill in sc_link.max_target 1996-12-10 21:27:16 +00:00
thorpej
7d4d4753a8 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.
1996-12-02 19:06:41 +00:00
thorpej
16c4c5af26 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.
1996-10-21 22:24:37 +00:00
christos
86373f8cf9 backout kprintf changes 1996-10-13 01:37:04 +00:00
christos
ea39989829 - printf -> kprintf, sprintf -> ksprintf
- add an #ifdef FreeBSD for an unused variable
1996-10-10 20:00:59 +00:00
gibbs
b9c06e6fa3 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.
1996-10-08 03:04:02 +00:00
thorpej
c4366945e5 Quiet the ahc driver down a bit by only enabling some of less useful
messages #if defined(DEBUG) in the NetBSD case.
1996-08-28 23:39:40 +00:00
cgd
71ad30d0e9 (1) set scsi_link channel to either the appropriate channel (if a
multi-channel driver), or to SCSI_CHANNEL_ONLY_ONE if a
    single-channel driver.
(2) use scsiprint() rather than a locally-defined autoconfig print
    function, and kill any locally-defined print function.
1996-08-28 18:59:15 +00:00
cgd
2a73ef60b7 change cfprint_t type definition to take a const char *, rather than
a char *, because that's what was really intended, and because
if the print function modifies the string, various things could become
unhappy (so the string should _not_ be modified).
1996-08-27 21:53:46 +00:00
mycroft
ef186dd501 Look for the sequencer code in the right place. 1996-08-10 08:45:17 +00:00
explorer
c62a6661a1 Updates to aic7xxx driver ; from pr port-i386/2600 1996-07-10 22:50:44 +00:00
thorpej
722d0da592 RCS Id police. 1996-05-20 00:56:39 +00:00
mycroft
f636c54f70 Replace STAILQ with SIMPLEQ. 1996-05-16 05:20:23 +00:00
mycroft
117bb8ae8b New version, with changes from Justin Gibbs and Noriyuki Soda. 1996-05-16 03:59:03 +00:00
mycroft
fc8683fbaa Eliminate random warnings. 1996-03-29 00:24:58 +00:00
mycroft
15fd04d5a4 Really implement ahcprint(). 1996-03-28 22:39:08 +00:00
cgd
5a1e1bb682 don't need isa/isareg.h or pci/pci{reg,var}.h. 1996-02-25 22:56:30 +00:00
thorpej
e422ebca1a Add the "ahe" driver, autoconfiguration support for the aic7xxx-based
Adaptec 2[78]4x SCSI controllers, from Michael Graff <explorer@flame.org>.
Fixes PR #1594 from Noriyuki Soda <soda@sra.co.jp> in a different way.
1996-01-13 02:05:14 +00:00
mycroft
b216bead49 Add an Adaptec 2940 driver, by John Aycock and Justin Gibbs, ported to NetBSD by Stefan
Grefen, with several bug fixes by me.
1995-10-09 09:49:30 +00:00