freebsd-dev/sys/arm
Ed Schouten fa878ec311 Make it possible to safely use TPIDRURW from userspace.
On amd64, arm64 and i386, we have the possibility to switch between TLS
areas in userspace. The nice thing about this is that it makes it easier
to do light-weight threading, if we ever feel like doing that. On armv6,
let's go into the same direction by making it possible to safely use the
TPIDRURW register, which is intended for this purpose.

Clean up the ARMv6 code to remove md_tp entirely. Simply add a dedicated
field to the PCB to hold the value of TPIDRURW across context switches,
like we do for any other register. As userspace currently uses the
read-only TPIDRURO register, simply ensure that we keep both values in
sync where possible. The system calls for modifying the read-only
register will simply write the intended value into both registers, so
that it lazily ends up in the PCB during the next context switch.

Reviewed by:	https://reviews.freebsd.org/D7951
Approved by:	andrew
Reviewed by:	imp
Differential Revision:	https://reviews.freebsd.org/D7951
2016-09-22 08:14:59 +00:00
..
allwinner a10_mmc: Remove completly the PIO code now all access is done by DMA. 2016-09-10 17:45:35 +00:00
altera/socfpga Enable the build of micphy as part of generic miibus build, but only for 2016-07-28 05:59:56 +00:00
amlogic/aml8726 Use OF_prop_free instead of direct call to free(9) 2016-05-18 23:41:58 +00:00
annapurna/alpine Add driver for PCIe root complex on Annapurna Alpine platform. 2016-09-20 11:11:06 +00:00
arm Make it possible to safely use TPIDRURW from userspace. 2016-09-22 08:14:59 +00:00
at91 Use the new(-ish) CP15_SCTLR macro to generate system control reg accesses 2016-05-23 20:07:17 +00:00
broadcom/bcm2835 Remove some NULL checks after M_WAITOK allocations from sys/arm/. 2016-08-09 16:02:35 +00:00
cavium/cns11xx Spaces->tab in comment. 2016-05-23 20:13:17 +00:00
cloudabi32 Add very preliminary support for CloudABI for ARMv6. 2016-09-18 11:36:54 +00:00
conf Add driver for PCIe root complex on Annapurna Alpine platform. 2016-09-20 11:11:06 +00:00
freescale Postpone allocation of IRQ resource to the time when interrupt 2016-06-03 11:05:55 +00:00
include Make it possible to safely use TPIDRURW from userspace. 2016-09-22 08:14:59 +00:00
lpc Correct syntax errors that only show up when compiled with INVARIANTS. 2016-07-09 18:43:15 +00:00
mv Use nitems() macro instead of re-inventing it 2016-06-03 18:52:57 +00:00
nvidia TEGRA: Remove forgotten debug printf. 2016-08-19 11:12:59 +00:00
qemu While gem5 is not qemu, we treat it as "simulators" or "virtual environments". 2016-05-04 16:24:12 +00:00
rockchip Move arm's devmap to some generic place, so it can be used 2016-04-26 11:53:37 +00:00
samsung/exynos Correct syntax errors that only show up when compiled with INVARIANTS. 2016-07-09 18:43:15 +00:00
ti If present, honor the USB port mode (host or peripheral) set on DTS, if not, 2016-09-20 19:06:58 +00:00
versatile Move arm's devmap to some generic place, so it can be used 2016-04-26 11:53:37 +00:00
xilinx sys/arm: Minor spelling fixes. 2016-05-04 15:48:59 +00:00
xscale Nuke obio_bs_tag, it was used before it was initialized, and 2016-08-30 23:32:38 +00:00