| History log of /src/sys/arch/alpha/common |
| Revision | Date | Author | Comments |
| 1.74 | 26-Jul-2022 |
andvar | s/functin/function/ in copy pasted comment.
|
| 1.73 | 19-Jul-2021 |
thorpej | There is already a fast-path in pmap_extract() for the kernel pmap, so don't bother doing a conditional for kernel vs. user-space here.
KASSERT() that pmap_extract() succeeds; it is a programming error if it does not, and it's not a great idea to insert a garbage address into the SGMAP page table.
|
| 1.72 | 07-May-2021 |
thorpej | Liberally sprinkle static around to get more symbols out of the global namespace. A small bit of const poisoning in the TC code.
|
| 1.71 | 18-Nov-2020 |
thorpej | branches: 1.71.4; malloc(9) -> kmem(9)
|
| 1.70 | 11-Oct-2020 |
thorpej | branches: 1.70.2; Add some bus_dma instrumentation.
|
| 1.69 | 02-Oct-2012 |
christos | move common/bus_dma/ -> dev/bus_dma/
|
| 1.68 | 01-Jul-2011 |
dyoung | branches: 1.68.2; 1.68.12; #include <sys/bus.h> instead of <machine/bus.h>.
|
| 1.67 | 21-Aug-2009 |
thorpej | Use bus_dmamem common.
|
| 1.66 | 04-Jun-2008 |
ad | vm_page: put TAILQ_ENTRY into a union with LIST_ENTRY, so we can use both.
|
| 1.65 | 28-Apr-2008 |
martin | branches: 1.65.2; Remove clause 3 and 4 from TNF licenses
|
| 1.64 | 04-Mar-2007 |
yamt | branches: 1.64.40; 1.64.42; 1.64.44; fix fallout from caddr_t changes.
|
| 1.63 | 04-Mar-2007 |
christos | Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
|
| 1.62 | 01-Mar-2006 |
yamt | branches: 1.62.20; merge yamt-uio_vmspace branch.
- use vmspace rather than proc or lwp where appropriate. the latter is more natural to specify an address space. (and less likely to be abused for random purposes.) - fix a swdmover race.
|
| 1.61 | 11-Dec-2005 |
christos | branches: 1.61.2; 1.61.4; 1.61.6; merge ktrace-lwp.
|
| 1.60 | 24-Nov-2005 |
yamt | bus_dmamem_map: honour BUS_DMA_NOWAIT. noted by Manuel Bouyer. bus_space_map: always do NOWAIT allocation as it used to be before yamt-km.
we have too many copies!
|
| 1.59 | 30-Jul-2005 |
mhitch | branches: 1.59.6; Check for stale flags in the DMA map. This was causing crashes on an ES40 with more than 1GB of memory due to a bug in one of the drivers. From Jason Thorpe.
|
| 1.58 | 01-Apr-2005 |
yamt | branches: 1.58.2; merge yamt-km branch. - don't use managed mappings/backing objects for wired memory allocations. save some resources like pv_entry. also fix (most of) PR/27030. - simplify kernel memory management API. - simplify pmap bootstrap of some ports. - some related cleanups.
|
| 1.57 | 09-Mar-2005 |
matt | branches: 1.57.2; 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.56 | 09-Mar-2005 |
simonb | Add an extra `i' to notifes/notifed.
|
| 1.55 | 29-Jun-2003 |
fvdl | branches: 1.55.2; 1.55.10; 1.55.12; Back out the lwp/ktrace changes. They contained a lot of colateral damage, and need to be examined and discussed more.
|
| 1.54 | 28-Jun-2003 |
darrenr | Pass lwp pointers throughtout the kernel, as required, so that the lwpid can be inserted into ktrace records. The general change has been to replace "struct proc *" with "struct lwp *" in various function prototypes, pass the lwp through and use l_proc to get the process pointer when needed.
Bump the kernel rev up to 1.6V
|
| 1.53 | 09-Apr-2003 |
thorpej | Add support for using cached mbuf and cluster phys addrs.
|
| 1.52 | 01-Apr-2003 |
thorpej | Use PAGE_SIZE rather than NBPG.
|
| 1.51 | 09-Oct-2002 |
nathanw | In _bus_dmamem_alloc_range(), respect the high end of the caller's range.
|
| 1.50 | 02-Jun-2002 |
drochner | move initialization of the "struct pglist" returned by uvm_pglistalloc() from the calling code into uvm_pglistalloc() itself for consistency and easier error handling
|
| 1.49 | 26-Apr-2002 |
thorpej | branches: 1.49.2; Keep track of which DMA window was actually used to map the request (not always the passed in DMA tag if we try direct-map and then fall back to sgmap-mapped). Use the actual window when performing dmamap_sync and dmamap_unload operations.
Fixes DMA resource leak on systems with 2G+ RAM. Thanks to Matt Thomas for help debugging this.
|
| 1.48 | 10-Sep-2001 |
chris | Update pmap_update to now take the updated pmap as an argument. This will allow improvements to the pmaps so that they can more easily defer expensive operations, eg tlb/cache flush, til the last possible moment.
Currently this is a no-op on most platforms, so they should see no difference.
Reviewed by Jason.
|
| 1.47 | 12-Jul-2001 |
thorpej | branches: 1.47.2; 1.47.4; bzero -> memset
|
| 1.46 | 26-May-2001 |
chs | branches: 1.46.2; replace vm_page_t with struct vm_page *.
|
| 1.45 | 24-Apr-2001 |
thorpej | Sprinkle pmap_update() calls after calls to: - pmap_enter() - pmap_remove() - pmap_protect() - pmap_kenter_pa() - pmap_kremove() as described in pmap(9).
These calls are relatively conservative. It may be possible to optimize these a little more.
|
| 1.44 | 21-Mar-2001 |
soren | s/vm_page_alloc_memory/uvm_pglistalloc/ in panic message.
|
| 1.43 | 03-Jan-2001 |
thorpej | branches: 1.43.2; Some more slight cleanup.
|
| 1.42 | 03-Jan-2001 |
thorpej | Fix a couple of comments.
|
| 1.41 | 03-Jan-2001 |
thorpej | ANSI'ify.
|
| 1.40 | 17-Jul-2000 |
thorpej | When computing the segment size, consider the maximum segment size in the DMA map.
|
| 1.39 | 29-Jun-2000 |
mrg | remove include of <vm/vm.h>. <vm/vm.h> -> <uvm/uvm_extern.h>
|
| 1.38 | 26-Jun-2000 |
mrg | remove/move more mach vm header files:
<vm/pglist.h> -> <uvm/uvm_pglist.h> <vm/vm_inherit.h> -> <uvm/uvm_inherit.h> <vm/vm_kern.h> -> into <uvm/uvm_extern.h> <vm/vm_object.h> -> nothing <vm/vm_pager.h> -> into <uvm/uvm_pager.h>
also includes a bunch of <vm/vm_page.h> include removals (due to redudancy with <vm/vm.h>), and a scattering of other similar headers.
|
| 1.37 | 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.36 | 06-Feb-2000 |
thorpej | branches: 1.36.4; Implement an internal DMA map flag which prevents coalescing of adjacent DMA segments.
|
| 1.35 | 20-Jan-2000 |
mjacob | fix misspelling
|
| 1.34 | 08-Dec-1999 |
thorpej | Slight changes so that bounce buffers can be implemented for the Jensen.
|
| 1.33 | 13-Nov-1999 |
thorpej | Update for pmap_enter() API change.
|
| 1.32 | 12-Sep-1999 |
chs | branches: 1.32.2; 1.32.4; 1.32.8; 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.
|
| 1.31 | 08-Jul-1999 |
thorpej | 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.
|
| 1.30 | 25-May-1999 |
thorpej | 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.
|
| 1.29 | 26-Mar-1999 |
mycroft | branches: 1.29.2; 1.29.4; 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.
|
| 1.28 | 24-Mar-1999 |
mrg | completely remove Mach VM support. all that is left is the all the header files as UVM still uses (most of) these.
|
| 1.27 | 21-Sep-1998 |
thorpej | Make bus_dmamap_load_uio() work, from Kevin Lahey <kml@nas.nasa.gov>.
|
| 1.26 | 17-Aug-1998 |
thorpej | Some internal cleanup; pass a tag around, not individual arguments.
|
| 1.25 | 14-Aug-1998 |
thorpej | vm_offset_t -> {paddr_t,vaddr_t}, vm_size_t -> vsize_t
|
| 1.24 | 17-Jul-1998 |
thorpej | Implement bus_dmamap_load_uio().
|
| 1.23 | 03-Jun-1998 |
thorpej | 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).
|
| 1.22 | 03-Jun-1998 |
thorpej | Sync the bus_dmamap_load back-end functions between alpha and i386. (only slight, unnecessary differences)
|
| 1.21 | 29-May-1998 |
matt | more optimizations
|
| 1.20 | 29-May-1998 |
matt | Add boundary checks to _bus_dma_load...
|
| 1.19 | 13-May-1998 |
thorpej | Add support for chaining DMA windows together, for falling back on SGMAPs if a direct-mapped window fails.
|
| 1.18 | 07-May-1998 |
thorpej | 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.
|
| 1.17 | 17-Mar-1998 |
thorpej | Use pmap_kenter_pa() in _bus_dmamem_map() if PMAP_NEW.
|
| 1.16 | 24-Feb-1998 |
thorpej | Add support for UVM.
|
| 1.15 | 11-Feb-1998 |
thorpej | Use kernel_map in bus_dmamem_{map,free}().
|
| 1.14 | 11-Feb-1998 |
thorpej | Use M_DMAMAP where appropriate.
|
| 1.13 | 04-Feb-1998 |
thorpej | Flush the CPU write buffer in _bus_dmamap_sync().
|
| 1.12 | 04-Feb-1998 |
thorpej | Add offset and length parameters to bus_dmamap_sync(), used for specifiying partial syncs of a DMA mapping.
|
| 1.11 | 04-Feb-1998 |
thorpej | 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.
|
| 1.10 | 04-Feb-1998 |
thorpej | Add dm_mapsize to bus_dmamap_t and rename BUS_DMAMEM_NOSYNC toBUS_DMA_COHERENT.
|
| 1.9 | 27-Jan-1998 |
thorpej | Implement bus_dmamap_load_mbuf().
|
| 1.8 | 19-Jan-1998 |
thorpej | If mapping only one segment of DMA memory into KVA space, use K0SEG.
|
| 1.7 | 09-Jan-1998 |
thorpej | Use avail_start/avail_end.
|
| 1.6 | 05-Sep-1997 |
thorpej | Implement bus_dmamem_mmap().
|
| 1.5 | 02-Sep-1997 |
thorpej | Remove references to vm_pmap.
|
| 1.4 | 02-Sep-1997 |
thorpej | Nuke the idea of <machine/options.h>. It completely defeats the purpose of fine-grain option dependencies.
|
| 1.3 | 25-Aug-1997 |
thorpej | Protect access to kmem_map with splimp()/splx(). From Chuck Cranor.
|
| 1.2 | 06-Jun-1997 |
thorpej | branches: 1.2.2; 1.2.6; Pull thorpej-bus-dma branch into mainline.
|
| 1.1 | 05-Jun-1997 |
thorpej | branches: 1.1.2; file bus_dma.c was initially added on branch thorpej-bus-dma.
|
| 1.1.2.2 | 06-Jun-1997 |
thorpej | Right, that's a bonk on the head! Zero-length arrays aren't legal in C. Make the bus_dmamap_t variable-length array size 1, and compensate for the size screw in _bus_dmamap_create(). Pointed out by Chris Demetriou.
|
| 1.1.2.1 | 05-Jun-1997 |
thorpej | Move the Alpha bus dma support functions into their own file. Suggested by Chris Demetriou <cgd@netbsd.org>.
|
| 1.2.6.3 | 06-Sep-1997 |
thorpej | Update marc-pcmcia branch from trunk.
|
| 1.2.6.2 | 04-Sep-1997 |
thorpej | Update marc-pcmcia branch from trunk.
|
| 1.2.6.1 | 27-Aug-1997 |
thorpej | Update marc-pcmcia branch from trunk.
|
| 1.2.2.2 | 07-Jun-1997 |
cgd | syng thorpej-bus-dma changes with alpha-nwscons branch
|
| 1.2.2.1 | 06-Jun-1997 |
cgd | file bus_dma.c was added on branch alpha-nwscons on 1997-06-07 04:42:53 +0000
|
| 1.29.4.2 | 02-Aug-1999 |
thorpej | Update from current.
|
| 1.29.4.1 | 21-Jun-1999 |
thorpej | Sync w/ -current.
|
| 1.29.2.1 | 06-Feb-2000 |
he | Pull up revision 1.36 (requested by thorpej): Fix host->device DMA data corruption problem on DEC Miata workstations.
|
| 1.32.8.1 | 27-Dec-1999 |
wrstuden | Pull up to last week's -current.
|
| 1.32.4.1 | 14-Nov-1999 |
fvdl | Sync with -current.
|
| 1.32.2.3 | 27-Mar-2001 |
bouyer | Sync with HEAD.
|
| 1.32.2.2 | 05-Jan-2001 |
bouyer | Sync with HEAD
|
| 1.32.2.1 | 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.36.4.3 | 27-Apr-2002 |
he | Pull up revision 1.49 (requested by thorpej): Fix a DMA resource leak on Alpha systems with more than 1GB of RAM.
|
| 1.36.4.2 | 18-Jul-2000 |
thorpej | Pull up rev. 1.40: When computing the segment size, consider the maximum segment size in the DMA map.
|
| 1.36.4.1 | 30-Jun-2000 |
simonb | Pull up mmap paddr_t/off_t changes from trunk.
|
| 1.43.2.2 | 21-Jun-2001 |
nathanw | Catch up to -current.
|
| 1.43.2.1 | 09-Apr-2001 |
nathanw | Catch up with -current.
|
| 1.46.2.3 | 23-Jun-2002 |
jdolecek | catch up with -current on kqueue branch
|
| 1.46.2.2 | 13-Sep-2001 |
thorpej | Update the kqueue branch to HEAD.
|
| 1.46.2.1 | 03-Aug-2001 |
lukem | update to -current
|
| 1.47.4.1 | 01-Oct-2001 |
fvdl | Catch up with -current.
|
| 1.47.2.4 | 18-Oct-2002 |
nathanw | Catch up to -current.
|
| 1.47.2.3 | 20-Jun-2002 |
nathanw | Catch up to -current.
|
| 1.47.2.2 | 21-Sep-2001 |
nathanw | Catch up to -current.
|
| 1.47.2.1 | 12-Jul-2001 |
nathanw | file bus_dma.c was added on branch nathanw_sa on 2001-09-21 22:34:56 +0000
|
| 1.49.2.1 | 09-Jul-2002 |
gehenna | catch up with -current.
|
| 1.55.12.2 | 19-Mar-2005 |
yamt | sync with head. xen and whitespace. xen part is not finished.
|
| 1.55.12.1 | 25-Jan-2005 |
yamt | convert alpha to new apis.
|
| 1.55.10.1 | 29-Apr-2005 |
kent | sync with -current
|
| 1.55.2.6 | 11-Dec-2005 |
christos | Sync with head.
|
| 1.55.2.5 | 10-Nov-2005 |
skrll | Sync with HEAD. Here we go again...
|
| 1.55.2.4 | 01-Apr-2005 |
skrll | Sync with HEAD.
|
| 1.55.2.3 | 21-Sep-2004 |
skrll | Fix the sync with head I botched.
|
| 1.55.2.2 | 18-Sep-2004 |
skrll | Sync with HEAD.
|
| 1.55.2.1 | 02-Jul-2003 |
darrenr | Apply the aborted ktrace-lwp changes to a specific branch. This is just for others to review, I'm concerned that patch fuziness may have resulted in some errant code being generated but I'll look at that later by comparing the diff from the base to the branch with the file I attempt to apply to it. This will, at the very least, put the changes in a better context for others to review them and attempt to tinker with removing passing of 'struct lwp' through the kernel.
|
| 1.57.2.1 | 04-Aug-2005 |
tron | Pull up revision 1.59 (requested by thorpej in ticket #635): Check for stale flags in the DMA map. This was causing crashes on an ES40 with more than 1GB of memory due to a bug in one of the drivers. From Jason Thorpe.
|
| 1.58.2.2 | 03-Sep-2007 |
yamt | sync with head.
|
| 1.58.2.1 | 21-Jun-2006 |
yamt | sync with head.
|
| 1.59.6.1 | 29-Nov-2005 |
yamt | sync with head.
|
| 1.61.6.1 | 22-Apr-2006 |
simonb | Sync with head.
|
| 1.61.4.1 | 09-Sep-2006 |
rpaulo | sync with head
|
| 1.61.2.2 | 07-Feb-2006 |
yamt | fix crashes introduced by the previous.
|
| 1.61.2.1 | 05-Feb-2006 |
yamt | adapt alpha.
|
| 1.62.20.1 | 12-Mar-2007 |
rmind | Sync with HEAD.
|
| 1.64.44.3 | 16-Sep-2009 |
yamt | sync with head
|
| 1.64.44.2 | 04-May-2009 |
yamt | sync with head.
|
| 1.64.44.1 | 16-May-2008 |
yamt | sync with head.
|
| 1.64.42.2 | 17-Jun-2008 |
yamt | sync with head.
|
| 1.64.42.1 | 18-May-2008 |
yamt | sync with head.
|
| 1.64.40.2 | 05-Jun-2008 |
mjf | Sync with HEAD.
Also fix build.
|
| 1.64.40.1 | 02-Jun-2008 |
mjf | Sync with HEAD.
|
| 1.65.2.1 | 23-Jun-2008 |
wrstuden | Sync w/ -current. 34 merge conflicts to follow.
|
| 1.68.12.1 | 20-Nov-2012 |
tls | Resync to 2012-11-19 00:00:00 UTC
|
| 1.68.2.1 | 30-Oct-2012 |
yamt | sync with head
|
| 1.70.2.1 | 14-Dec-2020 |
thorpej | Sync w/ HEAD.
|
| 1.71.4.2 | 01-Aug-2021 |
thorpej | Sync with HEAD.
|
| 1.71.4.1 | 13-May-2021 |
thorpej | Sync with HEAD.
|
| 1.5 | 01-Jul-2011 |
dyoung | #include <sys/bus.h> instead of <machine/bus.h>.
|
| 1.4 | 03-Jan-2001 |
thorpej | ANSI'ify.
|
| 1.3 | 29-Mar-2000 |
simonb | Don't need to include <sys/conf.h> here.
|
| 1.2 | 12-Feb-1999 |
thorpej | branches: 1.2.8; Fix printf format problems on Alpha.
|
| 1.1 | 08-Jul-1998 |
mjacob | add a common logout printing routine file
|
| 1.2.8.2 | 05-Jan-2001 |
bouyer | Sync with HEAD
|
| 1.2.8.1 | 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.29 | 18-Jul-2021 |
thorpej | Allow for the SGMAP implementation to specify a minimum alignment for SGMAP DMA segments. If not specified, PAGE_SIZE will be used, as before.
|
| 1.28 | 04-Jul-2021 |
thorpej | Remove unnecessary #include <sys/malloc.h>
|
| 1.27 | 17-Jun-2020 |
thorpej | branches: 1.27.6; Switch from an extent mao to a vmem arena to manage SGMAP address space.
|
| 1.26 | 27-Jan-2012 |
para | converting extent(9) from malloc(9) to kmem(9) preceding kmem-vmem-pool-uvm patch
releng@ acknowledged
|
| 1.25 | 01-Jul-2011 |
dyoung | branches: 1.25.2; 1.25.6; #include <sys/bus.h> instead of <machine/bus.h>.
|
| 1.24 | 28-Apr-2008 |
martin | Remove clause 3 and 4 from TNF licenses
|
| 1.23 | 04-Mar-2007 |
christos | branches: 1.23.40; 1.23.42; 1.23.44; Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
|
| 1.22 | 11-Dec-2005 |
christos | branches: 1.22.26; merge ktrace-lwp.
|
| 1.21 | 01-Jun-2005 |
drochner | branches: 1.21.2; fix constification fallout
|
| 1.20 | 01-Apr-2003 |
thorpej | branches: 1.20.2; Use PAGE_SIZE rather than NBPG.
|
| 1.19 | 27-Sep-2002 |
provos | remove trailing \n in panic(). approved perry.
|
| 1.18 | 19-Jul-2001 |
thorpej | branches: 1.18.2; Simplify the SGMAP code a bit, and move SGVA allocation out of a common routine into the individual load routines, since each load routine needs to muddle with the "internals" of this operation.
Add a `prefetch threshold' member to the bus_dma_tag_t, so that eventually we can determine whether or not to allocate a spill page on a per-mapping basis.
|
| 1.17 | 12-Jul-2001 |
thorpej | bzero -> memset
|
| 1.16 | 03-Jan-2001 |
thorpej | branches: 1.16.4; ANSI'ify.
|
| 1.15 | 03-Jan-2001 |
thorpej | Restructure alpha_sgmap_dmamap_create() slightly.
|
| 1.14 | 03-Jan-2001 |
thorpej | The code that creates/destroys SGMAP DMA maps is the same; put it in a common place and share it.
|
| 1.13 | 29-Jun-2000 |
mrg | remove include of <vm/vm.h>. <vm/vm.h> -> <uvm/uvm_extern.h>
|
| 1.12 | 18-Feb-1999 |
mycroft | branches: 1.12.8; 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.
|
| 1.11 | 14-Aug-1998 |
thorpej | vm_offset_t -> {paddr_t,vaddr_t}, vm_size_t -> vsize_t
|
| 1.10 | 06-Jun-1998 |
thorpej | Display information about which sgmap we're attempting to initialize if we die in alpha_sgmap_init().
|
| 1.9 | 23-Mar-1998 |
mjacob | Okay, handle the ALLOCNOW case by doing the appropriate adjustments up front. Do the spacing arithmetic slightly differently.
|
| 1.8 | 11-Feb-1998 |
thorpej | Use M_DMAMAP where appropriate.
|
| 1.7 | 21-Jan-1998 |
thorpej | Extent names are const.
|
| 1.6 | 18-Jan-1998 |
thorpej | 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...)
|
| 1.5 | 17-Jan-1998 |
thorpej | Put SGMAP-related stuff in the DMA map structure directly, rather than indirecting through a pointer.
|
| 1.4 | 17-Jan-1998 |
thorpej | 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.
|
| 1.3 | 02-Sep-1997 |
thorpej | Nuke the idea of <machine/options.h>. It completely defeats the purpose of fine-grain option dependencies.
|
| 1.2 | 06-Jun-1997 |
thorpej | branches: 1.2.2; 1.2.6; Pull thorpej-bus-dma branch into mainline.
|
| 1.1 | 03-Jun-1997 |
thorpej | branches: 1.1.2; file sgmap_common.c was initially added on branch thorpej-bus-dma.
|
| 1.1.2.1 | 03-Jun-1997 |
thorpej | Totally rearrange the SGMAP DMA handling code. Split the functions into "common" (used unchanged by everyone) and "typedep", which depend on the type (32-bit or 64-bit) of the SGMAP PTEs.
Fix several bugs, and clean up significantly, eliminating unnecessary housekeeping overhead in several places.
|
| 1.2.6.1 | 04-Sep-1997 |
thorpej | Update marc-pcmcia branch from trunk.
|
| 1.2.2.2 | 07-Jun-1997 |
cgd | syng thorpej-bus-dma changes with alpha-nwscons branch
|
| 1.2.2.1 | 06-Jun-1997 |
cgd | file sgmap_common.c was added on branch alpha-nwscons on 1997-06-07 04:42:54 +0000
|
| 1.12.8.2 | 05-Jan-2001 |
bouyer | Sync with HEAD
|
| 1.12.8.1 | 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.16.4.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.16.4.1 | 03-Aug-2001 |
lukem | update to -current
|
| 1.18.2.2 | 18-Oct-2002 |
nathanw | Catch up to -current.
|
| 1.18.2.1 | 19-Jul-2001 |
nathanw | file sgmap_common.c was added on branch nathanw_sa on 2002-10-18 02:34:06 +0000
|
| 1.20.2.1 | 10-Nov-2005 |
skrll | Sync with HEAD. Here we go again...
|
| 1.21.2.1 | 03-Sep-2007 |
yamt | sync with head.
|
| 1.22.26.1 | 12-Mar-2007 |
rmind | Sync with HEAD.
|
| 1.23.44.1 | 16-May-2008 |
yamt | sync with head.
|
| 1.23.42.1 | 18-May-2008 |
yamt | sync with head.
|
| 1.23.40.1 | 02-Jun-2008 |
mjf | Sync with HEAD.
|
| 1.25.6.1 | 18-Feb-2012 |
mrg | merge to -current.
|
| 1.25.2.1 | 17-Apr-2012 |
yamt | sync with head
|
| 1.27.6.1 | 01-Aug-2021 |
thorpej | Sync with HEAD.
|
| 1.44 | 19-Jul-2021 |
thorpej | There is already a fast-path in pmap_extract() for the kernel pmap, so don't bother doing a conditional for kernel vs. user-space here.
KASSERT() that pmap_extract() succeeds; it is a programming error if it does not, and it's not a great idea to insert a garbage address into the SGMAP page table.
|
| 1.43 | 18-Jul-2021 |
thorpej | Allow for the SGMAP implementation to specify a minimum alignment for SGMAP DMA segments. If not specified, PAGE_SIZE will be used, as before.
|
| 1.42 | 24-Jun-2021 |
thorpej | Deal with a scenario where: - DMA map has a boundary constraint. - Caller asks us to map a buffer that's exactly the same size as the boundary constraint, but is not page-aligned.
This results in the size being larger than the boundary constraint after page-rounding, and and vmem_xalloc() fires a KASSERT for it. This is easy to trigger by running fsck.
We handle this by detecting the condition and creating an extra DMA segment for it the spill-over.
|
| 1.41 | 15-Apr-2021 |
rin | branches: 1.41.2; Fix inverted logic!!
vmem_xalloc(9) should be used with VM_NOSLEEP for BUS_DMA_NOWAIT.
|
| 1.40 | 11-Oct-2020 |
thorpej | branches: 1.40.4; Add some bus_dma instrumentation.
|
| 1.39 | 17-Jun-2020 |
thorpej | Typo: vmem_free -> vmem_xfree
|
| 1.38 | 17-Jun-2020 |
thorpej | Switch from an extent mao to a vmem arena to manage SGMAP address space.
|
| 1.37 | 15-Dec-2010 |
matt | include <uvm/uvm_extern.h> here instead
|
| 1.36 | 07-Oct-2010 |
hans | fix SGMAP_DEBUG on alpha
|
| 1.35 | 28-Apr-2008 |
martin | branches: 1.35.20; 1.35.22; Remove clause 3 and 4 from TNF licenses
|
| 1.34 | 04-Mar-2007 |
christos | branches: 1.34.40; 1.34.42; 1.34.44; Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
|
| 1.33 | 01-Mar-2006 |
yamt | branches: 1.33.20; merge yamt-uio_vmspace branch.
- use vmspace rather than proc or lwp where appropriate. the latter is more natural to specify an address space. (and less likely to be abused for random purposes.) - fix a swdmover race.
|
| 1.32 | 11-Dec-2005 |
christos | branches: 1.32.2; 1.32.4; 1.32.6; merge ktrace-lwp.
|
| 1.31 | 30-Jul-2005 |
mhitch | Check for stale flags in the DMA map. This was causing crashes on an ES40 with more than 1GB of memory due to a bug in one of the drivers. From Jason Thorpe.
|
| 1.30 | 28-Jul-2005 |
thorpej | load_mbuf: Don't increase the segment index if we skipped a zero-length mbuf. From Michael Hitch.
|
| 1.29 | 28-Nov-2004 |
thorpej | branches: 1.29.10; 1.29.12; bus_dmamap_load_mbuf(): Skip zero-length mbufs. kern/24811
|
| 1.28 | 15-Jul-2003 |
lukem | a .#included .c file needs __KERNEL_RCSID(1, ...
|
| 1.27 | 29-Jun-2003 |
fvdl | branches: 1.27.2; Back out the lwp/ktrace changes. They contained a lot of colateral damage, and need to be examined and discussed more.
|
| 1.26 | 28-Jun-2003 |
darrenr | Pass lwp pointers throughtout the kernel, as required, so that the lwpid can be inserted into ktrace records. The general change has been to replace "struct proc *" with "struct lwp *" in various function prototypes, pass the lwp through and use l_proc to get the process pointer when needed.
Bump the kernel rev up to 1.6V
|
| 1.25 | 03-May-2003 |
wiz | DMA, not dma nor Dma.
|
| 1.24 | 01-Apr-2003 |
thorpej | Use PAGE_SIZE rather than NBPG.
|
| 1.23 | 26-Apr-2002 |
thorpej | Keep track of which DMA window was actually used to map the request (not always the passed in DMA tag if we try direct-map and then fall back to sgmap-mapped). Use the actual window when performing dmamap_sync and dmamap_unload operations.
Fixes DMA resource leak on systems with 2G+ RAM. Thanks to Matt Thomas for help debugging this.
|
| 1.22 | 19-Jul-2001 |
thorpej | branches: 1.22.2; Since the SGMAP buffer load subroutine doesn't need to modify the segment index, don't pass it by reference.
|
| 1.21 | 19-Jul-2001 |
thorpej | Implement dmamap_load_uio for SGMAPs.
|
| 1.20 | 19-Jul-2001 |
thorpej | Pay attention to BUS_DMA_READ; don't need to allocate a spill page if it is set.
|
| 1.19 | 19-Jul-2001 |
thorpej | Since DMA frobbing can be done at interrupt time by devies at multiple levels, protect the extent map w/ splvm().
|
| 1.18 | 19-Jul-2001 |
thorpej | Add support for mbufs to the Alpha SGMAP DMA maps.
|
| 1.17 | 19-Jul-2001 |
thorpej | Simplify the SGMAP code a bit, and move SGVA allocation out of a common routine into the individual load routines, since each load routine needs to muddle with the "internals" of this operation.
Add a `prefetch threshold' member to the bus_dma_tag_t, so that eventually we can determine whether or not to allocate a spill page on a per-mapping basis.
|
| 1.16 | 12-Jul-2001 |
thorpej | bcopy -> memcpy
|
| 1.15 | 12-Jul-2001 |
thorpej | bzero -> memset
|
| 1.14 | 03-Jan-2001 |
thorpej | branches: 1.14.4; ANSI'ify.
|
| 1.13 | 08-Jul-1999 |
thorpej | branches: 1.13.2; 1.13.12; 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.
|
| 1.12 | 14-Aug-1998 |
thorpej | branches: 1.12.8; vm_offset_t -> {paddr_t,vaddr_t}, vm_size_t -> vsize_t
|
| 1.11 | 04-Jul-1998 |
jonathan | defopt DDB.
|
| 1.10 | 04-Jun-1998 |
thorpej | Export the spill page PTE, and provide a hook to initialize it early.
|
| 1.9 | 23-Mar-1998 |
mjacob | Okay, handle the ALLOCNOW case by doing the appropriate adjustments up front. Do the spacing arithmetic slightly differently.
|
| 1.8 | 04-Feb-1998 |
thorpej | Add dm_mapsize to bus_dmamap_t and rename BUS_DMAMEM_NOSYNC to BUS_DMA_COHERENT.
|
| 1.7 | 18-Jan-1998 |
thorpej | 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...)
|
| 1.6 | 17-Jan-1998 |
thorpej | Put SGMAP-related stuff in the DMA map structure directly, rather than indirecting through a pointer.
|
| 1.5 | 17-Jan-1998 |
thorpej | Make debugging decisions at run-time, and place a handy DDB breakpoint after a transfer has been mapped in the page table.
|
| 1.4 | 05-Sep-1997 |
thorpej | 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.
|
| 1.3 | 02-Sep-1997 |
thorpej | Remove references to vm_pmap.
|
| 1.2 | 06-Jun-1997 |
thorpej | branches: 1.2.2; 1.2.6; Pull thorpej-bus-dma branch into mainline.
|
| 1.1 | 03-Jun-1997 |
thorpej | branches: 1.1.2; file sgmap_typedep.c was initially added on branch thorpej-bus-dma.
|
| 1.1.2.6 | 06-Jun-1997 |
thorpej | Allow the includer greater flexibility in the naming of these functions.
|
| 1.1.2.5 | 05-Jun-1997 |
thorpej | - Tidy up the call to alpha_sgmap_alloc(). - Add a bunch of debugging statements, conditional on SGMAP_DEBUG. - Use vtophys(), not pmap_extract(), for buffers in kernel VA space. Not all kernel buffers are mapped with the MMU page tables; some are mapped via K0SEG.
|
| 1.1.2.4 | 04-Jun-1997 |
thorpej | - Fix a serious bug in PTE index calculation. - DMA addresses use the PTE index, not the PTE (byte) offset. - Garbage-collect a now-unused flag.
|
| 1.1.2.3 | 04-Jun-1997 |
thorpej | - Correct one comment, and nuke an XXX. - Consider SGMAP_PTE_SPACING when computing the PTE index.
|
| 1.1.2.2 | 03-Jun-1997 |
thorpej | Allow the includer to specify PTE spacing.
|
| 1.1.2.1 | 03-Jun-1997 |
thorpej | Totally rearrange the SGMAP DMA handling code. Split the functions into "common" (used unchanged by everyone) and "typedep", which depend on the type (32-bit or 64-bit) of the SGMAP PTEs.
Fix several bugs, and clean up significantly, eliminating unnecessary housekeeping overhead in several places.
|
| 1.2.6.2 | 06-Sep-1997 |
thorpej | Update marc-pcmcia branch from trunk.
|
| 1.2.6.1 | 04-Sep-1997 |
thorpej | Update marc-pcmcia branch from trunk.
|
| 1.2.2.2 | 07-Jun-1997 |
cgd | syng thorpej-bus-dma changes with alpha-nwscons branch
|
| 1.2.2.1 | 06-Jun-1997 |
cgd | file sgmap_typedep.c was added on branch alpha-nwscons on 1997-06-07 04:42:55 +0000
|
| 1.12.8.1 | 02-Aug-1999 |
thorpej | Update from current.
|
| 1.13.12.1 | 27-Apr-2002 |
he | Pull up revision 1.23 (via patch, requested by thorpej): Fix a DMA resource leak on Alpha systems with more than 1GB of RAM.
|
| 1.13.2.1 | 05-Jan-2001 |
bouyer | Sync with HEAD
|
| 1.14.4.2 | 23-Jun-2002 |
jdolecek | catch up with -current on kqueue branch
|
| 1.14.4.1 | 03-Aug-2001 |
lukem | update to -current
|
| 1.22.2.2 | 20-Jun-2002 |
nathanw | Catch up to -current.
|
| 1.22.2.1 | 19-Jul-2001 |
nathanw | file sgmap_typedep.c was added on branch nathanw_sa on 2002-06-20 03:37:33 +0000
|
| 1.27.2.6 | 10-Nov-2005 |
skrll | Sync with HEAD. Here we go again...
|
| 1.27.2.5 | 18-Dec-2004 |
skrll | Sync with HEAD.
|
| 1.27.2.4 | 21-Sep-2004 |
skrll | Fix the sync with head I botched.
|
| 1.27.2.3 | 18-Sep-2004 |
skrll | Sync with HEAD.
|
| 1.27.2.2 | 03-Aug-2004 |
skrll | Sync with HEAD
|
| 1.27.2.1 | 02-Jul-2003 |
darrenr | Apply the aborted ktrace-lwp changes to a specific branch. This is just for others to review, I'm concerned that patch fuziness may have resulted in some errant code being generated but I'll look at that later by comparing the diff from the base to the branch with the file I attempt to apply to it. This will, at the very least, put the changes in a better context for others to review them and attempt to tinker with removing passing of 'struct lwp' through the kernel.
|
| 1.29.12.2 | 03-Sep-2007 |
yamt | sync with head.
|
| 1.29.12.1 | 21-Jun-2006 |
yamt | sync with head.
|
| 1.29.10.2 | 04-Aug-2005 |
tron | Pull up revision 1.31 (requested by thorpej in ticket #635): Check for stale flags in the DMA map. This was causing crashes on an ES40 with more than 1GB of memory due to a bug in one of the drivers. From Jason Thorpe.
|
| 1.29.10.1 | 30-Jul-2005 |
tron | Pull up revision 1.30 (requested by thorpej in ticket #627): load_mbuf: Don't increase the segment index if we skipped a zero-length mbuf. From Michael Hitch.
|
| 1.32.6.1 | 22-Apr-2006 |
simonb | Sync with head.
|
| 1.32.4.1 | 09-Sep-2006 |
rpaulo | sync with head
|
| 1.32.2.2 | 07-Feb-2006 |
yamt | fix crashes introduced by the previous.
|
| 1.32.2.1 | 05-Feb-2006 |
yamt | adapt alpha.
|
| 1.33.20.1 | 12-Mar-2007 |
rmind | Sync with HEAD.
|
| 1.34.44.2 | 09-Oct-2010 |
yamt | sync with head
|
| 1.34.44.1 | 16-May-2008 |
yamt | sync with head.
|
| 1.34.42.1 | 18-May-2008 |
yamt | sync with head.
|
| 1.34.40.1 | 02-Jun-2008 |
mjf | Sync with HEAD.
|
| 1.35.22.1 | 05-Mar-2011 |
rmind | sync with head
|
| 1.35.20.1 | 22-Oct-2010 |
uebayasi | Sync with HEAD (-D20101022).
|
| 1.40.4.1 | 17-Apr-2021 |
thorpej | Sync with HEAD.
|
| 1.41.2.1 | 01-Aug-2021 |
thorpej | Sync with HEAD.
|
| 1.6 | 28-Apr-2008 |
martin | Remove clause 3 and 4 from TNF licenses
|
| 1.5 | 03-Jan-2001 |
thorpej | branches: 1.5.126; 1.5.128; 1.5.130; ANSI'ify.
|
| 1.4 | 04-Jun-1998 |
thorpej | branches: 1.4.14; Export the spill page PTE, and provide a hook to initialize it early.
|
| 1.3 | 17-Jan-1998 |
thorpej | Put SGMAP-related stuff in the DMA map structure directly, rather than indirecting through a pointer.
|
| 1.2 | 06-Jun-1997 |
thorpej | branches: 1.2.2; Pull thorpej-bus-dma branch into mainline.
|
| 1.1 | 03-Jun-1997 |
thorpej | branches: 1.1.2; file sgmap_typedep.h was initially added on branch thorpej-bus-dma.
|
| 1.1.2.3 | 06-Jun-1997 |
thorpej | Allow the includer greater flexibility in the naming of these functions.
|
| 1.1.2.2 | 03-Jun-1997 |
thorpej | Garbage-collect.
|
| 1.1.2.1 | 03-Jun-1997 |
thorpej | Totally rearrange the SGMAP DMA handling code. Split the functions into "common" (used unchanged by everyone) and "typedep", which depend on the type (32-bit or 64-bit) of the SGMAP PTEs.
Fix several bugs, and clean up significantly, eliminating unnecessary housekeeping overhead in several places.
|
| 1.2.2.2 | 07-Jun-1997 |
cgd | syng thorpej-bus-dma changes with alpha-nwscons branch
|
| 1.2.2.1 | 06-Jun-1997 |
cgd | file sgmap_typedep.h was added on branch alpha-nwscons on 1997-06-07 04:42:56 +0000
|
| 1.4.14.1 | 05-Jan-2001 |
bouyer | Sync with HEAD
|
| 1.5.130.1 | 16-May-2008 |
yamt | sync with head.
|
| 1.5.128.1 | 18-May-2008 |
yamt | sync with head.
|
| 1.5.126.1 | 02-Jun-2008 |
mjf | Sync with HEAD.
|
| 1.19 | 05-Sep-2020 |
maya | fix typo
|
| 1.18 | 05-Sep-2020 |
thorpej | Update a comment.
|
| 1.17 | 17-Jun-2020 |
thorpej | Switch from an extent mao to a vmem arena to manage SGMAP address space.
|
| 1.16 | 01-Jul-2011 |
dyoung | #include <sys/bus.h> instead of <machine/bus.h>.
|
| 1.15 | 28-Apr-2008 |
martin | Remove clause 3 and 4 from TNF licenses
|
| 1.14 | 03-May-2003 |
wiz | branches: 1.14.104; 1.14.106; 1.14.108; DMA, not dma nor Dma.
|
| 1.13 | 19-Jul-2001 |
thorpej | branches: 1.13.2; Simplify the SGMAP code a bit, and move SGVA allocation out of a common routine into the individual load routines, since each load routine needs to muddle with the "internals" of this operation.
Add a `prefetch threshold' member to the bus_dma_tag_t, so that eventually we can determine whether or not to allocate a spill page on a per-mapping basis.
|
| 1.12 | 03-Jan-2001 |
thorpej | branches: 1.12.4; ANSI'ify.
|
| 1.11 | 03-Jan-2001 |
thorpej | The code that creates/destroys SGMAP DMA maps is the same; put it in a common place and share it.
|
| 1.10 | 14-Aug-1998 |
thorpej | branches: 1.10.12; vm_offset_t -> {paddr_t,vaddr_t}, vm_size_t -> vsize_t
|
| 1.9 | 24-Jun-1998 |
ross | Protect against multiple inclusion.
|
| 1.8 | 06-Jun-1998 |
thorpej | Add a comment describing the locking needs of the alpha_sgmap.
|
| 1.7 | 21-Jan-1998 |
thorpej | Don't conditionally define the sgmap_log_entry structure, and turn off SGMAP logging by default.
|
| 1.6 | 18-Jan-1998 |
thorpej | 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...)
|
| 1.5 | 17-Jan-1998 |
thorpej | Put SGMAP-related stuff in the DMA map structure directly, rather than indirecting through a pointer.
|
| 1.4 | 17-Jan-1998 |
thorpej | 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.
|
| 1.3 | 05-Sep-1997 |
thorpej | 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.
|
| 1.2 | 07-Jun-1997 |
thorpej | branches: 1.2.2; 1.2.6; Pull the thorpej-bus-dma branch into the mainline.
|
| 1.1 | 03-Jun-1997 |
thorpej | branches: 1.1.2; file sgmapvar.h was initially added on branch thorpej-bus-dma.
|
| 1.1.2.3 | 04-Jun-1997 |
thorpej | - Fix a serious bug in PTE index calculation. - DMA addresses use the PTE index, not the PTE (byte) offset. - Garbage-collect a now-unused flag.
|
| 1.1.2.2 | 03-Jun-1997 |
thorpej | PTE page frame shift and valid bits are type-dependent now.
|
| 1.1.2.1 | 03-Jun-1997 |
thorpej | Totally rearrange the SGMAP DMA handling code. Split the functions into "common" (used unchanged by everyone) and "typedep", which depend on the type (32-bit or 64-bit) of the SGMAP PTEs.
Fix several bugs, and clean up significantly, eliminating unnecessary housekeeping overhead in several places.
|
| 1.2.6.1 | 06-Sep-1997 |
thorpej | Update marc-pcmcia branch from trunk.
|
| 1.2.2.2 | 07-Jun-1997 |
cgd | sync syng thorpej-bus-dma changes with alpha-nwscons branch (pass 2)
|
| 1.2.2.1 | 07-Jun-1997 |
cgd | file sgmapvar.h was added on branch alpha-nwscons on 1997-06-07 05:47:23 +0000
|
| 1.10.12.1 | 05-Jan-2001 |
bouyer | Sync with HEAD
|
| 1.12.4.1 | 03-Aug-2001 |
lukem | update to -current
|
| 1.13.2.2 | 19-Jul-2001 |
thorpej | Simplify the SGMAP code a bit, and move SGVA allocation out of a common routine into the individual load routines, since each load routine needs to muddle with the "internals" of this operation.
Add a `prefetch threshold' member to the bus_dma_tag_t, so that eventually we can determine whether or not to allocate a spill page on a per-mapping basis.
|
| 1.13.2.1 | 19-Jul-2001 |
thorpej | file sgmapvar.h was added on branch nathanw_sa on 2001-07-19 04:27:38 +0000
|
| 1.14.108.1 | 16-May-2008 |
yamt | sync with head.
|
| 1.14.106.1 | 18-May-2008 |
yamt | sync with head.
|
| 1.14.104.1 | 02-Jun-2008 |
mjf | Sync with HEAD.
|
| 1.30 | 21-Nov-2023 |
thorpej | Don't open-code tailq access.
|
| 1.29 | 04-Jul-2021 |
thorpej | Reduce code duplication when setting up the interrupt handler data structures: - alpha_shared_intr_alloc() no longer takes a "string length" argument, and just uses kmem_asprintf() to create an "irq %u" string by default. This is suitable for nearly every caller. - Add a alpha_shared_intr_set_string() that allows callers to override the default IRQ description string. - Related: make alpha_shared_intr_string() return a const char *, since no callers should need to modify the string directly now. - Re-factor PCI shared interrupt structure allocation / initialization into a new alpha_pci_intr_alloc(), which is suitable for nearly every Alpha PCI platform. Callers are expected to first have initialized the interrupt hardware to the quiescent state.
Adjust various call sites of above functions to account for changes, even if they are not able to use the newly re-factored code.
|
| 1.28 | 25-Jun-2021 |
thorpej | Tweak how the IRQ description strings are generated to enable additional duplicated code re-factoring.
|
| 1.27 | 07-May-2021 |
thorpej | Liberally sprinkle static around to get more symbols out of the global namespace. A small bit of const poisoning in the TC code.
|
| 1.26 | 26-Sep-2020 |
thorpej | branches: 1.26.6; - Fix some bugs in previous, mainly related to indexing the correct interrupt queue. - Make sure to update cpu_info::ci_nintrhand if an irq moves from one CPU to another.
|
| 1.25 | 25-Sep-2020 |
thorpej | Changes to make interrupt {,dis}establish MP-safe on Alpha: - Protect all of the system interrupt linkage with the cpu_lock mutex. - Re-order some of the stores to the SCB vector table to make it safe in the face of lockless interrupt dispatch. - Add a framework for routing interrupts to specific CPUs. Interrupts are still funneled only to the primary CPU, but that will change for some systems soon. Ensure that interrupt handler lists are manipulated only on the CPUs that handle that specific interrupt source. This required a re-factor of the alpha_shared_intr_*() family of functions. - Enable __HAVE_INTR_CONTROL, although interrupt redistribution is still a no-op. - Reduce code duplication in the Jenson direct-SCB interrupt handlers.
|
| 1.24 | 23-Sep-2020 |
thorpej | Use a wrapper to acquire the kernel lock for non-MPSAFE interrupts, rather than doing it in alpha_shared_intr_establish() directly.
|
| 1.23 | 22-Sep-2020 |
thorpej | Changes to make MPSAFE interrupts work on Alpha:
- Remove the ipl argument to scb_set() and the associated array of "mpsafe" booleans initialized based on the ipl. It was bogus anyway; all IPL_{BIO,NET,TTY}, etc. values are aliases of IPL_VM, and for all practical purposes, there is really only one device interrrupt level on Alpha anyway. Intead, we now treat all dispatches from the SCB vector table as MP-safe, and it is now the handler for that vector who is responsible for acquiring the KERNEL_LOCK if needed.
- Update the direct interrupt vector handlers in jensenio and TURBOchannel to acquire the KERNEL_LOCK.
- Introduce a new ALPHA_INTR_MPSAFE flag, and add a flags argument to alpha_shared_intr_establish(). When it is set, indicate that the handler is MP-safe. Update alpha_shared_intr_dispatch() to pay attention and acquire the KERNEL_LOCK (or not) as indicated.
- Re-factor all of the PCI interrupt handling, providing "generic PCI" "PCI interrupts through ISA IRQs" implementations to significantly reduce code duplication. Supplement the PCI chipset tag with more info to facilitate this, and make the PCI interrupt-related routines take a pci_chipset_tag_t argument rather than a void * argument.
- Because PCI interrupts on KN8AE are dispatched directly from the SCB, provide a wrapper for non-MPSAFE interrupt handlers that acquires the KERNEL_LOCK.
- Change the pci_intr_handle_t type to be a struct rather than an integer type in order to catch any direct use of it as a value. Add a set of functions to interact with pci_intr_handle_t, including setting interrupt flags.
- Implement pci_intr_setattr() so that the PCI_INTR_MPSAFE attribute can be set on a pci_intr_handle_t.
- While I'm here, make all of the MI PCI back-end operations call through real functions rather than hopping directly through function pointers in the chipset tag.
This change looks a lot bigger than it really is because of the re-factor in the plethora of model-specific PCI interrupt back-ends. The KN8AE, KN300, and T2/T3/T4 (Sable) are largely un-changed.
|
| 1.22 | 10-Nov-2019 |
chs | in many device attach paths, allocate memory with M_WAITOK instead of M_NOWAIT and remove code to handle failures that can no longer happen.
|
| 1.21 | 06-Feb-2012 |
matt | branches: 1.21.48; Do a minor cleanup of alpha (this will make applying pullups post branching easier). u_int{8,16,32,64}_t -> uint{*}_t Change all old-style definitions to C89 prototypes. Whitespace cleanup. Constification in db_disasm.c
|
| 1.20 | 14-Mar-2009 |
dsl | branches: 1.20.12; 1.20.16; Remove all the __P() from sys (excluding sys/dist) Diff checked with grep and MK1 eyeball. i386 and amd64 GENERIC and sys still build.
|
| 1.19 | 10-Mar-2008 |
ad | branches: 1.19.4; 1.19.12; 1.19.18; Finish moving alpha over to the MI atomic ops.
|
| 1.18 | 11-Dec-2005 |
christos | branches: 1.18.36; 1.18.50; 1.18.70; 1.18.74; merge ktrace-lwp.
|
| 1.17 | 29-Mar-2005 |
thorpej | branches: 1.17.2; - Add a alpha_shared_intr_reset_strays() function that resets the stray interrupt counter for a given shared interrupt descriptor. - When an interrupt is successfully handled, reset the strays counter, thus preventing a "slow leak" from eventually shutting off the interrupt vector. Idea taken from pci_kn300.c (which was changed to use the new alpha_shared_intr_reset_strays() function).
|
| 1.16 | 27-Jul-2001 |
thorpej | branches: 1.16.2; 1.16.22; 1.16.28; 1.16.30; 1.16.36; Rework the interrupt code, shaving some cycles off in the process. Rather than an "iointr" routine that decomposes a vector into an IRQ, we maintain a vector table directly, hooking up each "iointr" routine at the correct vector. This also allows us to hook device interrupts up to specific vectors (c.f. Jensen).
We can shave even more cycles off, here, and I will, but it requires some changes to the alpha_shared_intr stuff.
|
| 1.15 | 05-Jun-2000 |
thorpej | branches: 1.15.6; Switch to the new `evcnt' mechanism for counting interrupts. Maintain a per-CPU interrupt counter for clock, device, and interprocessor interrupts.
|
| 1.14 | 04-Jun-2000 |
thorpej | ANSI'ify function declarations.
|
| 1.13 | 19-Mar-2000 |
thorpej | branches: 1.13.2; Point back to the alpha_shared_intr in the intrhand structure. This allows platform-specific code to access the `intr_private' data via the intrhand structure.
|
| 1.12 | 10-Feb-2000 |
mjacob | Allow (re)setting of maxstrays after establishment of a shared interrupt. This allows sporadic stray interrupt counts to be reset by an acknowledgement of the same interrupt.
|
| 1.11 | 01-Feb-2000 |
mjacob | Do not forget to init intr_private
|
| 1.10 | 08-Dec-1999 |
thorpej | Revert previous.
|
| 1.9 | 07-Dec-1999 |
thorpej | Avoid a spurious warning when establishing a pulsed interrupt handler on an IRQ which was marked "initially-pulsed".
|
| 1.8 | 29-Nov-1999 |
thorpej | Add a way to get/set a private pointer in the shared interrupt header.
|
| 1.7 | 17-Sep-1999 |
thorpej | branches: 1.7.2; 1.7.8; Centralize the declaration and clearing of `cold'.
|
| 1.6 | 01-Aug-1998 |
thorpej | Implement alpha_shared_intr_disestablish(). Simply removes the handler fromthe list, allowing the caller to manipulate the sharing type, if appropriate.
|
| 1.5 | 07-Jul-1998 |
thorpej | Always count the number of strays we encounter, but don't send a "stopped logging" message if we're ignoring strays.
|
| 1.4 | 02-Sep-1997 |
thorpej | Nuke the idea of <machine/options.h>. It completely defeats the purpose of fine-grain option dependencies.
|
| 1.3 | 07-Apr-1997 |
cgd | branches: 1.3.4; by default, provide RCS IDs for NetBSD/alpha kernel files in kernel binaries. This can be disabled (to save a bit of space) with the NO_KERNEL_RCSIDS options, which is present but commented out in the ALPHA config file. In ELF-format kernels, these strings are present in the kernel binary but are not loaded into memory. (In ECOFF-format kernels, there's no easy way to keep them from being loaded, so they _are_ loaded into memory.)
|
| 1.2 | 06-Apr-1997 |
cgd | clean up NetBSD RCS ID strings, include machine/options.h
|
| 1.1 | 17-Nov-1996 |
cgd | branches: 1.1.2; implement a (hack-ish) set of routines to do common chained-interrupt handler management. It's nasty, but three slightly different copies of the code is worse.
|
| 1.1.2.1 | 01-Jun-1997 |
cgd | sync the nwscons branch up with yesterday's version of the trunk. Lots of conflicts/changes because of the RCS Id format changes. Also, a few cleanups and corrections.
|
| 1.3.4.1 | 04-Sep-1997 |
thorpej | Update marc-pcmcia branch from trunk.
|
| 1.7.8.1 | 27-Dec-1999 |
wrstuden | Pull up to last week's -current.
|
| 1.7.2.1 | 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.13.2.1 | 22-Jun-2000 |
minoura | Sync w/ netbsd-1-5-base.
|
| 1.15.6.1 | 03-Aug-2001 |
lukem | update to -current
|
| 1.16.36.1 | 30-Mar-2005 |
tron | Pull up revision 1.17 (requested by thorpej in ticket #76): - Add a alpha_shared_intr_reset_strays() function that resets the stray interrupt counter for a given shared interrupt descriptor. - When an interrupt is successfully handled, reset the strays counter, thus preventing a "slow leak" from eventually shutting off the interrupt vector. Idea taken from pci_kn300.c (which was changed to use the new alpha_shared_intr_reset_strays() function).
|
| 1.16.30.1 | 29-Apr-2005 |
kent | sync with -current
|
| 1.16.28.1 | 11-May-2005 |
riz | Pull up revision 1.17 (requested by thorpej in ticket #1373): - Add a alpha_shared_intr_reset_strays() function that resets the stray interrupt counter for a given shared interrupt descriptor. - When an interrupt is successfully handled, reset the strays counter, thus preventing a "slow leak" from eventually shutting off the interrupt vector. Idea taken from pci_kn300.c (which was changed to use the new alpha_shared_intr_reset_strays() function).
|
| 1.16.22.1 | 01-Apr-2005 |
skrll | Sync with HEAD.
|
| 1.16.2.2 | 27-Jul-2001 |
thorpej | Rework the interrupt code, shaving some cycles off in the process. Rather than an "iointr" routine that decomposes a vector into an IRQ, we maintain a vector table directly, hooking up each "iointr" routine at the correct vector. This also allows us to hook device interrupts up to specific vectors (c.f. Jensen).
We can shave even more cycles off, here, and I will, but it requires some changes to the alpha_shared_intr stuff.
|
| 1.16.2.1 | 27-Jul-2001 |
thorpej | file shared_intr.c was added on branch nathanw_sa on 2001-07-27 00:25:20 +0000
|
| 1.17.2.1 | 17-Mar-2008 |
yamt | sync with head.
|
| 1.18.74.1 | 03-Apr-2008 |
mjf | Sync with HEAD.
|
| 1.18.70.1 | 24-Mar-2008 |
keiichi | sync with head.
|
| 1.18.50.1 | 23-Mar-2008 |
matt | sync with HEAD
|
| 1.18.36.1 | 18-Apr-2007 |
thorpej | Convert to the new atomic op API.
|
| 1.19.18.1 | 13-May-2009 |
jym | Sync with HEAD.
Commit is split, to avoid a "too many arguments" protocol error.
|
| 1.19.12.1 | 28-Apr-2009 |
skrll | Sync with HEAD.
|
| 1.19.4.1 | 04-May-2009 |
yamt | sync with head.
|
| 1.20.16.1 | 18-Feb-2012 |
mrg | merge to -current.
|
| 1.20.12.1 | 17-Apr-2012 |
yamt | sync with head
|
| 1.21.48.1 | 13-Apr-2020 |
martin | Mostly merge changes from HEAD upto 20200411
|
| 1.26.6.2 | 01-Aug-2021 |
thorpej | Sync with HEAD.
|
| 1.26.6.1 | 13-May-2021 |
thorpej | Sync with HEAD.
|
| 1.12 | 24-Apr-1998 |
drochner | Drivers for PC-like console devices are MI now.
|
| 1.11 | 12-Jan-1998 |
thorpej | Adjust for config changes.
|
| 1.10 | 24-Oct-1997 |
thorpej | In vga_erasecols(), fix botched count and reversed arguments to bus_space_set_region_2(). From Chris Demetriou <cgd@pa.dec.com>.
|
| 1.9 | 25-Sep-1997 |
thorpej | branches: 1.9.2; 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.
|
| 1.8 | 02-Sep-1997 |
thorpej | Nuke the idea of <machine/options.h>. It completely defeats the purpose of fine-grain option dependencies.
|
| 1.7 | 23-Jul-1997 |
cgd | branches: 1.7.2; update these to use the new 'correct' names for functions/constants in bus.h.
|
| 1.6 | 23-Jul-1997 |
cgd | remove a couple of outdated comments (pointed out by Kenneth Stailey
|
| 1.5 | 07-Apr-1997 |
cgd | by default, provide RCS IDs for NetBSD/alpha kernel files in kernel binaries. This can be disabled (to save a bit of space) with the NO_KERNEL_RCSIDS options, which is present but commented out in the ALPHA config file. In ELF-format kernels, these strings are present in the kernel binary but are not loaded into memory. (In ECOFF-format kernels, there's no easy way to keep them from being loaded, so they _are_ loaded into memory.)
|
| 1.4 | 06-Apr-1997 |
cgd | clean up NetBSD RCS ID strings, include machine/options.h
|
| 1.3 | 02-Dec-1996 |
cgd | branches: 1.3.2; convert to use bus_space_set_region_2() and bus_space_copy_2(), rather than in-line clear and copy loops.
|
| 1.2 | 23-Nov-1996 |
cgd | move probe and setup code into common functions. always probe (i.e. even if PCI and the IDs are right), just for sanity, before declaring success. Split the single 0x3b0 -> 0x3df allocation into three seperate ones: 0x3b0 -> 0x3bc (leaving the 4 ports available for lpt), 0x3c0 -> 0x3cf, and 0x3d0 -> 0x3df. The former chunk has to be split off if the lpt can exist there, and it's sort-of pretty to have each group (based on second hex digit) have its own handle.
|
| 1.1 | 19-Nov-1996 |
cgd | replace old PCI VGA driver with a common VGA back-end and ISA and PCI front-ends. Unfortunately, because of the way ISA and PCI are currently probed, if you have a PCI VGA board in your machine and both drivers in your kernel, the ISA VGA driver may accidentally match the PCI board. For now, the only solution to this is to not put both drivers in the GENERIC kernels.
|
| 1.3.2.5 | 12-Aug-1997 |
cgd | fix sync-o
|
| 1.3.2.4 | 12-Aug-1997 |
cgd | sync with -current as of August 11, 1997
|
| 1.3.2.3 | 22-Jul-1997 |
cgd | a few slight cleanups re: column defns
|
| 1.3.2.2 | 01-Jun-1997 |
cgd | sync the nwscons branch up with yesterday's version of the trunk. Lots of conflicts/changes because of the RCS Id format changes. Also, a few cleanups and corrections.
|
| 1.3.2.1 | 07-Dec-1996 |
cgd | snapshot of work in progress (on private branch): first checkin of reimplemented 'wscons' interfaces.
|
| 1.7.2.2 | 29-Sep-1997 |
thorpej | Update marc-pcmcia branch from trunk.
|
| 1.7.2.1 | 04-Sep-1997 |
thorpej | Update marc-pcmcia branch from trunk.
|
| 1.9.2.1 | 24-Oct-1997 |
thorpej | Pull up from trunk:
In vga_erasecols(), fix botched count and reversed arguments to bus_space_set_region_2(). From Chris Demetriou <cgd@pa.dec.com>.
|
| 1.4 | 24-Apr-1998 |
drochner | Drivers for PC-like console devices are MI now.
|
| 1.3 | 06-Apr-1997 |
cgd | clean up NetBSD RCS ID strings
|
| 1.2 | 23-Nov-1996 |
cgd | branches: 1.2.2; move probe and setup code into common functions. always probe (i.e. even if PCI and the IDs are right), just for sanity, before declaring success. Split the single 0x3b0 -> 0x3df allocation into three seperate ones: 0x3b0 -> 0x3bc (leaving the 4 ports available for lpt), 0x3c0 -> 0x3cf, and 0x3d0 -> 0x3df. The former chunk has to be split off if the lpt can exist there, and it's sort-of pretty to have each group (based on second hex digit) have its own handle.
|
| 1.1 | 19-Nov-1996 |
cgd | replace old PCI VGA driver with a common VGA back-end and ISA and PCI front-ends. Unfortunately, because of the way ISA and PCI are currently probed, if you have a PCI VGA board in your machine and both drivers in your kernel, the ISA VGA driver may accidentally match the PCI board. For now, the only solution to this is to not put both drivers in the GENERIC kernels.
|
| 1.2.2.2 | 01-Jun-1997 |
cgd | sync the nwscons branch up with yesterday's version of the trunk. Lots of conflicts/changes because of the RCS Id format changes. Also, a few cleanups and corrections.
|
| 1.2.2.1 | 07-Dec-1996 |
cgd | snapshot of work in progress (on private branch): first checkin of reimplemented 'wscons' interfaces.
|