freebsd-dev/sys/arm
Jason A. Harmening 713841afb2 Add two new pmap functions:
vm_offset_t pmap_quick_enter_page(vm_page_t m)
void pmap_quick_remove_page(vm_offset_t kva)

These will create and destroy a temporary, CPU-local KVA mapping of a specified page.

Guarantees:
--Will not sleep and will not fail.
--Safe to call under a non-sleepable lock or from an ithread

Restrictions:
--Not guaranteed to be safe to call from an interrupt filter or under a spin mutex on all platforms
--Current implementation does not guarantee more than one page of mapping space across all platforms. MI code should not make nested calls to pmap_quick_enter_page.
--MI code should not perform locking while holding onto a mapping created by pmap_quick_enter_page

The idea is to use this in busdma, for bounce buffer copies as well as virtually-indexed cache maintenance on mips and arm.

NOTE: the non-i386, non-amd64 implementations of these functions still need review and testing.

Reviewed by:	kib
Approved by:	kib (mentor)
Differential Revision:	http://reviews.freebsd.org/D3013
2015-08-04 19:46:13 +00:00
..
allwinner Bring a few simplifications to a10_gpio: 2015-07-13 18:19:26 +00:00
altera/socfpga Use the new gic option on all configs that need it. 2015-05-10 12:13:27 +00:00
amlogic/aml8726 CALLOUT_MPSAFE has lost its meaning since r141428, i.e., for more than ten 2015-05-22 17:05:21 +00:00
annapurna/alpine Remove obsolete vendor code from Alpine platform support 2015-07-30 13:45:34 +00:00
arm Add two new pmap functions: 2015-08-04 19:46:13 +00:00
at91 Fix KSTACK_PAGES issue when the default value was changed in KERNCONF 2015-07-16 10:46:52 +00:00
broadcom/bcm2835 Add a missing wakeup when releasing ownership of the SPI hardware. 2015-06-02 16:07:28 +00:00
cavium/cns11xx Fix KSTACK_PAGES issue when the default value was changed in KERNCONF 2015-07-16 10:46:52 +00:00
conf BEAGLEBONE: remove dtrace from MODULES_EXTRA. 2015-08-04 19:04:02 +00:00
freescale Include a header required for vtophys(). 2015-06-06 14:26:40 +00:00
include Add two new pmap functions: 2015-08-04 19:46:13 +00:00
lpc Build the cpufunc_asm_* files based on the cpu type, not which config file 2015-03-29 22:43:39 +00:00
mv Include vm/pmap.h for pmap_kextract. 2015-04-04 23:03:11 +00:00
qemu Enable SMP on the qemu virt platform. We use the device tree to find which 2015-05-24 12:33:12 +00:00
rockchip Use the new gic option on all configs that need it. 2015-05-10 12:13:27 +00:00
samsung Fix KSTACK_PAGES issue when the default value was changed in KERNCONF 2015-07-16 10:46:52 +00:00
ti Pass correct type of argument to ti_gpio_unmask_irq in ti_gpio_activate_resource 2015-08-03 01:22:49 +00:00
versatile Include vm/pmap.h for pmap_kextract. 2015-04-04 23:03:11 +00:00
xilinx Use the new gic option on all configs that need it. 2015-05-10 12:13:27 +00:00
xscale Fix KSTACK_PAGES issue when the default value was changed in KERNCONF 2015-07-16 10:46:52 +00:00