Home | History | Annotate | Download | only in include
History log of /src/sys/arch/mvme68k/include/bus_dma.h
RevisionDateAuthorComments
 1.17  05-Dec-2021  msaitoh s/from from/from/ in comment.
 1.16  28-Apr-2008  martin Remove clause 3 and 4 from TNF licenses
 1.15  12-Jan-2008  tsutsui branches: 1.15.6; 1.15.8; 1.15.10;
Misc cleanup:
- KNF, ANSIfy, remove __P()
- use __func__ to print function names
- use __arraycount()
- include "ioconf.h" for struct cfdriver
- u_intNN_t -> uintNN_t
- wrap long lines
etc.
 1.14  04-Mar-2007  christos branches: 1.14.20; 1.14.26; 1.14.32;
Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
 1.13  11-Dec-2005  christos branches: 1.13.26;
merge ktrace-lwp.
 1.12  09-Mar-2005  matt branches: 1.12.4;
Add a dm_maxsegsz public member to bus_dmamap_t. This allows a user of the API
to select the maximum segment size for each bus_dmamap_load (up to the maxsegsz
supplied to bus_dmamap_create). dm_maxsegsz is reset to the value supplied to
bus_dmamap_create when the dmamap is unloaded.
 1.11  28-Jan-2003  kent branches: 1.11.2; 1.11.10; 1.11.12;
Introduce BUS_DMA_NOCACHE, and bus_dmamem_map() of i386 supports it.
 1.10  12-Feb-2002  scw Separate out devices common to many Motorola mvme boards (68k, 88k and ppc)
in preparation for future mvmeppc and mvme88k ports.

This needs a bit if tidying up to make it trully shareable, which will
happen as the new mvme ports are added.
 1.9  19-Jul-2001  thorpej branches: 1.9.6;
Add BUS_DMA_READ and BUS_DMA_WRITE flags, that hint the back-end
at dmamap load time that the mapping will be used for a unidirectional
transfer of the specified direction.
 1.8  16-May-2001  scw branches: 1.8.2;
Finally nobble the bus_dmamap_sync() problem with osiop(4).

Basically, bus_dmamap_sync() `PREREAD' needs to flush the cache
for the start and end of the region if it is not aligned to
a cacheline boundary, otherwise a subsequent POSTREAD can *purge*
valid data which was in the cacheline but *outside* the region
passed to bus_dmamap_sync().

Bus snooping doesn't always help here because osiop(4) calls
bus_dmamap_sync() with POSTREAD even if no data was actually
transferred! (And we can't rely on snooping on the 68060 models anyway).
 1.7  07-Mar-2001  thorpej Add the BUS_DMA_STREAMING flag.
 1.6  24-Nov-2000  scw branches: 1.6.2;
Revamp the bus_space(9) implementation:
. use a structure for the tag instead of an integer constant,
. add bus_space_{peek,poke}_N() (and G/C `badaddr()'),
. fix a few drivers which have dependencies on the implementation.
 1.5  20-Aug-2000  scw branches: 1.5.2;
Checkpoint of code to add VMEbus slave support using vme_dmamap* and
vme_dmamem*.

This is still a work in progress, but seems to DTRT on mvme167 so far.

TODO:
. Get VMEbus slave mode going on mvme147. This should be easy.
. Fix up the A16 slave mappings.
. Bounce buffer support. (Messy, but pretty much a `must have'.)
. Figure out how to deal with `location monitor' interrupts
within the framework. (Useful for Busnet, among other things.)
. It would be nice to make use of the VMEchip2's DMA facilities...
 1.4  13-Aug-2000  scw Pull a bunch of common code from vme_pcc.c and vme_two.c into
the new mvmebus.[ch] files, and put down some initial code to
deal with VMEbus slave mode.
 1.3  26-Jun-2000  simonb Change the kernel mmap interface so that the offset to map is an
"off_t" and the return value is a "paddr_t" to allow mappings
at offsets past 2^31 bytes. Somewhat inspired by FreeBSD, which
only changed the offset to a "vm_offset_t".

Includes updates for the i386, pc532 and sh3 mmmmap from Jason Thorpe.
 1.2  18-Mar-2000  scw branches: 1.2.4;
Merge 'scw_mvme68k_bus_space' branch with the trunk.
These changes add support for:

o The MI VMEbus framework on both MVME147 and MVME167.
o Enhancements to the existing MD bus_space(9) implementation.
o Most of the bus_dma(9) API.
 1.1  11-Mar-2000  scw branches: 1.1.2;
file bus_dma.h was initially added on branch scw_mvme68k_bus_space.
 1.1.2.2  13-Mar-2000  scw Add constraints for bus_dmamem_map() to allow allocation from onboard
RAM only, and/or restricting physical addresses to 24-bits.

Also make bus_dmamem_map() actually honour the BUS_DMA_COHERENT flag.
 1.1.2.1  11-Mar-2000  scw Checkpoint of development of the following features of mvme68k:

. Preliminary support for the MI VMEbus framework.
. Full bus_space* and "mostly-there" bus_dma* support.

At this time, MI VMEbus drivers may well work 'as is' on an MVME147 board.
Work to get the MVME167 to this stage is ongoing.

Testers will be required at some point as I have no VMEbus boards which
have existing MI drivers! (Although I am able to test things in a limited
fashion using a noddy driver and a VMEbus RAM card).

TODO:

. Expunge all remaining use of IIOV() and freinds.
. Flag the 'boot device' using bus_space_tag_t and offset.
. Add a 24bit address constraint to bus_dmamem_alloc() (for le/ie)
. VMEChip2 support on MVME167/MVME177
. Support the mvme68k boards in VMEbus slave mode.
. Anything else I can thing of, besides having another beer. ;-)
 1.2.4.1  30-Jun-2000  simonb Pull up mmap paddr_t/off_t changes from trunk.
 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  20-Aug-2000  bouyer file bus_dma.h was added on branch thorpej_scsipi on 2000-11-20 20:15:21 +0000
 1.6.2.2  21-Jun-2001  nathanw Catch up to -current.
 1.6.2.1  09-Apr-2001  nathanw Catch up with -current.
 1.8.2.2  16-Mar-2002  jdolecek Catch up with -current.
 1.8.2.1  03-Aug-2001  lukem update to -current
 1.9.6.2  28-Feb-2002  nathanw Catch up to -current.
 1.9.6.1  19-Jul-2001  nathanw file bus_dma.h was added on branch nathanw_sa on 2002-02-28 04:10:52 +0000
 1.11.12.1  19-Mar-2005  yamt sync with head. xen and whitespace. xen part is not finished.
 1.11.10.1  29-Apr-2005  kent sync with -current
 1.11.2.1  01-Apr-2005  skrll Sync with HEAD.
 1.12.4.2  21-Jan-2008  yamt sync with head
 1.12.4.1  03-Sep-2007  yamt sync with head.
 1.13.26.1  12-Mar-2007  rmind Sync with HEAD.
 1.14.32.1  19-Jan-2008  bouyer Sync with HEAD
 1.14.26.1  18-Feb-2008  mjf Sync with HEAD.
 1.14.20.1  23-Mar-2008  matt sync with HEAD
 1.15.10.1  16-May-2008  yamt sync with head.
 1.15.8.1  18-May-2008  yamt sync with head.
 1.15.6.1  02-Jun-2008  mjf Sync with HEAD.

RSS XML Feed