Commit Graph

52 Commits

Author SHA1 Message Date
jeremy a1c67d1d61 Renamed a temporary variable in pmap_enter() that conflicted with the
name of the new 'flags' argument, added as part of the new pmap_enter() API.
Added a comment which explains why there are still sun3x-specific flags
being passed in the unused bits of the physical address, and how these flags
are independent of the new 'flags' argument.
1999-12-17 08:10:59 +00:00
thorpej 1946167939 Update for pmap_enter() API change. No functional difference. 1999-11-13 00:30:26 +00:00
chs b42715c204 fix something that was missed in the PMAP_NEW cleanup. 1999-09-19 19:05:44 +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 0288ffb53a pmap_change_wiring() -> pmap_unwire(). 1999-06-17 19:23:20 +00:00
thorpej f5a527bb4e Remove pmap_pageable(); no pmap implements it, and it is not really useful,
because pmap_enter()/pmap_change_wiring() (soon to be pmap_unwire())
communicate the information in greater detail.
1999-06-17 18:21:21 +00:00
gwr f6422020e5 Add opt_ddb.h 1999-04-08 05:07:35 +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
is d04273bac7 sun3 part of fix for PR 6152 1999-02-26 22:03:28 +00:00
chuck 90ddaed9b5 MNN is no longer optional, remove dead code 1999-01-16 20:43:21 +00:00
gwr e7810fa812 Fix MACHINE_NEW_NONCONTIG support (UVM works now:)
thanks to Izumi Tsutsui <tsutsui@ceres.dti.ne.jp>
Closes PR#6540
1998-12-12 05:25:01 +00:00
thorpej d47ea67c1f Define one page free list, and put all pages on it. 1998-07-08 04:43:18 +00:00
gwr 1b01ec0993 First cut at UVM support. Compiles, but not tested yet. 1998-06-09 20:47:17 +00:00
gwr c714d95b83 First cut at MACHINE_NEW_NONCONTIG - not enabled yet. 1998-06-09 20:31:28 +00:00
thorpej 6626878e7b It is no longer necessary for pmap_pinit() and pmap_release() to be
pmap interface functions, as NetBSD no longer uses statically allocated
pmaps (except for the kernel pmap, which is special-cased anyhow).
1998-05-19 19:00:11 +00:00
jeremy a1efa84a4d Modified the comments for the recentlty implemented pmap_map() function. 1998-02-09 19:56:37 +00:00
gwr e387ffba22 Add pmap_map 1998-02-08 04:57:58 +00:00
gwr eff2e270bd Merge arch/sun3x into arch/sun3 1998-02-05 04:56:24 +00:00
gwr cc1b4e4724 In pmap_bootstrap_copyprom, copy only the last PTE from the PROM's
DVMA segment (for the page reserved by the PROM).  If we copy all
the mappings, pmap_enter_kernel may complain about finding valid
PTEs that are not recorded in our PV lists.  Make pmap_remove_pte
do something reasonable if it finds a PTE for a managed page that
has not been recorded in the PV lists.  (Plus other minor stuff).
1998-01-22 22:00:25 +00:00
gwr 58126a3b29 Separate pmap_activate() from _pmap_switch(), so the latter can remain
equivalent to what locore.s:cpu_switch does with in-line assembly when
PMAP_DEBUG is not defined.  Also do splimp/splx in pmap_activate.
1998-01-22 21:48:42 +00:00
thorpej d14e18faa9 Make pmap_activate() take a proc *. 1998-01-02 20:10:26 +00:00
gwr 9420004b46 Remove the for-loop that wants to map multiple msgbuf pages.
Multiple msgbuf pages will not work without a redesign of
the kernel VM layout, so let's not pretend we can do it.
1997-10-23 02:24:41 +00:00
gwr c669b1bdeb Do the cpu_kcore_hdr initialization a little differently.
(also fix - was not setting pg_frame, pg_valid)
1997-10-05 20:43:27 +00:00
leo d4713d24c2 Implement the kernel part of pr-1891. This allows for a more flexible sized
msgbuf. Note that old 'dmesg' and 'syslogd' binaries will continue running,
though old 'dmesg' binaries will output a few bytes of junk at the start of
the buffer, and will miss a few bytes at the end of the buffer.
1997-09-19 13:52:37 +00:00
jeremy bbf76eb63e Implement pmap and va caching within C table managers to help speed
up PV->(pmap,va) operations.
1997-07-02 03:23:57 +00:00
veego 6cf26b26ae s/_round_page/m68k_round_page/ s/_trunc_page/m68k_trunc_page/
s/_btop/m68k_btop/ s/_ptob/m68k_ptob/
1997-06-10 19:42:25 +00:00
jeremy 3f6f86d875 Undo changes which make pmap_xxxx_page() functions re-entrant; just block
all interrupts which might cause re-entrancy.

Allow virtual addresses which are not managed by the MI VM system to
participate in the PV system.

Remove a few frivoulous TLB cache flushes.
1997-05-30 07:02:14 +00:00
jeremy 1b2aae80c2 Added new lock system for the two virtual pages used in temporary mappings.
Allows pmap_zero_page() and pmap_copy_page() to be re-entrant.
1997-05-28 04:28:52 +00:00
jeremy 0304ff6aed Implement code to dynamically size the number of page tables based on available
RAM at boot.

Also did some cleanup of unused functions, updated several comments, and
removed unecessary 'XXX's.
1997-05-20 06:01:19 +00:00
gwr 24af362f60 Implement pmap_pa_exists() so that /dev/mem works.
This was the reason ps (kvm_getargs) did not work.
1997-05-01 15:00:11 +00:00
thorpej a2be180b39 Adjust for new kcore.h 1997-04-09 21:00:35 +00:00
jeremy 68755b199e Physical page status functions pmap_clear_reference()
and pmap_clear_modify() weren't testing if the page whose status was being
changed was being managed.  This caused kernel panics with X11.
1997-04-01 02:15:33 +00:00
gwr c29412f1bb fix a warning 1997-03-26 23:27:12 +00:00
gwr c874276d35 First cut at crashdump support. 1997-03-21 22:46:05 +00:00
gwr ee531cb3c9 s/sun3x_/_/ in sun3x_(round|trunc)_(page|seg) macros 1997-03-13 17:40:33 +00:00
gwr 51cfd7ed4d Get the numbers of kernel MMU tables right. 1997-03-06 05:16:34 +00:00
gwr 9a79f92460 Clean out some junk I forgot to remove last time... 1997-03-06 00:15:56 +00:00
gwr a4e5a18b63 Add pmap_bootstrap_setprom() with sets the PROM level-A tables to
allow the PROM monitor to see mappings in kernel space.  This also
fixes a problem with exiting to the monitor with the stack pointer
set to some place in kernel space.  Also fix NUM_KERN_PTES, and
change get_pte() so it works on any virtual address.
1997-03-06 00:04:18 +00:00
jeremy 290f55615a Took switch statement out of main loop in pmap_protect() and explained more
of the rationale behind it.
1997-03-02 07:59:21 +00:00
jeremy 996c634929 Rewrite pmap_remove() to be speedier with large address spaces. 1997-02-22 03:18:30 +00:00
jeremy 035b20b171 Update copyright and fix typos in macro definition used when not debugging. 1997-02-19 04:17:32 +00:00
gwr 7190ad9936 Fix a major bug in pmap_remove_kernel() that causd the removal of
one page too many (worse, it unmapped our stack page... Ouch!)
Also, use loadcrp() and such instead of calling pmap_activate
in various places so we have more control over TLB flush.
Now pmap_activate() is called only by locore (and that call is
done only if PMAP_DEBUG is defined).  Other minor clean-up...
1997-02-16 19:38:08 +00:00
gwr 7275a8976f Add pmap_count(), fix some bugs... (from Jeremy). 1997-02-14 03:56:49 +00:00
gwr 27b8c79679 Latest version from Jeremy. Changes too numerous to describe here. 1997-02-12 23:09:32 +00:00
thorpej 8501929f45 Use copypage() and zeropage() in the right places. 1997-02-02 08:41:10 +00:00
gwr 2e2e2a855c Change "machdep.h" to <machine/machdep.h> 1997-01-27 22:33:34 +00:00
gwr aaf91fd6aa Adapt to rename of pcb_mmuctx to pcb_mmucrp, and corrected
prototype of loadcrp(), which kills some bogus type casts.
1997-01-17 16:27:17 +00:00
gwr f286cdd282 Move declaration of struct mmu_rootptr to mc68851.h
Kill a cast that is now unnecessary.
1997-01-16 22:12:50 +00:00