Commit Graph

40933 Commits

Author SHA1 Message Date
thorpej
696858d5f9 Nuke these; we use the MI ISA DMA code now. 1998-07-08 04:57:13 +00:00
thorpej
98b07e4b07 Provide an ISA chipset tag via isa_attach_hook(). G/c home-grown
ISA DMA code, in favor of the MI code.
1998-07-08 04:56:13 +00:00
thorpej
b51b6b7c04 Lift-and-tweak from the i386 port (near-complete rewrite), providing
the ISA DMA stuff expected by machine-independent code.
1998-07-08 04:54:47 +00:00
thorpej
eeb19dd33c Remember our ISA chipset tag. 1998-07-08 04:53:33 +00:00
thorpej
f7e400a7ab Use the machine-independent ISA DMA code.
XXX We use COHERENT for now; need to deal with sync'ing DMA maps being
XXX used by the isadma driver.
1998-07-08 04:53:03 +00:00
thorpej
a177e7aedc Rearrange this a little so we can use MI ISA DMA code. XXX Should just
pull in files.isa, but Not Right Now, apparently.

Add the sound blaster driver here (XXX see above), and build the
arm32 bus_dma back-end.
1998-07-08 04:51:12 +00:00
thorpej
8e03657b43 Define two free lists: default, and one to protect ISA DMA-safe memory. 1998-07-08 04:49:21 +00:00
thorpej
d7d001fe70 Allow platform-specific code to define DMA-safe memory ranges for ISA.
If pages being loaded into the VM system intersect with any of these
ranges, the intersecting pages will be placed on a lower-priority
free list to protect them.
1998-07-08 04:48:20 +00:00
thorpej
d47ea67c1f Define one page free list, and put all pages on it. 1998-07-08 04:43:18 +00:00
thorpej
6fa49323d7 Put VMEbus RAM on a lower priority free list, since it's much slower (because
the MVME-147 doesn't cache access to any VMEbus space).
1998-07-08 04:40:28 +00:00
thorpej
6fb9a8addf Define one page free list, and put all pages on it. 1998-07-08 04:39:34 +00:00
thorpej
1bd007d54b Define 2 free lists: a default, and a "first16", which is where the first
16M of RAM goes (in an effort to protect ISA DMA-safe memory).
1998-07-08 04:38:33 +00:00
thorpej
26287d01ec Put the first 16M of RAM onto the "first16" free list, and everthing
else onto the default free list.
1998-07-08 04:37:43 +00:00
thorpej
a5dd574b12 Attempt to pull buffer cache pages out of the "first16" free list, in
an effort to avoid bouncing file system buffers (it's not clear how much
of a win this is, and it'll be pointless w/ a unified buffer cache, but
what the heck).
1998-07-08 04:36:39 +00:00
thorpej
1ea93eea1c Define one page free list, and put all pages on it. 1998-07-08 04:35:23 +00:00
thorpej
7fd701e0fa Add support for multiple memory free lists. There is at least one
default free list, and 0 - N additional free list, in order of descending
priority.

A new page allocation function, uvm_pagealloc_strat(), has been added,
providing three page allocation strategies:

	- normal: high -> low priority free list walk, taking the
	  page off the first free list that has one.

	- only: attempt to allocate a page only from the specified free
	  list, failing if that free list has none available.

	- fallback: if `only' fails, fall back on `normal'.

uvm_pagealloc(...) is provided for normal use (and is a synonym for
uvm_pagealloc_strat(..., UVM_PGA_STRAT_NORMAL, 0); the free list argument
is ignored for the `normal' case).

uvm_page_physload() now specified which free list the pages will be
loaded onto.  This means that some platforms which have multiple physical
memory segments may define additional vm_physsegs if they wish to break
individual physical segments into differing priorities.

Machine-dependent code must define _at least_ the following constants
in <machine/vmparam.h>:

	VM_NFREELIST: the number of free lists the system will have

	VM_FREELIST_DEFAULT: the default freelist (should always be 0,
	but is defined in machdep code so that it's with all of the
	other free list-related constants).

Additional free list names may be defined by machine-dependent code, but
they will only be used by machine-dependent code (e.g. for loading the
vm_physsegs).
1998-07-08 04:28:27 +00:00
thorpej
efd84d4a97 Add a "free_list" to UVM's vm_physseg, indicating which free list the
pages in that physseg are on when they're free.
1998-07-08 04:19:59 +00:00
scottr
6e47b1c654 mac68k/obio/if_mc_obio.c needs hide/integrate defines, too. Moved back to
if_mcvar.h.
1998-07-08 04:18:53 +00:00
scottr
d5b30c1cb1 Revert last change. 1998-07-08 04:16:05 +00:00
mjacob
638f0aab7c Clarify comment about what nodes are being 'found' and noted for later
use by an error handler:

 * There can be only one TurboLaser, and we'll overload it
 * with a bitmap of found turbo laser nodes. Note that
 * these are just the actual hard TL node IDS that we
 * discover here, not the virtual IDs that get assigned
 * to CPUs. During TLSB specific error handling we
 * only need to know which actual TLSB slots have boards
 * in them (irrespective of how many CPUs they have).
1998-07-08 01:03:41 +00:00
mjacob
a5e7f763c2 minor tweak, and example of how to do error insertion 1998-07-08 00:58:09 +00:00
mjacob
73c269fe20 attempt to catch some stuff for ev5 module info 1998-07-08 00:56:39 +00:00
mjacob
9f1070514c First (prelim placeholder) pass at machine check handler for tlsb 1998-07-08 00:49:06 +00:00
mjacob
adf058f0f7 There can only be one TurboLaser node, and now we'll overload
into the integer tlsb_found a bit map of found nodes and export
it to the rest of the kernel. This is so that at machine check
time when we're doing some TLSB/KFTXX error handling we don't
have to attempt a badaddr to look at all TLSB nodes (which will
just be too sad to try...).
1998-07-08 00:47:53 +00:00
mjacob
de4f340241 add some error handling specific definitions 1998-07-08 00:45:52 +00:00
mjacob
84076832df add some more offset definitions 1998-07-08 00:45:08 +00:00
mjacob
6f87cdce00 Start of the platform specific (RAWHIDE) machine check handler. This
is not really needed for this platform, except that we might want to
handle PCI errors which get reported through here. In any case, this
prints out more info than is usual. Will probably need to detune
this to be based upon DIAGNOSTIC defines.
1998-07-08 00:44:32 +00:00
mjacob
57190a7be7 use new mchkinfo structures for expect/recv storage 1998-07-08 00:42:14 +00:00
mjacob
9035e8b3eb Move the search for number of cpus up earlier because we need to know
how many cpus there are when we (now) valloc per-cpu machine check
structures.
1998-07-08 00:41:32 +00:00
mjacob
275fb86f8d add some error handling definitions 1998-07-08 00:40:18 +00:00
mjacob
35ffe8edb3 Add machine check type definitions. Structure the expected/received
machine check items.
1998-07-08 00:39:02 +00:00
mjacob
dfe345a444 common logout structure definitions, or a start thereof 1998-07-08 00:36:18 +00:00
cgd
0e1f4daac8 can't use fclose() in vforked() child this way. Fixes PR 5582. 1998-07-08 00:34:53 +00:00
mjacob
9c326571d3 add a common logout printing routine file 1998-07-08 00:34:49 +00:00
mjacob
163f4f10b1 add common logout printing routine file 1998-07-08 00:34:27 +00:00
mark
93179db2b7 Remove several pointless cache/tlb cleans. (From Neil Carson). 1998-07-08 00:18:16 +00:00
mark
e1fe0d71c0 Fix IOMD ID checks. 1998-07-08 00:15:59 +00:00
mark
9a4a105abb Remove un-necessary write buffer drains. (From Neil Carson). 1998-07-08 00:13:41 +00:00
mark
f79b12670f Simplify cache cleaning in page_move(). (From Neil Carson). 1998-07-08 00:12:33 +00:00
mark
9dccefd1c9 Simplify the included files. 1998-07-08 00:10:44 +00:00
mark
ddae1799a5 Make sure the write buffer is drained during syncing. 1998-07-08 00:08:39 +00:00
thorpej
8d986de632 Add support for mmap'ing disk block devices. 1998-07-07 23:22:13 +00:00
thorpej
de83dce0de On second thought, call that like the rest of the shared intr functions. 1998-07-07 22:24:38 +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
thorpej
1ddd528346 Fix typi. 1998-07-07 22:02:57 +00:00
thorpej
e82fc7d3cd The Pyxis core logic in the 164SX and 164LX seems to have problems with
stray interrupts.  Do what Digital UNIX (formerly DEC OSF/1) does; just
ignore strays.
1998-07-07 21:49:47 +00:00
thorpej
ca73507d0b The Pyxis core logic in the Miata seems to have problems with stray interrupts.
Do what Digital UNIX (formerly DEC OSF/1) does; just ignore strays.
1998-07-07 21:47:49 +00:00
thorpej
be83de18fd Use ALPHA_SHARED_INTR_DISABLE() to test if a shared interrupt should
be disabled after a stray.
1998-07-07 21:44:57 +00:00
kleink
14da82c71b Typo. 1998-07-07 21:39:20 +00:00
thorpej
443d238f70 Define a macro to test if a shared interrupt should be disabled after
a stray has occurred.
1998-07-07 21:37:11 +00:00