freebsd-skq/sys/conf
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
..
config.mk Don't run find(1) for __MPATH with NO_MODULES set. 2016-07-22 17:31:14 +00:00
dtb.mk Add missed updates for r301079 and r301084. 2016-05-31 23:12:43 +00:00
files Add evdev protocol implementation 2016-09-11 18:56:38 +00:00
files.amd64 Make execution of 32-bit CloudABI executables work on amd64. 2016-08-24 10:51:33 +00:00
files.arm Add very preliminary support for CloudABI for ARMv6. 2016-09-18 11:36:54 +00:00
files.arm64 Fix the arm64 kernel build when DDB is disabled, debug_monitor.c depends on 2016-09-13 15:45:22 +00:00
files.i386 Make CloudABI work on i386. 2016-08-22 17:37:31 +00:00
files.mips [nvram2env] split implementation into generic & MIPS-based code 2016-07-24 08:35:45 +00:00
files.pc98 Merge i386 and amd64 variants of mp_watchdog.c into x86/, there is no 2016-08-03 13:51:53 +00:00
files.powerpc Merge MPC85XX and QorIQ config options 2016-08-03 01:22:11 +00:00
files.riscv o Remove operation in machine mode. 2016-08-10 12:41:36 +00:00
files.sparc64 simplify compile-time default keyboard map generation 2016-03-28 19:51:45 +00:00
kern.mk For kernel builds, instead of suppressing certain clang warnings, make 2016-09-04 17:55:22 +00:00
kern.opts.mk Change the default build behavior so we don't compile extra TCP modules by 2016-06-10 19:06:11 +00:00
kern.post.mk FAST_DEPEND: Fix 'make all install' not properly rebuilding based on .depend.* files. 2016-08-23 19:37:18 +00:00
kern.pre.mk Don't run find(1) for __MPATH with NO_MODULES set. 2016-07-22 17:31:14 +00:00
kmod_syms.awk
kmod.mk Revert r301079. 2016-06-03 19:25:36 +00:00
ldscript.amd64 remove CONSTRUCTORS from kernel linker scripts 2016-07-28 13:54:46 +00:00
ldscript.arm remove CONSTRUCTORS from kernel linker scripts 2016-07-28 13:54:46 +00:00
ldscript.arm64 Explicitly include all .rodata.* sections in the kernel .rodata. This 2016-09-03 17:23:24 +00:00
ldscript.i386 remove CONSTRUCTORS from kernel linker scripts 2016-07-28 13:54:46 +00:00
ldscript.mips remove CONSTRUCTORS from kernel linker scripts 2016-07-28 13:54:46 +00:00
ldscript.mips.cfe remove CONSTRUCTORS from kernel linker scripts 2016-07-28 13:54:46 +00:00
ldscript.mips.mips64 remove CONSTRUCTORS from kernel linker scripts 2016-07-28 13:54:46 +00:00
ldscript.mips.octeon1 remove CONSTRUCTORS from kernel linker scripts 2016-07-28 13:54:46 +00:00
ldscript.powerpc remove CONSTRUCTORS from kernel linker scripts 2016-07-28 13:54:46 +00:00
ldscript.powerpc64 remove CONSTRUCTORS from kernel linker scripts 2016-07-28 13:54:46 +00:00
ldscript.riscv o Remove operation in machine mode. 2016-08-10 12:41:36 +00:00
ldscript.sparc64 remove CONSTRUCTORS from kernel linker scripts 2016-07-28 13:54:46 +00:00
Makefile.amd64 Clang's 3.5 integrated assembler now handles these files correctly (it 2015-01-05 12:28:22 +00:00
Makefile.arm ARM: All remaining functions in cpufunc_asm_arm10.S are identical with 2016-02-02 14:53:34 +00:00
Makefile.arm64 Build changes that allow the modules on arm64. 2015-10-08 17:42:08 +00:00
Makefile.i386 Clang's 3.5 integrated assembler now handles these files correctly (it 2015-01-05 12:28:22 +00:00
Makefile.mips [mips] Improve MIPS trampoline code 2016-05-16 23:56:31 +00:00
Makefile.pc98 Fix kernel build ${MACHINE} path 2015-04-16 22:34:10 +00:00
Makefile.powerpc Make 32-bit PowerPC kernels, like 64-bit PowerPC kernels, position-independent 2015-03-07 20:14:46 +00:00
Makefile.riscv Set dependencies for genassym.c. 2016-05-24 16:30:05 +00:00
Makefile.sparc64
makeLINT.mk
makeLINT.sed
newvers.sh Reflect head is now 12.0-CURRENT. 2016-07-08 00:12:29 +00:00
NOTES Add evdev protocol implementation 2016-09-11 18:56:38 +00:00
options Add evdev protocol implementation 2016-09-11 18:56:38 +00:00
options.amd64 Remove remnants of PERFMON and I586_PMC_GUPROF from amd64. 2016-09-06 19:25:32 +00:00
options.arm Add support for Allwinner A13. 2016-07-08 23:38:25 +00:00
options.arm64 Add SOC_ALLWINNER_A64 option for Allwinner A64 (sun50i) SoCs. 2016-07-11 20:05:03 +00:00
options.i386 hyperv: Deprecate HYPERV option by moving Hyper-V IDT vector into vmbus 2016-04-15 02:20:18 +00:00
options.mips Add support for SMP on MIPS Malta platform. 2016-09-09 14:50:44 +00:00
options.pc98 Reduce diffs against i386. 2014-10-04 05:03:39 +00:00
options.powerpc Merge MPC85XX and QorIQ config options 2016-08-03 01:22:11 +00:00
options.riscv Revert r298477 ("Clear the DDR memory"). 2016-04-25 13:20:57 +00:00
options.sparc64
systags.sh
WITHOUT_SOURCELESS
WITHOUT_SOURCELESS_HOST
WITHOUT_SOURCELESS_UCODE Add nodevice iwmfw to WITHOUT_SOURCELESS_UCODE. 2015-08-08 20:45:47 +00:00