Commit Graph

12 Commits

Author SHA1 Message Date
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
thorpej 5f0577babc Adapt to the new scsipi_adapter interface. 1998-11-19 21:43: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
briggs 37163421a3 Prototype for -Wall -Wstrict-prototypes -Wmissing-prototypes -Wno-uninitialized
Also change the device probing scheme to use something a bit more rational.
A current side-effect is that nubus cards are double-mapped.  I expect
to fix that shortly.
Also change splclock() to block everything but serial hardware interrupts.
1996-05-05 06:15:56 +00:00
briggs ab3f741911 Update to latest Atari driver, but with some local modifications. 1996-02-19 02:51:03 +00:00
briggs 2a878c9a3a Move debugging defines, etc. into mac68k5380.c and use them instead of
something similar but different.  Make a few cosmetic changes.
1996-02-03 23:17:53 +00:00
briggs 405ac4248f Fix from Paul Goyette to disable linked commands on drives that
reject them for simple commands.  Leo W. reports that this does
not work for some systems.  It's better than what we have now,
though.  From Paul Goyette <paul@pgoyette.bdt.com>.
1995-12-13 03:48:07 +00:00
briggs 76b94759a1 Fix from Paul Goyette (paul@pgoyette.bdt.com) for drives that don't grok
linked commands.
1995-12-04 02:10:44 +00:00
briggs d510375b06 Change to allow nack_message() to take an argument and send
MSG_REJECT_MESSAGE instead of MSG_ABORT when we get an extended message.
This allows a DEC drive to work when it attempts to negotiate synch.
transfers on us.
1995-10-02 09:03:53 +00:00
briggs 048e948791 As Leo pointed out, my last change was not safe. This one should be.
I added two new bitfields to ncr_softc.  They flag which devices have
been selected, and which ones have failed to go to message out when
selected with ATN.  If a target fails to go to message out the first
time it is selected, it goes into the latter bitfield.  If it fails
thereafter, we treat it as we did before.
1995-09-15 01:52:18 +00:00
briggs 639f90ef6e Update from Leo's changes. 1995-09-12 21:05:58 +00:00
briggs 166af00381 Make a local copy of the atari m.i. scsi driver sources for the time
being.  Some people aren't supping arch/atari and this allows those
people to get the sources.
1995-09-03 03:36:35 +00:00