Home | History | Annotate | Download | only in obio
History log of /src/sys/arch/mipsco/obio/asc.c
RevisionDateAuthorComments
 1.24  20-Dec-2023  thorpej Remove unnecessary <sys/malloc.h>.
 1.23  03-May-2022  andvar fix various typos, mainly s/trasfering/transferring/ and s/theese/these/.
 1.22  28-Apr-2008  martin Remove clause 3 and 4 from TNF licenses
 1.21  13-Apr-2008  tsutsui branches: 1.21.2; 1.21.4;
Split device_t/softc for MI ncr53c9x and some related devices,
with various cleanup.
 1.20  07-Mar-2007  he branches: 1.20.40;
Fix typo on previous.
 1.19  07-Mar-2007  he Cast to char* before doing pointer arithmetic.
 1.18  04-Mar-2007  christos Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
 1.17  24-Dec-2005  perry branches: 1.17.26;
Remove leading __ from __(const|inline|signed|volatile) -- it is obsolete.
 1.16  11-Dec-2005  christos merge ktrace-lwp.
 1.15  15-Jul-2003  lukem branches: 1.15.16;
__KERNEL_RCSID()
 1.14  03-May-2003  wiz branches: 1.14.2;
DMA, not dma nor Dma.
 1.13  02-Apr-2003  thorpej Use PAGE_SIZE rather than NBPG.
 1.12  02-Oct-2002  thorpej Use CFATTACH_DECL().
 1.11  27-Sep-2002  thorpej Declare all cfattach structures const.
 1.10  15-Dec-2001  wdk Add bus_dmamap_sync for pre-read and pre-write case. This was previously
left out as it was a no-op on the R3000 processor. However, recent changes
to the Mips cache ops highlighted we should DTRT in case the MI/MD layer
choses to invalidate the cache ahead of the DMA instead of after it.
 1.9  25-Apr-2001  bouyer branches: 1.9.2; 1.9.8;
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
 1.8  30-Mar-2001  wdk Remove ncr53c9x_dmaselect
 1.7  05-Mar-2001  wdk branches: 1.7.2;
- Add "Features Enable" and CDB bits to SCSI controller config

- During un-aligned writes: Don't accidently leave the DMA engine active
after priming the FIFO between calls to asc_dma_setup and asc_dma_go
 1.6  03-Dec-2000  matt Deal with -Wstrict-prototypes -Wmissing-prototypes
 1.5  04-Sep-2000  wdk branches: 1.5.2;
* Use bus_space_write_multi_2 for priming the DMA FIFO as suggested by cgd

* Correctly handle transfer pad operation

* Remove check for DMA fifo flush during DMA chaining - after considerable
thought this is not required
 1.4  29-Aug-2000  wdk Fix an obscure bug with dump corrupting files during raw reads.

If the DMA chaning interrupt couldn't be serviced immediately (higher spl
level when kernel doing something else) a few microseconds later the NCR
controller will fill its FIFO and also interrupt the CPU.

The SCSI interrupt sees the terminal count has been reached, calls
asc_dma_intr to finish the job off. The FIFO cannot be flushed because
the block count hasn't been setup for the last dma segment (DMA chaining
still wasn't serviced).

Since the NCR 53c94 FIFO is only 16 bytes in size, any short DMA in this
size combined with the machine 'doing something else' causes the problem
to occur.

Servicing the DMA chaining interrupt before the NCR SCSI interrupt solves
this problem.

Add tests to ensure the DMA FIFO has been flushed correctly at the end of
each DMA operation just to be on the safe side.
 1.3  15-Aug-2000  wdk * Tidy up interrupt handlers by implementing an intr_establish()
handler to hook up device interrupts and softc callbacks.

Suggested by: Jason Thorpe and Toru Nishimura

* Fixup the indenting in a few places to conform to NetBSD style
 1.2  14-Aug-2000  wdk Decrement the block count to compensate for 64 bytes prefetched to fill
the DMA FIFO on non block aligned writes. Not doing this causes large
writes (>4k) that are not aligned to incorrectly write 64bytes
of data every 4k interval. This only occurs on raw devices - typically
newfs fails to create a clean filesystem.
 1.1  12-Aug-2000  wdk Initial commit of port to MIPS Computer Systems RC3xxx systems.
Currently supports the RC3230
 1.5.2.6  21-Apr-2001  bouyer Sync with HEAD
 1.5.2.5  29-Mar-2001  bouyer Pass compile-test on i386
 1.5.2.4  12-Mar-2001  bouyer Sync with HEAD.
 1.5.2.3  08-Dec-2000  bouyer Sync with HEAD.
 1.5.2.2  20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.5.2.1  04-Sep-2000  bouyer file asc.c was added on branch thorpej_scsipi on 2000-11-20 20:14:11 +0000
 1.7.2.2  21-Jun-2001  nathanw Catch up to -current.
 1.7.2.1  09-Apr-2001  nathanw Catch up with -current.
 1.9.8.3  18-Oct-2002  nathanw Catch up to -current.
 1.9.8.2  08-Jan-2002  nathanw Catch up to -current.
 1.9.8.1  25-Apr-2001  nathanw file asc.c was added on branch nathanw_sa on 2002-01-08 00:26:30 +0000
 1.9.2.2  10-Oct-2002  jdolecek sync kqueue with -current; this includes merge of gehenna-devsw branch,
merge of i386 MP branch, and part of autoconf rototil work
 1.9.2.1  10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.14.2.3  21-Sep-2004  skrll Fix the sync with head I botched.
 1.14.2.2  18-Sep-2004  skrll Sync with HEAD.
 1.14.2.1  03-Aug-2004  skrll Sync with HEAD
 1.15.16.2  03-Sep-2007  yamt sync with head.
 1.15.16.1  21-Jun-2006  yamt sync with head.
 1.17.26.1  12-Mar-2007  rmind Sync with HEAD.
 1.20.40.1  02-Jun-2008  mjf Sync with HEAD.
 1.21.4.1  16-May-2008  yamt sync with head.
 1.21.2.1  18-May-2008  yamt sync with head.

RSS XML Feed