Home | History | Annotate | Download | only in ibm4xx
History log of /src/sys/arch/powerpc/include/ibm4xx/pmap.h
RevisionDateAuthorComments
 1.22  28-Sep-2023  skrll Trailing whitespace.
 1.21  14-Mar-2020  ad pmap_remove_all(): Return a boolean value to indicate the behaviour. If
true, all mappings have been removed, the pmap is totally cleared out, and
UVM can then avoid doing the work to call pmap_remove() for each map entry.
If false, either nothing has been done, or some helpful arch-specific voodoo
has taken place.
 1.20  05-Mar-2020  rin Retire tlbpid_t (u_short):

- PID (ctx, ASID) is 8-bit length, not half word.
- For struct pmap, no need to use integer types smaller than word as
pm_ctx because of alignment.
- For ppc4xx_tlb_enter(), we need word-length storage for pid (and msr).

XXX
Better to rewrite pmap module with more suggestive integer types rather
than char, int, long, and so on.
 1.19  17-Jul-2019  skrll branches: 1.19.2;
Spell endianness correctly in comments
 1.18  19-Apr-2018  christos branches: 1.18.2;
s/static inline/static __inline/g for consistency.
 1.17  30-Jun-2011  matt branches: 1.17.52;
Modify mapiodev to take a third argument indicating whether the space
should be prefetchable (true) or not (false).
 1.16  20-Jun-2011  matt PowerPC now exports a common view of cpu.h, vmparam.h and pmap.h
when building a MODULAR kernel or compiling _MODULE.
It should be noted that MODULAR or _MODULE export a view of the kernel
as being MULTIPROCESSOR (even if isn't).
The shared pmap TLB uses mdpg in places where it used mdpg to avoid
deadly embrance inclusion problems.
 1.15  18-Jan-2011  matt branches: 1.15.4;
Add support for BookE Freescale MPC85xx (e500 core) processors.
Add fast softint support for PowerPC (though only booke uses it).
Redo FPU/VEC support and add e500 SPE support.
Rework trap/intrs to use a common trapframe format.
Support SOFTFLOAT (no hardfloat or fpu emulation) for BookE.
 1.14  09-Dec-2008  pooka branches: 1.14.6; 1.14.8;
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.13  21-Feb-2007  thorpej branches: 1.13.42; 1.13.46; 1.13.52; 1.13.54; 1.13.66;
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.12  24-Dec-2005  perry branches: 1.12.26;
Remove leading __ from __(const|inline|signed|volatile) -- it is obsolete.
 1.11  11-Dec-2005  christos merge ktrace-lwp.
 1.10  16-Jan-2005  chs branches: 1.10.8;
implement pmap_wired_count(). fix some places we would forget to splx().
move the parts of pte.h that were used into pmap.c (since they were really
pmap-internal details) and delete ibm4xx/pte.h. other misc cleanup.
 1.9  31-Aug-2004  simonb branches: 1.9.4;
Remove the unused MKTTE macro.
 1.8  17-Aug-2003  chs remove an unused proto.
 1.7  25-Jul-2003  scw Switch ibm4xx over to using the more flexible powerpc bus_space/bus_dma code.
 1.6  02-Apr-2003  thorpej branches: 1.6.2;
Use PAGE_SIZE rather than NBPG.
 1.5  22-Sep-2002  chs it really helps to get the stub right before cutting + pasting it 27 times.
alas, I did not. doh.
 1.4  22-Sep-2002  chs add pmap_remove_all() hook (empty on most platforms so far).
 1.3  13-Mar-2002  eeh pmap improvements:

Remove the cache flush routines that have been moved to cpu.c

Make sure we clear out the unused PA bits in the TTE which causes breakage
on some MMU models.
 1.2  11-Sep-2001  eeh branches: 1.2.4;
Implement pmap_growkernel().
 1.1  13-Jun-2001  simonb branches: 1.1.2; 1.1.4;
Add a port to IBM's PPC405GP Reference Board (the "walnut")
by Eduardo Horvath and Simon Burge of Wasabi Systems.

IBM 4xx series CPU features:
- New pmap and revised trap handler.
- Support on-chip timers, PCI controller, UARTs
- Framework for on-chip ethernet and watchdog timer.
General PowerPC features:
- Add in-kernel PPC floating point emulation
- New in{,4}_cksum that is between 1.5 and 5 times faster than the
old version depending on CPU type.
General changes:
- Kernel support for generic dbsym-style symbols.
 1.1.4.1  01-Oct-2001  fvdl Catch up with -current.
 1.1.2.3  10-Oct-2002  jdolecek sync kqueue with -current; this includes merge of gehenna-devsw branch,
merge of i386 MP branch, and part of autoconf rototil work
 1.1.2.2  16-Mar-2002  jdolecek Catch up with -current.
 1.1.2.1  13-Sep-2001  thorpej Update the kqueue branch to HEAD.
 1.2.4.3  18-Oct-2002  nathanw Catch up to -current.
 1.2.4.2  01-Apr-2002  nathanw Catch up to -current.
(CVS: It's not just a program. It's an adventure!)
 1.2.4.1  11-Sep-2001  nathanw file pmap.h was added on branch nathanw_sa on 2002-04-01 07:42:05 +0000
 1.6.2.5  17-Jan-2005  skrll Sync with HEAD.
 1.6.2.4  21-Sep-2004  skrll Fix the sync with head I botched.
 1.6.2.3  18-Sep-2004  skrll Sync with HEAD.
 1.6.2.2  03-Sep-2004  skrll Sync with HEAD
 1.6.2.1  03-Aug-2004  skrll Sync with HEAD
 1.9.4.1  29-Apr-2005  kent sync with -current
 1.10.8.2  26-Feb-2007  yamt sync with head.
 1.10.8.1  21-Jun-2006  yamt sync with head.
 1.12.26.1  27-Feb-2007  yamt - sync with head.
- move sched_changepri back to kern_synch.c as it doesn't know PPQ anymore.
 1.13.66.1  07-Jan-2011  matt PMAP_NC -> PMAP_NOCACHE.
 1.13.54.1  19-Jan-2009  skrll Sync with HEAD.
 1.13.52.1  13-Dec-2008  haad Update haad-dm branch to haad-dm-base2.
 1.13.46.1  04-May-2009  yamt sync with head.
 1.13.42.1  17-Jan-2009  mjf Sync with HEAD.
 1.14.8.1  06-Jun-2011  jruoho Sync with HEAD.
 1.14.6.1  05-Mar-2011  rmind sync with head
 1.15.4.1  23-Jun-2011  cherry Catchup with rmind-uvmplock merge.
 1.17.52.1  22-Apr-2018  pgoyette Sync with HEAD
 1.18.2.2  13-Apr-2020  martin Mostly merge changes from HEAD upto 20200411
 1.18.2.1  08-Apr-2020  martin Merge changes from current as of 20200406
 1.19.2.1  09-Mar-2020  martin Pull up following revision(s) (requested by rin in ticket #773):

sys/arch/powerpc/ibm4xx/pmap.c: revision 1.81
sys/arch/powerpc/ibm4xx/pmap.c: revision 1.82
sys/arch/powerpc/ibm4xx/pmap.c: revision 1.83
sys/arch/powerpc/ibm4xx/pmap.c: revision 1.84
sys/arch/powerpc/ibm4xx/pmap.c: revision 1.85
sys/arch/powerpc/include/ibm4xx/tlb.h: revision 1.6
sys/arch/powerpc/include/ibm4xx/pmap.h: revision 1.20

Misc non-critical fixes.
- __asm --> __asm volatile for sure
- turn DEBUG code in __asm into DIAGNOSTIC code in C
- style

ppc4xx_tlb_enter(): invalidate entry after clearing MSR for sure.

pmap_procwr(): use dcbst instead of dcbf as a tiny optimization.

Retire tlbpid_t (u_short):
- PID (ctx, ASID) is 8-bit length, not half word.
- For struct pmap, no need to use integer types smaller than word as
pm_ctx because of alignment.
- For ppc4xx_tlb_enter(), we need word-length storage for pid (and msr).
XXX
Better to rewrite pmap module with more suggestive integer types rather
than char, int, long, and so on.

Fix pmap_procwr().
While we need to turn off IMMU, DMMU should be kept on. Otherwise,
dcbst (and also icbi probably, though not documented clearly both
for 405 and 403) should not work correctly.

RSS XML Feed