Home | History | Annotate | Download | only in sun3x
History log of /src/sys/arch/sun3/sun3x/pmap.c
RevisionDateAuthorComments
 1.123  11-May-2024  andvar s/pmap_bootstap_aalign/pmap_bootstrap_aalign/ in comment.
 1.122  20-Dec-2023  thorpej Remove unnecessary <sys/malloc.h>.
 1.121  31-May-2022  andvar fix various typos in comments, documentation and messages.
 1.120  04-May-2022  andvar fix various typos in comments and log messages.
 1.119  03-May-2022  andvar fix various typos, mainly s/trasfering/transferring/ and s/theese/these/.
 1.118  05-Dec-2021  msaitoh s/coresponding/corresponding/ in comment.
 1.117  19-Aug-2020  tsutsui Make sure pmap_kenter_pa(9) handles uncached mappings properly.

Fixes "cgfour(4) is mis-probed as bwtwo(4)" problem on 3/80
that has been broken since NetBSD 1.6.
Now Xorg 1.20 based Xsun 8bpp color server is confirmed working
on the cgfour(4).

Should be pulled up to netbsd-9.

XXX: all MD PMAP_NC flags should be replaced with MI PMAP_NOCACHE flag.
 1.116  05-Mar-2020  msaitoh miscelaneous -> miscellaneous in comment.
 1.115  21-Aug-2019  skrll Spell pmap_bootstrap in comments correctly
 1.114  22-Dec-2016  cherry branches: 1.114.16; 1.114.20;
switch all ports to use uvm_init.c:uvm_md_init()

uvm_setpagesize() is now subsumed within this funciton.
 1.113  06-Sep-2013  tsutsui branches: 1.113.6; 1.113.10;
Tab/whitespace cleanup.
 1.112  03-Jun-2011  tsutsui branches: 1.112.2; 1.112.12; 1.112.16;
- remove simple_lock(9) and use atomic_ops(3) to account pmap reference count,
perrequest from rmind@
- while here no need to export struct pmap on sun2/sun3/sun3x

No particular problem for a week on hp300 and sun3x kernels with disabled
tcp_vtw which has been broken for a month on low memory machines.
 1.111  15-Oct-2010  tsutsui branches: 1.111.2; 1.111.6;
Make common kernel module binaries work on both sun3 and sun3x.
Tested on 3/160 (on TME) and (real) 3/80.

XXX: module files can be loaded only on single user?
 1.110  26-Nov-2009  matt branches: 1.110.2; 1.110.4;
Kill proc0paddr. Use lwp0.l_addr instead.
 1.109  21-Nov-2009  rmind Use lwp_getpcb() on sparc{64} and sun2/3 MD code, clean from struct user usage.
 1.108  07-Nov-2009  cegger Add a flags argument to pmap_kenter_pa(9).
Patch showed on tech-kern@ http://mail-index.netbsd.org/tech-kern/2009/11/04/msg006434.html
No objections.
 1.107  21-Oct-2009  rmind Remove uarea swap-out functionality:

- Addresses the issue described in PR/38828.
- Some simplification in threading and sleepq subsystems.
- Eliminates pmap_collect() and, as a side note, allows pmap optimisations.
- Eliminates XS_CTL_DATA_ONSTACK in scsipi code.
- Avoids few scans on LWP list and thus potentially long holds of proc_lock.
- Cuts ~1.5k lines of code. Reduces amd64 kernel size by ~4k.
- Removes __SWAP_BROKEN cases.

Tested on x86, mips, acorn32 (thanks <mpumford>) and partly tested on
acorn26 (thanks to <bjh21>).

Discussed on <tech-kern>, reviewed by <ad>.
 1.106  11-Aug-2009  matt Remove all declarations of physmem from sys/arch. Add an include of
<sys/systm.h> to the one file that did not already contain it.
This now means that physmem can be changed by updating systm.h and uvm_page.c
(excluding fixing printfs)
 1.105  25-Apr-2009  tsutsui Remove an extra whitespace.
 1.104  21-Apr-2009  cegger change pmap flags argument from int to u_int.
discussed with christos@ on source-changes-d@
 1.103  18-Mar-2009  cegger bcopy -> memcpy
 1.102  18-Mar-2009  cegger bzero -> memset
 1.101  10-Dec-2008  pooka branches: 1.101.2;
Make kernel_pmap_ptr a const. Requested by steve_martin.
 1.100  09-Dec-2008  pooka Make pmap_kernel() a MI macro for struct pmap *kernel_pmap_ptr,
which is now the "API" provided by the pmap module. pmap_kernel()
remains as the syntactic sugar.

Bonus cosmetics round: move all the pmap_t pointer typedefs into
uvm_pmap.h.

Thanks to Greg Oster for providing cpu muscle for doing test builds.
 1.99  28-Apr-2008  martin branches: 1.99.6; 1.99.8;
Remove clause 3 and 4 from TNF licenses
 1.98  17-Oct-2007  garbled branches: 1.98.16; 1.98.18; 1.98.20;
Merge the ppcoea-renovation branch to HEAD.

This branch was a major cleanup and rototill of many of the various OEA
cpu based PPC ports that focused on sharing as much code as possible
between the various ports to eliminate near-identical copies of files in
every tree. Additionally there is a new PIC system that unifies the
interface to interrupt code for all different OEA ppc arches. The work
for this branch was done by a variety of people, too long to list here.

TODO:
bebox still needs work to complete the transition to -renovation.
ofppc still needs a bunch of work, which I will be looking at.
ev64260 still needs to be renovated
amigappc was not attempted.

NOTES:
pmppc was removed as an arch, and moved to a evbppc target.
 1.97  18-May-2007  tsutsui branches: 1.97.10;
Adapt sun68k ports to yamt-idlelwp.
Tested on TME (sun2 and sun3) and 3/80 (sun3x).
 1.96  12-Mar-2007  ad branches: 1.96.2; 1.96.8;
Pass an ipl argument to pool_init/POOL_INIT to be used when initializing
the pool's lock.
 1.95  22-Feb-2007  thorpej branches: 1.95.4;
TRUE -> true, FALSE -> false
 1.94  21-Feb-2007  thorpej Replace the Mach-derived boolean_t type with the C99 bool type. A
future commit will replace use of TRUE and FALSE with true and false.
 1.93  24-Nov-2006  christos branches: 1.93.4;
fix spelling of accommodate; from Zapher.
 1.92  20-Sep-2006  tsutsui - move internal function declarations from pmap_pvt.h to pmap.c itself
- make some local functions static inline
- KNF a bit
 1.91  16-Sep-2006  tsutsui branches: 1.91.2;
Handle unwiring page cases properly in pmap_enter(9) and pmap_remove(9).
Previously sun3x pmap assumed that pmap_unwire(9) was the only interface
which should handle unwiring page, but nowadays apparently it isn't true.
Fixes a longstanding "panic: get_a_table: out of A tables"
(and also B, C tables) problem on my 3/80.

While here, make this compile with PMAP_DEBUG.
 1.90  10-May-2006  skrll branches: 1.90.6; 1.90.8;
Fix a bunch of cast lvalues.
 1.89  11-Dec-2005  christos branches: 1.89.4; 1.89.6; 1.89.8; 1.89.10; 1.89.12;
merge ktrace-lwp.
 1.88  03-Jun-2005  tsutsui branches: 1.88.2;
Fix shadowing variable warnings.
 1.87  29-May-2005  chs in pmap_enter(), preset the mod/ref bits based on the flags argument.
fixes 25640.
 1.86  22-Jan-2005  chs branches: 1.86.6;
de-__P, remove register, ansify, b* -> mem*, u_int*_t -> uint*_t.
 1.85  16-May-2004  wiz branches: 1.85.4;
"panicking" needs a k.
 1.84  26-Sep-2003  wiz branches: 1.84.2; 1.84.4;
Process has only one c. From miod@openbsd.
 1.83  15-Jul-2003  lukem __KERNEL_RCSID()
 1.82  23-Jun-2003  martin branches: 1.82.2;
Make sure to include opt_foo.h if a defflag option FOO is used.
 1.81  10-May-2003  thorpej Back out the following chagne:
http://mail-index.netbsd.org/source-changes/2003/05/08/0068.html

There were some side-effects that I didn't anticipate, and fixing them
is proving to be more difficult than I thought, do just eject for now.
Maybe one day we can look at this again.

Fixes PR kern/21517.
 1.80  08-May-2003  thorpej Simplify the way the bounds of the managed kernel virtual address
space is advertised to UVM by making virtual_avail and virtual_end
first-class exported variables by UVM. Machine-dependent code is
responsible for initializing them before main() is called. Anything
that steals KVA must adjust these variables accordingly.

This reduces the number of instances of this info from 3 to 1, and
simplifies the pmap(9) interface by removing the pmap_virtual_space()
function call, and removing two arguments from pmap_steal_memory().

This also eliminates some kludges such as having to burn kernel_map
entries on space used by the kernel and stolen KVA.

This also eliminates use of VM_{MIN,MAX}_KERNEL_ADDRESS from MI code,
this giving MD code greater flexibility over the bounds of the managed
kernel virtual address space if a given port's specific platforms can
vary in this regard (this is especially true of the evb* ports).
 1.79  01-Apr-2003  thorpej Use PAGE_SIZE rather than NBPG.
 1.78  28-Jan-2003  wiz eventually, not eventualy. Noted by mjl.
 1.77  28-Jan-2003  wiz success, not sucess. Noted by mjl.
 1.76  18-Jan-2003  thorpej Merge the nathanw_sa branch.
 1.75  20-Oct-2002  chs merge the 12 copies of vm_machdep.c on the m68k platforms.
clean up some other stuff along the way, including:
- use m68k/cacheops.*, remove duplicates from cpu.h.
- centralize a few declarations in (all the copies of) cpu.h.
- define M68K_VAC on platforms which have a VAC.
- switch the sun platforms to the (now common) proc_trampoline().
- do the phys_map thang on the sun platforms too, no reason not to.
 1.74  08-Mar-2002  thorpej Pool deals fairly well with physical memory shortage, but it doesn't
deal with shortages of the VM maps where the backing pages are mapped
(usually kmem_map). Try to deal with this:

* Group all information about the backend allocator for a pool in a
separate structure. The pool references this structure, rather than
the individual fields.
* Change the pool_init() API accordingly, and adjust all callers.
* Link all pools using the same backend allocator on a list.
* The backend allocator is responsible for waiting for physical memory
to become available, but will still fail if it cannot callocate KVA
space for the pages. If this happens, carefully drain all pools using
the same backend allocator, so that some KVA space can be freed.
* Change pool_reclaim() to indicate if it actually succeeded in freeing
some pages, and use that information to make draining easier and more
efficient.
* Get rid of PR_URGENT. There was only one use of it, and it could be
dealt with by the caller.

From art@openbsd.org.
 1.73  10-Sep-2001  chris branches: 1.73.4;
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.72  07-Sep-2001  tsutsui Fix function names in panic messages.
 1.71  05-Sep-2001  tsutsui branches: 1.71.2;
bcopy() -> memcpy(), bzero() -> memset()
 1.70  20-Aug-2001  wiz precede, not preceed.
 1.69  03-Jul-2001  chs branches: 1.69.2;
vm_offset_t -> [pv]addr_t.
implement pmap_k{enter_pa,remove}() correctly.
general cleanup.
 1.68  19-Jun-2001  wiz `existent', not `existant'
 1.67  02-Jun-2001  chs replace vm_map{,_entry}_t with struct vm_map{,_entry} *.
 1.66  25-Apr-2001  thorpej Garbage-collect pmap_page_index().
 1.65  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.64  23-Apr-2001  thorpej Add local prototype for internal pmap_bootstrap_alloc() function.
 1.63  22-Apr-2001  thorpej Remove pmap_kenter_pgs(). It was never really adopted by
anything, and the interface itself wasn't as flexible as
callers would have probably liked.
 1.62  21-Apr-2001  thorpej #define away pmap_update() in <machine/pmap.h> so that no function
call overhead is incurred as we start sprinkling pmap_update() calls
throughout the source tree (no pmaps currently defer operations, but
we are adding the infrastructure to allow them to do so).
 1.61  15-Mar-2001  chs eliminate the KERN_* error codes in favor of the traditional E* codes.
the mapping is:

KERN_SUCCESS 0
KERN_INVALID_ADDRESS EFAULT
KERN_PROTECTION_FAILURE EACCES
KERN_NO_SPACE ENOMEM
KERN_INVALID_ARGUMENT EINVAL
KERN_FAILURE various, mostly turn into KASSERTs
KERN_RESOURCE_SHORTAGE ENOMEM
KERN_NOT_RECEIVER <unused>
KERN_NO_ACCESS <unused>
KERN_PAGES_LOCKED <unused>
 1.60  20-Feb-2001  tsutsui branches: 1.60.2;
Adjust only avail_end address rather than reduce
the last bank size of avail_mem[] so that all RAM area
will be dumped in dumpsys().
 1.59  03-Feb-2001  tsutsui Remove declaration of copypage() and zeropage(); they are in <m68k/m68k.h>
 1.58  14-Jan-2001  thorpej splimp() -> splvm()
 1.57  24-Nov-2000  tsutsui PAGE_SIZE on sun3/sun3x is now constant;
Use uvmexp.pagesize itself for its initialization.
 1.56  27-Oct-2000  tsutsui Use pool(9) for pmap structures.
 1.55  21-Oct-2000  tsutsui Initialize pmap->pm_refcount properly in pmap_pinit() and
add simple_locks where pmap->pm_refcount are refered.

This should fix a long-standing "out of space kmem_map" panic bug on sun3x.
 1.54  29-Jun-2000  mrg remove include of <vm/vm.h>. <vm/vm.h> -> <uvm/uvm_extern.h>
 1.53  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.52  17-Dec-1999  jeremy branches: 1.52.4;
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.
 1.51  13-Nov-1999  thorpej Update for pmap_enter() API change. No functional difference.
 1.50  19-Sep-1999  chs branches: 1.50.2; 1.50.4; 1.50.8;
fix something that was missed in the PMAP_NEW cleanup.
 1.49  12-Sep-1999  chs 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.48  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.47  17-Jun-1999  thorpej pmap_change_wiring() -> pmap_unwire().
 1.46  17-Jun-1999  thorpej 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.
 1.45  08-Apr-1999  gwr branches: 1.45.2; 1.45.4;
Add opt_ddb.h
 1.44  26-Mar-1999  mycroft 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.43  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.42  26-Feb-1999  is sun3 part of fix for PR 6152
 1.41  16-Jan-1999  chuck MNN is no longer optional, remove dead code
 1.40  12-Dec-1998  gwr Fix MACHINE_NEW_NONCONTIG support (UVM works now:)
thanks to Izumi Tsutsui <tsutsui@ceres.dti.ne.jp>
Closes PR#6540
 1.39  08-Jul-1998  thorpej Define one page free list, and put all pages on it.
 1.38  09-Jun-1998  gwr First cut at UVM support. Compiles, but not tested yet.
 1.37  09-Jun-1998  gwr First cut at MACHINE_NEW_NONCONTIG - not enabled yet.
 1.36  19-May-1998  thorpej 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).
 1.35  09-Feb-1998  jeremy Modified the comments for the recentlty implemented pmap_map() function.
 1.34  08-Feb-1998  gwr Add pmap_map
 1.33  05-Feb-1998  gwr Merge arch/sun3x into arch/sun3
 1.32  22-Jan-1998  gwr branches: 1.32.4;
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).
 1.31  22-Jan-1998  gwr 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.
 1.30  02-Jan-1998  thorpej Make pmap_activate() take a proc *.
 1.29  23-Oct-1997  gwr 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.
 1.28  05-Oct-1997  gwr Do the cpu_kcore_hdr initialization a little differently.
(also fix - was not setting pg_frame, pg_valid)
 1.27  19-Sep-1997  leo 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.
 1.26  02-Jul-1997  jeremy branches: 1.26.2;
Implement pmap and va caching within C table managers to help speed
up PV->(pmap,va) operations.
 1.25  10-Jun-1997  veego s/_round_page/m68k_round_page/ s/_trunc_page/m68k_trunc_page/
s/_btop/m68k_btop/ s/_ptob/m68k_ptob/
 1.24  30-May-1997  jeremy 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.
 1.23  28-May-1997  jeremy 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.
 1.22  20-May-1997  jeremy 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.
 1.21  01-May-1997  gwr Implement pmap_pa_exists() so that /dev/mem works.
This was the reason ps (kvm_getargs) did not work.
 1.20  09-Apr-1997  thorpej Adjust for new kcore.h
 1.19  01-Apr-1997  jeremy 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.
 1.18  26-Mar-1997  gwr fix a warning
 1.17  21-Mar-1997  gwr First cut at crashdump support.
 1.16  13-Mar-1997  gwr s/sun3x_/_/ in sun3x_(round|trunc)_(page|seg) macros
 1.15  06-Mar-1997  gwr Get the numbers of kernel MMU tables right.
 1.14  06-Mar-1997  gwr Clean out some junk I forgot to remove last time...
 1.13  06-Mar-1997  gwr 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.
 1.12  02-Mar-1997  jeremy Took switch statement out of main loop in pmap_protect() and explained more
of the rationale behind it.
 1.11  22-Feb-1997  jeremy Rewrite pmap_remove() to be speedier with large address spaces.
 1.10  19-Feb-1997  jeremy Update copyright and fix typos in macro definition used when not debugging.
 1.9  16-Feb-1997  gwr 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...
 1.8  14-Feb-1997  gwr Add pmap_count(), fix some bugs... (from Jeremy).
 1.7  12-Feb-1997  gwr Latest version from Jeremy. Changes too numerous to describe here.
 1.6  02-Feb-1997  thorpej branches: 1.6.4;
Use copypage() and zeropage() in the right places.
 1.5  27-Jan-1997  gwr Change "machdep.h" to <machine/machdep.h>
 1.4  17-Jan-1997  gwr Adapt to rename of pcb_mmuctx to pcb_mmucrp, and corrected
prototype of loadcrp(), which kills some bogus type casts.
 1.3  16-Jan-1997  gwr Move declaration of struct mmu_rootptr to mc68851.h
Kill a cast that is now unnecessary.
 1.2  14-Jan-1997  gwr Punt some historical stuff that was ifdefed out.
 1.1  14-Jan-1997  gwr branches: 1.1.1;
Initial revision
 1.1.1.1  14-Jan-1997  gwr Initial import. Gets as far as nfs_mountroot.
 1.6.4.1  12-Mar-1997  is Merge in Changes from The Trunk.
 1.26.2.2  14-Oct-1997  thorpej Update marc-pcmcia branch from trunk.
 1.26.2.1  22-Sep-1997  thorpej Update marc-pcmcia branch from trunk.
 1.32.4.1  27-Jan-1998  gwr Merged Sun3 and Sun3X kernel sources.
 1.45.4.2  02-Aug-1999  thorpej Update from trunk.
 1.45.4.1  21-Jun-1999  thorpej Sync w/ -current.
 1.45.2.2  17-Jan-2001  he Pull up revision 1.55 (requested by tsutsui):
Properly handle pmap->pm_refcount (initialize and lock before
access). Should fix long-standing "out of space in kmem_map"
bug on sun3x.
 1.45.2.1  08-Apr-1999  he file pmap.c was added on branch netbsd-1-4 on 2001-01-17 16:37:46 +0000
 1.50.8.1  27-Dec-1999  wrstuden Pull up to last week's -current.
 1.50.4.1  15-Nov-1999  fvdl Sync with -current
 1.50.2.8  23-Apr-2001  bouyer Sync with HEAD.
 1.50.2.7  27-Mar-2001  bouyer Sync with HEAD.
 1.50.2.6  12-Mar-2001  bouyer Sync with HEAD.
 1.50.2.5  11-Feb-2001  bouyer Sync with HEAD.
 1.50.2.4  18-Jan-2001  bouyer Sync with head (for UBC+NFS fixes, mostly).
 1.50.2.3  08-Dec-2000  bouyer Sync with HEAD.
 1.50.2.2  22-Nov-2000  bouyer Sync with HEAD.
 1.50.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.52.4.1  21-Oct-2000  tv Pullup 1.55 [tsutsui]:
Initialize pmap->pm_refcount properly in pmap_pinit() and
add simple_locks where pmap->pm_refcount are refered.

This should fix a long-standing "out of space kmem_map" panic bug on sun3x.
 1.60.2.2  21-Jun-2001  nathanw Catch up to -current.
 1.60.2.1  09-Apr-2001  nathanw Catch up with -current.
 1.69.2.3  16-Mar-2002  jdolecek Catch up with -current.
 1.69.2.2  13-Sep-2001  thorpej Update the kqueue branch to HEAD.
 1.69.2.1  25-Aug-2001  thorpej Merge Aug 24 -current into the kqueue branch.
 1.71.2.1  01-Oct-2001  fvdl Catch up with -current.
 1.73.4.6  11-Nov-2002  nathanw Catch up to -current
 1.73.4.5  12-Jul-2002  nathanw No longer need to pull in lwp.h; proc.h pulls it in for us.
 1.73.4.4  24-Jun-2002  nathanw Curproc->curlwp renaming.

Change uses of "curproc->l_proc" back to "curproc", which is more like the
original use. Bare uses of "curproc" are now "curlwp".

"curproc" is now #defined in proc.h as ((curlwp) ? (curlwp)->l_proc) : NULL)
so that it is always safe to reference curproc (*de*referencing curproc
is another story, but that's always been true).
 1.73.4.3  01-Apr-2002  nathanw Catch up to -current.
(CVS: It's not just a program. It's an adventure!)
 1.73.4.2  18-Nov-2001  scw MD Scheduler Activation bits for sun3/3x.
Compile-tested only.
 1.73.4.1  10-Sep-2001  scw file pmap.c was added on branch nathanw_sa on 2001-11-18 19:39:05 +0000
 1.82.2.5  10-Nov-2005  skrll Sync with HEAD. Here we go again...
 1.82.2.4  24-Jan-2005  skrll Sync with HEAD.
 1.82.2.3  21-Sep-2004  skrll Fix the sync with head I botched.
 1.82.2.2  18-Sep-2004  skrll Sync with HEAD.
 1.82.2.1  03-Aug-2004  skrll Sync with HEAD
 1.84.4.1  08-Jun-2005  tron Pull up revision 1.87 (requested by chs in ticket #1980):
in pmap_enter(), preset the mod/ref bits based on the flags argument.
fixes 25640.
 1.84.2.1  08-Jun-2005  tron Pull up revision 1.87 (requested by chs in ticket #1980):
in pmap_enter(), preset the mod/ref bits based on the flags argument.
fixes 25640.
 1.85.4.1  29-Apr-2005  kent sync with -current
 1.86.6.2  23-Oct-2006  ghen Pull up following revision(s) (requested by tsutsui in ticket #1518):
sys/arch/sun3/sun3x/pmap.c: revision 1.91
sys/arch/sun3/sun3x/pmap.c: revision 1.88
Fix shadowing variable warnings.
Handle unwiring page cases properly in pmap_enter(9) and pmap_remove(9).
Previously sun3x pmap assumed that pmap_unwire(9) was the only interface
which should handle unwiring page, but nowadays apparently it isn't true.
Fixes a longstanding "panic: get_a_table: out of A tables"
(and also B, C tables) problem on my 3/80.
While here, make this compile with PMAP_DEBUG.
 1.86.6.1  06-Jun-2005  tron Pull up revision 1.87 (requested by chs in ticket #424):
in pmap_enter(), preset the mod/ref bits based on the flags argument.
fixes 25640.
 1.88.2.4  03-Sep-2007  yamt sync with head.
 1.88.2.3  26-Feb-2007  yamt sync with head.
 1.88.2.2  30-Dec-2006  yamt sync with head.
 1.88.2.1  21-Jun-2006  yamt sync with head.
 1.89.12.1  24-May-2006  tron Merge 2006-05-24 NetBSD-current into the "peter-altq" branch.
 1.89.10.1  11-May-2006  elad sync with head
 1.89.8.1  24-May-2006  yamt sync with head.
 1.89.6.1  01-Jun-2006  kardel Sync with head.
 1.89.4.1  09-Sep-2006  rpaulo sync with head
 1.90.8.2  12-Jan-2007  ad Sync with head.
 1.90.8.1  18-Nov-2006  ad Sync with head.
 1.90.6.1  23-Sep-2006  snj Pull up following revision(s) (requested by tsutsui in ticket #171):
sys/arch/sun3/sun3x/pmap.c: revision 1.91
Handle unwiring page cases properly in pmap_enter(9) and pmap_remove(9).
Previously sun3x pmap assumed that pmap_unwire(9) was the only interface
which should handle unwiring page, but nowadays apparently it isn't true.
Fixes a longstanding "panic: get_a_table: out of A tables"
(and also B, C tables) problem on my 3/80.
While here, make this compile with PMAP_DEBUG.
 1.91.2.2  10-Dec-2006  yamt sync with head.
 1.91.2.1  06-Oct-2006  tsutsui Sync files of recent sun3 and sun68k merge and intersil7170(4) changes
with HEAD to build sun3 kernel on this branch.
 1.93.4.2  24-Mar-2007  yamt sync with head.
 1.93.4.1  27-Feb-2007  yamt - sync with head.
- move sched_changepri back to kern_synch.c as it doesn't know PPQ anymore.
 1.95.4.2  27-May-2007  ad Sync with head.
 1.95.4.1  13-Mar-2007  ad Sync with head.
 1.96.8.1  22-May-2007  matt Update to HEAD.
 1.96.2.1  11-Jul-2007  mjf Sync with head.
 1.97.10.1  06-Nov-2007  matt sync with HEAD
 1.98.20.4  11-Mar-2010  yamt sync with head
 1.98.20.3  19-Aug-2009  yamt sync with head.
 1.98.20.2  04-May-2009  yamt sync with head.
 1.98.20.1  16-May-2008  yamt sync with head.
 1.98.18.1  18-May-2008  yamt sync with head.
 1.98.16.2  17-Jan-2009  mjf Sync with HEAD.
 1.98.16.1  02-Jun-2008  mjf Sync with HEAD.
 1.99.8.2  28-Apr-2009  skrll Sync with HEAD.
 1.99.8.1  19-Jan-2009  skrll Sync with HEAD.
 1.99.6.1  13-Dec-2008  haad Update haad-dm branch to haad-dm-base2.
 1.101.2.1  13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.110.4.2  12-Jun-2011  rmind sync with head
 1.110.4.1  05-Mar-2011  rmind sync with head
 1.110.2.2  30-Oct-2010  uebayasi Implement pmap_physload_device(9) to replace xmd(4) MD backend.
Implement pmap_mmap(9) and use it from mem(4) and xmd(4).
 1.110.2.1  22-Oct-2010  uebayasi Sync with HEAD (-D20101022).
 1.111.6.1  23-Jun-2011  cherry Catchup with rmind-uvmplock merge.
 1.111.2.1  06-Jun-2011  jruoho Sync with HEAD.
 1.112.16.1  18-May-2014  rmind sync with head
 1.112.12.2  03-Dec-2017  jdolecek update from HEAD
 1.112.12.1  20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.112.2.1  22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.113.10.1  07-Jan-2017  pgoyette Sync with HEAD. (Note that most of these changes are simply $NetBSD$
tag issues.)
 1.113.6.1  05-Feb-2017  skrll Sync with HEAD
 1.114.20.1  26-Aug-2020  martin Pull up following revision(s) (requested by tsutsui in ticket #1060):

sys/arch/sun3/sun3x/pmap.c: revision 1.117

Make sure pmap_kenter_pa(9) handles uncached mappings properly.

Fixes "cgfour(4) is mis-probed as bwtwo(4)" problem on 3/80
that has been broken since NetBSD 1.6.

Now Xorg 1.20 based Xsun 8bpp color server is confirmed working
on the cgfour(4).

Should be pulled up to netbsd-9.

XXX: all MD PMAP_NC flags should be replaced with MI PMAP_NOCACHE flag.
 1.114.16.2  13-Apr-2020  martin Mostly merge changes from HEAD upto 20200411
 1.114.16.1  08-Apr-2020  martin Merge changes from current as of 20200406

RSS XML Feed