Commit Graph

41145 Commits

Author SHA1 Message Date
hubertf cab003200b Abort on "rm -rf /"... 1998-07-08 07:17:30 +00:00
thorpej 48abe1f910 From pmap.new.c (UVM case only):
Put the first 16M of RAM onto the "first16" free list, and everthing
else onto the default free list.
1998-07-08 05:41:59 +00:00
thorpej 9bbe01f100 Note that UVM is mandatory on the Shark (otherwise ISA DMA won't work) 1998-07-08 05:27:17 +00:00
mjacob ff376fbd03 Doh! Jason caught me being really stupid. There isn't necessarily
a linear 0..N mapping out of alpha_cpu_whami - which is what I was
using to index the new cpu machine check array. This is a quick hack
back to just using the first element while I think of a kinder function
that will do the function (per-platform) of whami->VIRTUAL CPU ID, which
if you think about it, is really necessary anyway.
1998-07-08 05:25:40 +00:00
thorpej 1b5fbe0b89 DRQ 4 is used to chain the two 8237s together. Make sure it's always
cascaded and that it will be unmasked when DMA is thawed after being
frozen.  (This also has the effect of making sure that no device ever
erroneously gets DRQ 4.)
1998-07-08 05:23:23 +00:00
thorpej 30291f0f2f Declare the ofisa soundblaster attachment. 1998-07-08 05:14:10 +00:00
thorpej e332a993e2 Initialize the machdep ISA DMA structures once we've done OpenFirmware
ISA DMA initialization.
1998-07-08 05:01:56 +00:00
thorpej 8d10a53ddb Use MI ISA DMA code (XXX this needs some work). 1998-07-08 05:01:17 +00:00
thorpej fcd0183e81 Remove all of the home-grown ISA DMA code, and translate the OpenFirmware
"dma-ranges" property into the pmap's ISA DMA ranges.
1998-07-08 05:00:40 +00:00
thorpej 28cbb7c537 Provide the ISA chipset tag. XXX This should go away in favor of a real
ofisa attachment of the "cs" driver.
1998-07-08 04:59:46 +00:00
thorpej f5535d79ca Provide the ISA chipset tag. 1998-07-08 04:59:02 +00:00
thorpej 8eeb7eaad0 Implement an ISA bus_dma back-end for NetBSD/arm32. Tested only on the
Shark, but should work for other ISA-"enabled" arm32 systems, as well.
1998-07-08 04:58:03 +00:00
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