Commit Graph

32 Commits

Author SHA1 Message Date
provos 0f09ed48a5 remove trailing \n in panic(). approved perry. 2002-09-27 15:35:29 +00:00
lukem a4bae8b066 add/cleanup RCSID 2001-11-13 13:14:31 +00:00
thorpej 623f83a793 Use BUS_DMA_READ and BUS_DMA_WRITE in some obvious places. 2001-07-19 16:25:23 +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
ad d54c705158 Missing splx(). From OpenBSD. 2001-03-25 14:48:28 +00:00
briggs 0828a1bcd0 Make this work on a PowerPC system:
- Load the DMA address a byte at a time, and
 - Use bus_space_read_stream_2() instead of bus_space_read_2() when reading
   the byte-stream of configuration data from the card.

Sanity-checked on both i386 and sandpoint.  Reviewed by ad.
2001-03-10 13:30:55 +00:00
thorpej fd7ed72be1 Add BUS_DMA_STREAMING to data transfer maps. 2001-03-07 23:07:12 +00:00
cgd c105346203 Avoid sequence point issues. 2001-02-24 00:03:12 +00:00
thorpej 275539f03c NBPG -> PAGE_SIZE 2000-11-14 18:21:00 +00:00
ad 7d1b0e5b39 Use device_lookup() and ditch TAILQ sillyness. 2000-07-18 15:27:44 +00:00
ad 3553879fc2 Use my proper name. 2000-06-13 13:36:42 +00:00
ad afaa5767a3 Match shutdown msg with that of cac.c. 2000-03-16 15:13:05 +00:00
ad c09a9a072f Oops, pasto. 2000-02-29 11:14:46 +00:00
ad 50062f0914 - Don't use bitfields.
- Cosmetic changes.
- Shut down all HBAs "simultaneously", not individually.
- Don't bother grokking HA_ST_MORE. It causes problems.
- Other bits and pieces.
2000-02-24 18:47:55 +00:00
thorpej 1268cc5d6c If we got an xfer from our backlog queue, don't allow sleeping; we're in
interrupt context.

XXX This is fixed properly in the thorpej_scsipi branch, but that won't
be ready for 1.5, I don't think.
2000-02-12 19:12:52 +00:00
ad d2d4da8b08 Be consistant when printing haHHBA status. 2000-01-16 14:08:42 +00:00
ad c02df4a16e Typo. Don't worry, nothing that will cause system instability or data
corruption.
2000-01-15 18:13:22 +00:00
ad d2d9ade964 Validate EATA signature in returned EATA configuration data before anything
else. More proper than important.
2000-01-15 18:10:32 +00:00
ad 6d88cc0622 - Make sense out of comment on dpt_wait().
- Trivial streamlining of logic in dpt_poll().
2000-01-01 19:56:59 +00:00
ad 4763c00196 - Don't use our own private endian conversion cruft (from OpenBSD).
- SmartRAID V is not and will never be an EATA board (from OpenBSD).
- Use dpt_outl() when issuing EATA command packet address to HBA.
- Fix a style nit.
- Fix a typo.
1999-11-29 15:04:23 +00:00
ad fd992c5320 Prepare a little for the addition of an interface to user-space. 1999-10-23 16:26:32 +00:00
ad b3e97ca54b Nuke some silliness. 1999-10-20 12:27:38 +00:00
ad eccc3630ec DPT_MORE_TIMEOUT was scaled wrong. 1999-10-20 11:54:10 +00:00
ad 675c12dbcb - Don't get stalled by a bogus HA_ST_MORE condition.
- Don't trust HA_ST_MORE again if the above situation occurs.
- Nuke bitfields in 'struct eata_sp'.
- Don't bother using scatter-gather if DMA map contains only 1 segment.
- Return TRY_AGAIN_LATER and not COMPLETE if an EATA command times out.
- Check SCSI status in dpt_inquire(), not just HBA status.
- Some cosmetic changes and sanity checks.
1999-10-19 20:16:48 +00:00
thorpej da257060f5 Avoid silly namespace collision w/ some Alpha signal-related variables. 1999-10-04 23:57:32 +00:00
ad e8d7fe2144 - Save SCSI status in the request.
- In dpt_intr(), if no interrupt is signalled but the HBA has indicated
  that more data will be available soon (HA_ST_MORE), save a context switch
  and wait for the data.
1999-10-01 12:20:12 +00:00
thorpej 63b8530b4e Update for SCSPI changes. 1999-09-30 23:04:39 +00:00
ad 19bd684e8a - Remove a couple of items from the TODO list.
- Add a debug check to dpt_poll() (CCB must have CCB_PRIVATE set).
1999-09-30 17:15:54 +00:00
ad f6e42db75a - Move initial reset code into dpt_readcfg()
- Bus specific front-end is now responsible for reading EATA configuration
- EATA configuration data is now saved in the softc
- Make synchronous writes work properly
- Don't ignore HBA timeouts in dpt_cmd()
- Prefix eata_cfg's members with `ec_', not `dc_'
1999-09-29 17:33:02 +00:00
ad 9876b8900e - Fix some comments.
- Synchronous writes musn't linger in the HBA's cache.
1999-09-28 23:39:14 +00:00
ad 21a6ff6082 - Wait up to 2 seconds for HBA ready before executing CP_PIO_GETCFG
- Remove some unneeded memset() calls and assignments
- Fix comment on dpt_done_ccb()
1999-09-28 09:18:00 +00:00
ad 48a0b6237a A driver for DPT EATA SCSI adapters. dpt.c contains a brief TODO list. 1999-09-27 23:41:47 +00:00