Commit Graph

62 Commits

Author SHA1 Message Date
mycroft 9c6b797796 Changes for modified pmap_enter() API:
* Map the message buffer with access_type = VM_PROT_READ|VM_PROT_WRITE `just
  because'.
* Map the file system buffers with access_type = VM_PROT_READ|VM_PROT_WRITE to
  avoid possible problems with pagemove().
* Do not use VM_PROT_EXEC with either of the above.
* Map pages for /dev/mem with access_type = prot.  Also, DO NOT use
  pmap_kenter() for this, as we DO NOT want to lose modification information.
* Map pages in dumpsys() with VM_PROT_READ.
* Map pages in m68k mappedcopyin()/mappedcopyout() and writeback() with
  access_type = prot.
* For now, bus_dma*(), pmap_map(), vmapbuf(), and similar functions still use
  access_type = 0.  This should probably be revisited.
1999-03-26 23:41:25 +00:00
mrg d2397ac5f7 completely remove Mach VM support. all that is left is the all the
header files as UVM still uses (most of) these.
1999-03-24 05:50:49 +00:00
mycroft 579eeb8cf7 If we have to increase the boundary due to the spill pages, use the old
boundary as an alignment.  Otherwise we fail to enforce the old boundary,
causing massive lossage.
1999-02-18 08:55:16 +00:00
thorpej 02d221f94a Fix printf format problems on Alpha. 1999-02-12 06:25:13 +00:00
thorpej 2671c2fa42 Make bus_dmamap_load_uio() work, from Kevin Lahey <kml@nas.nasa.gov>. 1998-09-21 22:51:56 +00:00
thorpej e7a551d60e Some internal cleanup; pass a tag around, not individual arguments. 1998-08-17 20:15:55 +00:00
thorpej d5df55112a vm_offset_t -> {paddr_t,vaddr_t}, vm_size_t -> vsize_t 1998-08-14 16:50:00 +00:00
thorpej 528dab6808 Implement alpha_shared_intr_disestablish(). Simply removes the handler
fromthe list, allowing the caller to manipulate the sharing type,
if appropriate.
1998-08-01 18:52:36 +00:00
thorpej 2fc1260cc0 Implement bus_dmamap_load_uio(). 1998-07-17 21:09:59 +00:00
mjacob 9c326571d3 add a common logout printing routine file 1998-07-08 00:34:49 +00:00
thorpej c7f8d02b23 Always count the number of strays we encounter, but don't send a "stopped
logging" message if we're ignoring strays.
1998-07-07 22:06:29 +00:00
jonathan 466e784ee1 defopt DDB. 1998-07-04 22:18:13 +00:00
ross d273e10d2d Protect against multiple inclusion. 1998-06-24 01:04:26 +00:00
thorpej d08070a693 Add a comment describing the locking needs of the alpha_sgmap. 1998-06-06 20:12:28 +00:00
thorpej 59d76407b4 Display information about which sgmap we're attempting to initialize
if we die in alpha_sgmap_init().
1998-06-06 01:31:46 +00:00
thorpej a51d42503c Export the spill page PTE, and provide a hook to initialize it early. 1998-06-04 01:22:52 +00:00
thorpej d6041754c2 Allow the DMA tag to specify a boundary contraint. If the device has a
more strict boundary, the map will use it, otherwise the map will inherit
the tag's, unless the tag's constraint is 0 (no boundary constraint).
1998-06-03 18:25:53 +00:00
thorpej 50be447da3 Sync the bus_dmamap_load back-end functions between alpha and i386. (only
slight, unnecessary differences)
1998-06-03 04:15:05 +00:00
matt 5d6bc16daa more optimizations 1998-05-29 15:55:34 +00:00
matt 164da176e8 Add boundary checks to _bus_dma_load... 1998-05-29 15:25:07 +00:00
thorpej 49aa171ab9 Add support for chaining DMA windows together, for falling back on
SGMAPs if a direct-mapped window fails.
1998-05-13 21:21:16 +00:00
thorpej 4665241bf8 Simplify the direct-mapped DMA case somewhat by adding a window base
member to the DMA tag, and calling the direct-mapped back-ends directly,
rather than through chipset-specific front-ends which pass the window
base as an additional argument.
1998-05-07 20:09:37 +00:00
drochner 660e718e2e Drivers for PC-like console devices are MI now. 1998-04-24 20:05:54 +00:00
mjacob 4ccb969d0b Okay, handle the ALLOCNOW case by doing the appropriate adjustments
up front. Do the spacing arithmetic slightly differently.
1998-03-23 07:51:25 +00:00
thorpej 6bbfd3e9ff Use pmap_kenter_pa() in _bus_dmamem_map() if PMAP_NEW. 1998-03-17 04:59:36 +00:00
thorpej 58509e699f Add support for UVM. 1998-02-24 07:38:01 +00:00
thorpej c26f962957 Use kernel_map in bus_dmamem_{map,free}(). 1998-02-11 03:08:31 +00:00
thorpej 30aa56fc66 Use M_DMAMAP where appropriate. 1998-02-11 01:37:51 +00:00
thorpej b1d8bffad8 Flush the CPU write buffer in _bus_dmamap_sync(). 1998-02-04 07:35:30 +00:00
thorpej 8abe76d2f0 Add offset and length parameters to bus_dmamap_sync(), used for specifiying
partial syncs of a DMA mapping.
1998-02-04 05:12:46 +00:00
thorpej 99cc8482d1 Change the last argument of bus_dmamap_sync() from bus_dmasync_op_t to int,
and allow more than one synchronization operation to be specified in
a single call.  Dissallow mixing of PRE and POST operations.
1998-02-04 01:57:27 +00:00
thorpej 2d403996b2 Add dm_mapsize to bus_dmamap_t and rename BUS_DMAMEM_NOSYNC to
BUS_DMA_COHERENT.
1998-02-04 00:10:30 +00:00
thorpej 5fd0d10994 Add dm_mapsize to bus_dmamap_t and rename BUS_DMAMEM_NOSYNC toBUS_DMA_COHERENT. 1998-02-04 00:04:25 +00:00
thorpej 5ac7e550d1 Implement bus_dmamap_load_mbuf(). 1998-01-27 02:35:58 +00:00
thorpej 9c3ef8899b Don't conditionally define the sgmap_log_entry structure, and turn off
SGMAP logging by default.
1998-01-21 22:36:10 +00:00
thorpej 3d9cd8a05a Extent names are const. 1998-01-21 22:34:38 +00:00
thorpej 12809e3434 If mapping only one segment of DMA memory into KVA space, use K0SEG. 1998-01-19 03:12:20 +00:00
thorpej e62d894d7a Implement a prefetch spill page for SGMAP DMA. This works around a slight
annoyance on systems that prefetch the next page during memory -> device
DMA if the DMA comes within a certain distance of the end of the current
page.  This could cause machine checks since the PTE after the last page
would not have the valid bit set.

(I'm not going to complain about this slight kludge too much, since prefetch
makes DMA much faster...)
1998-01-18 00:05:33 +00:00
thorpej 3366b987d0 Put SGMAP-related stuff in the DMA map structure directly, rather than
indirecting through a pointer.
1998-01-17 21:53:52 +00:00
thorpej 361179df26 Make debugging decisions at run-time, and place a handy DDB breakpoint
after a transfer has been mapped in the page table.
1998-01-17 03:38:51 +00:00
thorpej 2981fec2f0 Allow specification of a minimum page table alignment to alpha_sgmap_init().
This is to work around an apparent hardware bug in some 2117x chipsets
where the page table must be aligned to at least 32k.
1998-01-17 03:37:22 +00:00
thorpej 5419debcb7 Adjust for config changes. 1998-01-12 10:21:02 +00:00
thorpej 14807c2914 Use avail_start/avail_end. 1998-01-09 06:37:04 +00:00
thorpej 19c77efe96 In vga_erasecols(), fix botched count and reversed arguments to
bus_space_set_region_2().  From Chris Demetriou <cgd@pa.dec.com>.
1997-10-24 23:03:02 +00:00
thorpej 0c2efd7025 Add a "scrollskip" member to wscons_emulfuncs (XXX even though it's not
a function) which specifies how many lines will be skipped when scrolling
up when the bottom of the screen is reached.  Dumb framebuffers skip 10
lines (as before) because the copies are s ... l ... o ... w, but it's
silly to skip 10 lines on VGA, since the copies are much faster, so we
only skip one in that case.
1997-09-25 01:31:53 +00:00
thorpej 2f657a6266 Add some debugging code to log sgmap activities. Also, make sure that
we return "no valid mappings" if there is an error while loading the
sgmap.
1997-09-05 02:21:49 +00:00
thorpej 55800b610a Implement bus_dmamem_mmap(). 1997-09-05 02:05:37 +00:00
thorpej 90798596fe Remove references to vm_pmap. 1997-09-02 20:37:23 +00:00
thorpej e7bb7bdc4b Remove references to vm_pmap. 1997-09-02 20:11:24 +00:00
thorpej 693b3e7262 Nuke the idea of <machine/options.h>. It completely defeats the purpose
of fine-grain option dependencies.
1997-09-02 13:17:47 +00:00