freebsd-nq/sys/arm
Ed Schouten 5e7b54b184 Add very preliminary support for CloudABI for ARMv6.
In order to make CloudABI work on ARMv6, start off by copying over the
sysvec for ARM64 and adjust it to use 32-bit registers. Also add code
for fetching arguments from the stack if needed, as there are fewer
register than on ARM64.

Also import the vDSO that is needed to invoke system calls. This vDSO
uses the intra procedure call register (ip) to store the system call
number. This is a bit simpler than what native FreeBSD does, as FreeBSD
uses r7, while preserving the original r7 into ip.

This sysvec seems to be complete enough to start CloudABI processes.
These processes are capable of linking in the vDSO and are therefore
capable of executing (most?) system calls successfully. Unfortunately,
the biggest show stopper is still that TLS is completely broken:

- The linker used by CloudABI, LLD, still has troubles with some of the
  relocations needed for TLS. See LLVM bug 30218 for more details.

- Whereas FreeBSD uses the tpidruro register for TLS, for CloudABI I
  want to make use of tpidrurw, so that userspace can modify the base
  address directly. This is needed for efficient emulation.
  Unfortunately, this register doesn't seem to be preserved across
  context switches yet.

Obtained from:	https://github.com/NuxiNL/cloudabi (the vDSO)
2016-09-18 11:36:54 +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 Remove messy machdep code for Alpine V1 and use proper drivers instead 2016-09-07 05:36:55 +00:00
arm Various changes to pmap_ts_referenced() 2016-09-10 16:49:25 +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 Remove CUBIEBOARD kernel config file. 2016-09-12 16:13:27 +00:00
freescale Postpone allocation of IRQ resource to the time when interrupt 2016-06-03 11:05:55 +00:00
include Implement userspace gettimeofday(2) with HPET timecounter. 2016-08-17 09:52:09 +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 Report the Silicon Revisions for the AM335x SoCs correctly. 2016-09-12 05:19:56 +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