thorpej
8b34a5b689
Revert previous.
1999-12-08 23:54:55 +00:00
thorpej
fd6f6e85b2
Slight changes so that bounce buffers can be implemented for the Jensen.
1999-12-08 23:40:35 +00:00
thorpej
25a665e643
Avoid a spurious warning when establishing a pulsed interrupt handler
...
on an IRQ which was marked "initially-pulsed".
1999-12-07 21:36:16 +00:00
thorpej
7f1ccd57ea
Add a way to get/set a private pointer in the shared interrupt header.
1999-11-29 19:59:19 +00:00
thorpej
abff7cb610
Update for pmap_enter() API change.
1999-11-13 00:27:21 +00:00
thorpej
11cae42531
Centralize the declaration and clearing of `cold'.
1999-09-17 19:59:35 +00:00
chs
f3a668ed84
eliminate the PMAP_NEW option by making it required for all ports.
...
ports which previously had no support for PMAP_NEW now implement
the pmap_k* interfaces as wrappers around the non-k versions.
1999-09-12 01:16:55 +00:00
thorpej
3ebbe095e0
Change the pmap_extract() interface to:
...
boolean_t pmap_extract(pmap_t, vaddr_t, paddr_t *);
This makes it possible for the pmap to map physical address 0.
1999-07-08 18:05:21 +00:00
thorpej
5832084eaf
bus_dmamem_map() maps DMA safe memory, which is usually one or more
...
managed pages, into KVA space. Since the pages are managed, we should
use pmap_enter(), not pmap_kenter_pa().
Also, when entering the mappings, enter with an access_type of
VM_PROT_READ | VM_PROT_WRITE. We do this for a couple of reasons:
(1) On systems that have H/W mod/ref attributes, the hardware
may not be able to track mod/ref done by a bus master.
(2) On systems that have to do mod/ref emulation, this prevents
a mod/ref page fault from potentially happening while in an
interrupt context, which can be problematic.
This latter change is fairly important if we ever want to be able to
transfer DMA-safe memory pages to anonymous memory objects; we will need
to know that the pages are modified, or else data could be lost!
Note that while the pages are unowned (i.e. "just DMA-safe memory pages"),
they won't consume any swap resources, as the mappings are wired, and
the pages aren't on the active or inactive queues.
1999-05-25 23:14:03 +00:00
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