Home | History | Annotate | Download | only in oea
History log of /src/sys/arch/powerpc/oea/pmap_kernel.c
RevisionDateAuthorComments
 1.14  15-Dec-2023  rin powerpc: oea: For OEA64_BRIDGE, 1:1 map up to 3GiB memory

As done for OEA. Note that kva over 3GiB is reserved.

Provide PMAP_MAP_POOLPAGE for OEA64_BRIDGE at the same time, by
which direct-mapped memory is utilized in order to work around
starvation of 512MiB kernel virtual space.

PR kern/57621
 1.13  16-Feb-2022  riastradh branches: 1.13.4;
powerpc: Implement pv-tracking for unmanaged pages.

Needed for drm.
 1.12  02-Mar-2021  thorpej Complete the pmap symbol renaming shenanigans for pmap_bootstrap[12]().
 1.11  06-Jul-2020  rin branches: 1.11.2;
Style and cosmetic changes. No binary changes intended.
 1.10  28-Jul-2012  matt Fix -fno-common fallout.
 1.9  30-Jun-2011  matt branches: 1.9.2;
Modify mapiodev to take a third argument indicating whether the space
should be prefetchable (true) or not (false).
 1.8  20-Jun-2011  matt Add #error for unknown PPC variant
Now that oea calls cpu_fixup_stubs, we don't need pmap_fixup_stubs.
 1.7  27-Feb-2011  rjs branches: 1.7.2;
Missing semicolon.
 1.6  26-Feb-2011  matt Can't pass a void.
 1.5  18-Feb-2011  matt Make sure stub routines are not profiled.
 1.4  18-Feb-2011  matt Move powerpc_mmap_flags since pmap.c can get compiled multiple time resulting
in multiple defintions of powerpc_mmap_flags.
 1.3  12-Feb-2011  matt When an OEA kernel is configured for multiple MMU types, use the new
powerpc fixup mechanism to bind the kernel to a particular MMU. This
avoids an indirect call for every pmap call.
 1.2  11-Dec-2008  pooka branches: 1.2.2; 1.2.4; 1.2.6; 1.2.10; 1.2.14; 1.2.16; 1.2.18;
rcs id police
 1.1  11-Dec-2008  pooka Since oea pmap.c is #included many times, put kernel_pmap_ptr into
its own source module to avoid multiple initialized data definitions.
 1.2.18.2  05-Mar-2011  bouyer Sync with HEAD
 1.2.18.1  17-Feb-2011  bouyer Sync with HEAD
 1.2.16.1  06-Jun-2011  jruoho Sync with HEAD.
 1.2.14.1  05-Mar-2011  rmind sync with head
 1.2.10.2  04-May-2009  yamt sync with head.
 1.2.10.1  11-Dec-2008  yamt file pmap_kernel.c was added on branch yamt-nfs-mp on 2009-05-04 08:11:44 +0000
 1.2.6.2  19-Jan-2009  skrll Sync with HEAD.
 1.2.6.1  11-Dec-2008  skrll file pmap_kernel.c was added on branch nick-hppapmap on 2009-01-19 13:16:37 +0000
 1.2.4.2  17-Jan-2009  mjf Sync with HEAD.
 1.2.4.1  11-Dec-2008  mjf file pmap_kernel.c was added on branch mjf-devfs2 on 2009-01-17 13:28:26 +0000
 1.2.2.2  13-Dec-2008  haad Update haad-dm branch to haad-dm-base2.
 1.2.2.1  11-Dec-2008  haad file pmap_kernel.c was added on branch haad-dm on 2008-12-13 01:13:24 +0000
 1.7.2.1  23-Jun-2011  cherry Catchup with rmind-uvmplock merge.
 1.9.2.1  30-Oct-2012  yamt sync with head
 1.11.2.1  03-Apr-2021  thorpej Sync with HEAD.
 1.13.4.1  29-Dec-2023  martin Additionally pull up following revision(s) (requested by rin in ticket #400):

sys/arch/powerpc/include/oea/pmap.h: revision 1.39
sys/arch/powerpc/include/pmap.h: revision 1.43
sys/arch/powerpc/oea/pmap_kernel.c: revision 1.14
sys/arch/powerpc/oea/pmap.c: revision 1.117
sys/arch/powerpc/oea/pmap.c: revision 1.118
sys/arch/powerpc/oea/pmap.c: revision 1.119
sys/arch/powerpc/include/vmparam.h: revision 1.27
sys/arch/powerpc/powerpc/trap.c: revision 1.165
sys/arch/powerpc/oea/pmap.c: revision 1.120
sys/arch/powerpc/oea/pmap.c: revision 1.121
sys/arch/powerpc/powerpc/vm_machdep.c: revision 1.106
sys/arch/powerpc/powerpc/bus_dma.c: revision 1.56

powerpc/oea: trap: pmap_{pte,ste}_spill() even in the interrupt context

Page table for oea is something like L2 TLB on memory; kernel and
processes share its entries, and process entries can be spilled out.

As done for MMU based on software-managed TLB, we need to restore
such entries even in the interrupt context.

Note that pmap_pte_spill() require no resouce to restore entries.
Still-not-implemented pmap_ste_spill() for OEA64 should also.
Part of PR kern/57621

powerpc/oea: pmap: Drop unused argument for pmap_pvo_reclaim(), NFC
Part of PR kern/57621

powerpc/oea: pmap: Rework pmap_pte_spill()

It was broken in many ways... Now, it gets working stable both for
OEA and OEA64_BRIDGE, as far as I can see.
Part of PR kern/57621

powerpc/oea: pmap: Fix mostly-pointless overhead of pmap_pvo_pool
(1) Drop __aligned(32) from struct pvo_entry; otherwise,
sizeof(struct pvo_entry) is round-up'ed to a multiple of 32.
(2) Do not set sizeof(struct pvo_entry) to `align` argument for
pool_init(9); it must be power of 2.
(3) Align pvo_entry to 32-byte boundary only if reasonably possible,
i.e., OEA without DIAGNOSTIC (--> POOL_REDZONE) for now.
Part of PR kern/57621

powerpc/oea: pmap_create: Use PR_ZERO and drop memset(9), NFC
Part of PR kern/57621

powerpc: oea: For OEA64_BRIDGE, 1:1 map up to 3GiB memory
As done for OEA. Note that kva over 3GiB is reserved.

Provide PMAP_MAP_POOLPAGE for OEA64_BRIDGE at the same time, by
which direct-mapped memory is utilized in order to work around
starvation of 512MiB kernel virtual space.
PR kern/57621

powerpc: Make sure direct-mapped buffer fits within correct range

For OEA and OEA64_BRIDGE, only first 3GiB memory is direct-mapped.
Part of PR kern/57621

RSS XML Feed