2004-05-14 11:49:40 +00:00
|
|
|
# $FreeBSD$
|
2019-04-16 20:04:22 +00:00
|
|
|
|
|
|
|
kern/kern_clocksource.c standard
|
|
|
|
|
2007-10-25 14:16:07 +00:00
|
|
|
arm/arm/autoconf.c standard
|
|
|
|
arm/arm/bcopy_page.S standard
|
2004-05-14 11:49:40 +00:00
|
|
|
arm/arm/bcopyinout.S standard
|
|
|
|
arm/arm/blockio.S standard
|
|
|
|
arm/arm/bus_space_asm_generic.S standard
|
2015-11-21 15:30:08 +00:00
|
|
|
arm/arm/bus_space_base.c optional fdt
|
|
|
|
arm/arm/bus_space_generic.c standard
|
2020-02-02 08:27:14 +00:00
|
|
|
arm/arm/busdma_machdep.c standard
|
2004-05-14 11:49:40 +00:00
|
|
|
arm/arm/copystr.S standard
|
|
|
|
arm/arm/cpufunc.c standard
|
|
|
|
arm/arm/cpufunc_asm.S standard
|
2018-07-28 11:00:45 +00:00
|
|
|
arm/arm/cpufunc_asm_arm9.S optional cpu_arm9e
|
2015-03-29 22:43:39 +00:00
|
|
|
arm/arm/cpufunc_asm_arm11x6.S optional cpu_arm1176
|
2018-07-28 11:00:45 +00:00
|
|
|
arm/arm/cpufunc_asm_armv4.S optional cpu_arm9e
|
2015-03-29 22:43:39 +00:00
|
|
|
arm/arm/cpufunc_asm_armv5_ec.S optional cpu_arm9e
|
2017-02-02 06:14:44 +00:00
|
|
|
arm/arm/cpufunc_asm_armv7.S optional cpu_cortexa | cpu_krait | cpu_mv_pj4b
|
2015-03-29 22:43:39 +00:00
|
|
|
arm/arm/cpufunc_asm_pj4b.S optional cpu_mv_pj4b
|
|
|
|
arm/arm/cpufunc_asm_sheeva.S optional cpu_arm9e
|
2014-12-28 18:12:56 +00:00
|
|
|
arm/arm/cpuinfo.c standard
|
2017-10-05 23:01:50 +00:00
|
|
|
arm/arm/cpu_asm-v6.S optional armv7 | armv6
|
2004-05-14 11:49:40 +00:00
|
|
|
arm/arm/db_disasm.c optional ddb
|
|
|
|
arm/arm/db_interface.c optional ddb
|
|
|
|
arm/arm/db_trace.c optional ddb
|
2016-01-25 18:02:28 +00:00
|
|
|
arm/arm/debug_monitor.c optional ddb armv6
|
2017-10-05 23:01:50 +00:00
|
|
|
arm/arm/debug_monitor.c optional ddb armv7
|
2005-10-04 14:37:53 +00:00
|
|
|
arm/arm/disassem.c optional ddb
|
2004-05-14 11:49:40 +00:00
|
|
|
arm/arm/dump_machdep.c standard
|
|
|
|
arm/arm/elf_machdep.c standard
|
2014-10-18 13:38:04 +00:00
|
|
|
arm/arm/elf_note.S standard
|
2004-05-14 11:49:40 +00:00
|
|
|
arm/arm/exception.S standard
|
|
|
|
arm/arm/fiq.c standard
|
|
|
|
arm/arm/fiq_subr.S standard
|
|
|
|
arm/arm/fusu.S standard
|
2006-07-14 00:50:51 +00:00
|
|
|
arm/arm/gdb_machdep.c optional gdb
|
2015-11-21 16:23:56 +00:00
|
|
|
arm/arm/generic_timer.c optional generic_timer
|
2015-05-10 09:33:03 +00:00
|
|
|
arm/arm/gic.c optional gic
|
2016-08-01 16:29:04 +00:00
|
|
|
arm/arm/gic_fdt.c optional gic fdt
|
2017-10-05 23:01:50 +00:00
|
|
|
arm/arm/identcpu-v4.c optional !armv7 !armv6
|
|
|
|
arm/arm/identcpu-v6.c optional armv7 | armv6
|
2011-04-20 12:58:30 +00:00
|
|
|
arm/arm/in_cksum.c optional inet | inet6
|
|
|
|
arm/arm/in_cksum_arm.S optional inet | inet6
|
2016-04-15 16:05:41 +00:00
|
|
|
arm/arm/intr.c optional !intrng
|
|
|
|
kern/subr_intr.c optional intrng
|
2004-05-14 11:49:40 +00:00
|
|
|
arm/arm/locore.S standard no-obj
|
2017-10-05 23:01:50 +00:00
|
|
|
arm/arm/hypervisor-stub.S optional armv7 | armv6
|
2004-05-14 11:49:40 +00:00
|
|
|
arm/arm/machdep.c standard
|
2017-03-11 07:07:41 +00:00
|
|
|
arm/arm/machdep_boot.c standard
|
|
|
|
arm/arm/machdep_kdb.c standard
|
2015-12-18 05:43:59 +00:00
|
|
|
arm/arm/machdep_intr.c standard
|
2017-03-11 07:07:41 +00:00
|
|
|
arm/arm/machdep_ptrace.c standard
|
2004-11-22 22:20:50 +00:00
|
|
|
arm/arm/mem.c optional mem
|
2020-04-17 16:55:14 +00:00
|
|
|
arm/arm/minidump_machdep.c standard
|
2012-08-15 03:03:03 +00:00
|
|
|
arm/arm/mp_machdep.c optional smp
|
2015-11-21 16:23:56 +00:00
|
|
|
arm/arm/mpcore_timer.c optional mpcore_timer
|
2007-12-02 13:10:42 +00:00
|
|
|
arm/arm/nexus.c standard
|
2015-12-21 18:07:32 +00:00
|
|
|
arm/arm/ofw_machdep.c optional fdt
|
2012-12-13 23:03:37 +00:00
|
|
|
arm/arm/pl190.c optional pl190
|
2012-08-15 03:03:03 +00:00
|
|
|
arm/arm/pl310.c optional pl310
|
2014-05-17 11:27:36 +00:00
|
|
|
arm/arm/platform.c optional platform
|
|
|
|
arm/arm/platform_if.m optional platform
|
2017-07-11 16:30:16 +00:00
|
|
|
arm/arm/platform_pl310_if.m optional platform pl310
|
2017-10-05 23:01:50 +00:00
|
|
|
arm/arm/pmap-v4.c optional !armv7 !armv6
|
|
|
|
arm/arm/pmap-v6.c optional armv7 | armv6
|
2015-10-15 01:51:10 +00:00
|
|
|
arm/arm/pmu.c optional pmu | fdt hwpmc
|
2017-09-14 15:03:43 +00:00
|
|
|
arm/arm/ptrace_machdep.c standard
|
2012-08-25 23:59:31 +00:00
|
|
|
arm/arm/sc_machdep.c optional sc
|
2004-05-14 11:49:40 +00:00
|
|
|
arm/arm/setcpsr.S standard
|
|
|
|
arm/arm/setstack.s standard
|
Break out stack(9) from ddb(4):
- Introduce per-architecture stack_machdep.c to hold stack_save(9).
- Introduce per-architecture machine/stack.h to capture any common
definitions required between db_trace.c and stack_machdep.c.
- Add new kernel option "options STACK"; we will build in stack(9) if it is
defined, or also if "options DDB" is defined to provide compatibility
with existing users of stack(9).
Add new stack_save_td(9) function, which allows the capture of a stacktrace
of another thread rather than the current thread, which the existing
stack_save(9) was limited to. It requires that the thread be neither
swapped out nor running, which is the responsibility of the consumer to
enforce.
Update stack(9) man page.
Build tested: amd64, arm, i386, ia64, powerpc, sparc64, sun4v
Runtime tested: amd64 (rwatson), arm (cognet), i386 (rwatson)
2007-12-02 20:40:35 +00:00
|
|
|
arm/arm/stack_machdep.c optional ddb | stack
|
2013-06-13 18:46:49 +00:00
|
|
|
arm/arm/stdatomic.c standard \
|
|
|
|
compile-with "${NORMAL_C:N-Wmissing-prototypes}"
|
2004-05-14 11:49:40 +00:00
|
|
|
arm/arm/support.S standard
|
|
|
|
arm/arm/swtch.S standard
|
2017-10-05 23:01:50 +00:00
|
|
|
arm/arm/swtch-v4.S optional !armv7 !armv6
|
|
|
|
arm/arm/swtch-v6.S optional armv7 | armv6
|
2004-05-14 11:49:40 +00:00
|
|
|
arm/arm/sys_machdep.c standard
|
2014-10-01 12:44:16 +00:00
|
|
|
arm/arm/syscall.c standard
|
2017-10-05 23:01:50 +00:00
|
|
|
arm/arm/trap-v4.c optional !armv7 !armv6
|
|
|
|
arm/arm/trap-v6.c optional armv7 | armv6
|
2004-05-14 11:49:40 +00:00
|
|
|
arm/arm/uio_machdep.c standard
|
|
|
|
arm/arm/undefined.c standard
|
2019-11-14 17:04:19 +00:00
|
|
|
arm/arm/unwind.c optional ddb | kdtrace_hooks | stack
|
2004-05-14 11:49:40 +00:00
|
|
|
arm/arm/vm_machdep.c standard
|
2013-08-17 18:51:38 +00:00
|
|
|
arm/arm/vfp.c standard
|
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
|
|
|
arm/cloudabi32/cloudabi32_sysvec.c optional compat_cloudabi32
|
emulate illumos membar_producer with atomic_thread_fence_rel
membar_producer is supposed to be a store-store barrier.
Also, in the code that FreeBSD has ported from illumos membar_producer
is used only with regular stores to regular memory (with respect to
caching).
We do not have an MI primitive for the store-store barrier, so
atomic_thread_fence_rel is the closest we have as it provides
(load | store) -> store barrier.
Previously, membar_producer was an empty function call on all 32-bit
arm-s, 32-bit powerpc, riscv and all mips variants. I think that it was
inadequate.
On other platforms, such as amd64, arm64, i386, powerpc64, sparc64,
membar_producer was implemented using stronger primitives than required
for a store-store barrier with respect to regular memory access.
For example, it used sfence on amd64 and lock-ed nop in i386 (despite TSO).
On powerpc64 we now use recommended lwsync instead of eieio.
On sparc64 FreeBSD uses TSO mode.
On arm64/aarch64 we now use dmb sy instead of dmb ish. Not sure if this
is an improvement, actually.
After this change we can drop opensolaris_atomic.S for aarch64, amd64,
powerpc64 and sparc64 as all required atomic operations have either
direct or light-weight mapping to FreeBSD native atomic operations.
Discussed with: kib
MFC after: 4 weeks
2019-10-10 07:39:41 +00:00
|
|
|
cddl/compat/opensolaris/kern/opensolaris_atomic.c optional !armv7 !armv6 zfs | !armv7 !armv6 dtrace compile-with "${CDDL_C}"
|
2015-06-10 15:53:39 +00:00
|
|
|
cddl/dev/dtrace/arm/dtrace_asm.S optional dtrace compile-with "${DTRACE_S}"
|
|
|
|
cddl/dev/dtrace/arm/dtrace_subr.c optional dtrace compile-with "${DTRACE_C}"
|
|
|
|
cddl/dev/fbt/arm/fbt_isa.c optional dtrace_fbt | dtraceall compile-with "${FBT_C}"
|
2020-05-11 21:34:29 +00:00
|
|
|
crypto/des/des_enc.c optional netsmb
|
2016-09-06 21:36:20 +00:00
|
|
|
dev/cpufreq/cpufreq_dt.c optional cpufreq fdt
|
2015-09-20 14:13:29 +00:00
|
|
|
dev/dwc/if_dwc.c optional dwc
|
|
|
|
dev/dwc/if_dwc_if.m optional dwc
|
2012-08-25 23:59:31 +00:00
|
|
|
dev/fb/fb.c optional sc
|
2014-05-17 11:27:36 +00:00
|
|
|
dev/fdt/fdt_arm_platform.c optional platform fdt
|
2016-12-20 01:34:29 +00:00
|
|
|
dev/hdmi/hdmi_if.m optional hdmi
|
2009-12-23 23:53:30 +00:00
|
|
|
dev/hwpmc/hwpmc_arm.c optional hwpmc
|
2015-03-28 18:57:13 +00:00
|
|
|
dev/hwpmc/hwpmc_armv7.c optional hwpmc armv6
|
2017-10-05 23:01:50 +00:00
|
|
|
dev/hwpmc/hwpmc_armv7.c optional hwpmc armv7
|
2016-02-14 23:51:13 +00:00
|
|
|
dev/iicbus/twsi/twsi.c optional twsi
|
2016-03-29 15:19:56 +00:00
|
|
|
dev/ofw/ofwpci.c optional fdt pci
|
2016-11-21 18:24:05 +00:00
|
|
|
dev/pci/pci_host_generic.c optional pci_host_generic pci
|
|
|
|
dev/pci/pci_host_generic_fdt.c optional pci_host_generic pci fdt
|
2015-04-12 13:00:58 +00:00
|
|
|
dev/psci/psci.c optional psci
|
2019-09-13 15:56:33 +00:00
|
|
|
dev/psci/smccc_arm.S optional psci
|
2012-08-25 23:59:31 +00:00
|
|
|
dev/syscons/scgfbrndr.c optional sc
|
2013-05-21 03:05:49 +00:00
|
|
|
dev/uart/uart_cpu_fdt.c optional uart fdt
|
|
|
|
|
2016-05-16 09:11:40 +00:00
|
|
|
kern/msi_if.m optional intrng
|
2016-04-15 16:05:41 +00:00
|
|
|
kern/pic_if.m optional intrng
|
2012-12-20 00:57:24 +00:00
|
|
|
kern/subr_busdma_bufalloc.c standard
|
2016-04-26 11:53:37 +00:00
|
|
|
kern/subr_devmap.c standard
|
2020-04-19 00:12:30 +00:00
|
|
|
kern/subr_physmem.c standard
|
2014-08-05 09:44:10 +00:00
|
|
|
kern/subr_sfbuf.c standard
|
2013-03-16 04:06:49 +00:00
|
|
|
libkern/arm/aeabi_unwind.c standard
|
2004-05-14 11:49:40 +00:00
|
|
|
libkern/arm/divsi3.S standard
|
Implement the ffs and fls functions, and their longer counterparts, in
cpufunc, in terms of __builtin_ffs and the like, for arm32 v6 and v7
architectures, and use those, rather than the simple libkern
implementations, in building arm32 kernels.
Reviewed by: manu
Approved by: kib, markj (mentors)
Tested by: iz-rpi03_hs-karlsruhe.de, mikael.urankar_gmail.com, ian
Differential Revision: https://reviews.freebsd.org/D20412
2019-05-28 15:47:00 +00:00
|
|
|
libkern/arm/ffs.S optional !armv7 !armv6
|
2013-01-17 09:37:42 +00:00
|
|
|
libkern/arm/ldivmod.S standard
|
|
|
|
libkern/arm/ldivmod_helper.c standard
|
2015-07-09 20:54:38 +00:00
|
|
|
libkern/arm/memclr.S standard
|
2013-03-10 07:55:40 +00:00
|
|
|
libkern/arm/memcpy.S standard
|
2013-03-16 23:11:55 +00:00
|
|
|
libkern/arm/memset.S standard
|
2004-05-14 11:49:40 +00:00
|
|
|
libkern/arm/muldi3.c standard
|
|
|
|
libkern/ashldi3.c standard
|
|
|
|
libkern/ashrdi3.c standard
|
|
|
|
libkern/divdi3.c standard
|
Implement the ffs and fls functions, and their longer counterparts, in
cpufunc, in terms of __builtin_ffs and the like, for arm32 v6 and v7
architectures, and use those, rather than the simple libkern
implementations, in building arm32 kernels.
Reviewed by: manu
Approved by: kib, markj (mentors)
Tested by: iz-rpi03_hs-karlsruhe.de, mikael.urankar_gmail.com, ian
Differential Revision: https://reviews.freebsd.org/D20412
2019-05-28 15:47:00 +00:00
|
|
|
libkern/ffsl.c optional !armv7 !armv6
|
|
|
|
libkern/ffsll.c optional !armv7 !armv6
|
|
|
|
libkern/fls.c optional !armv7 !armv6
|
|
|
|
libkern/flsl.c optional !armv7 !armv6
|
|
|
|
libkern/flsll.c optional !armv7 !armv6
|
2004-05-14 11:49:40 +00:00
|
|
|
libkern/lshrdi3.c standard
|
2018-09-27 14:05:44 +00:00
|
|
|
libkern/memcmp.c standard
|
2004-05-14 11:49:40 +00:00
|
|
|
libkern/moddi3.c standard
|
|
|
|
libkern/qdivrem.c standard
|
2011-10-26 19:07:36 +00:00
|
|
|
libkern/ucmpdi2.c standard
|
2004-05-14 11:49:40 +00:00
|
|
|
libkern/udivdi3.c standard
|
|
|
|
libkern/umoddi3.c standard
|
2019-04-16 20:04:22 +00:00
|
|
|
|
2019-04-16 20:06:39 +00:00
|
|
|
# CloudABI support
|
|
|
|
cloudabi32_vdso.o optional compat_cloudabi32 \
|
|
|
|
dependency "$S/contrib/cloudabi/cloudabi_vdso_armv6.S" \
|
|
|
|
compile-with "${CC} -x assembler-with-cpp -shared -nostdinc -nostdlib -Wl,-T$S/compat/cloudabi/cloudabi_vdso.lds $S/contrib/cloudabi/cloudabi_vdso_armv6.S -o ${.TARGET}" \
|
|
|
|
no-obj no-implicit-rule \
|
|
|
|
clean "cloudabi32_vdso.o"
|
|
|
|
#
|
|
|
|
cloudabi32_vdso_blob.o optional compat_cloudabi32 \
|
|
|
|
dependency "cloudabi32_vdso.o" \
|
|
|
|
compile-with "${OBJCOPY} --input-target binary --output-target elf32-littlearm --binary-architecture arm cloudabi32_vdso.o ${.TARGET}" \
|
|
|
|
no-implicit-rule \
|
|
|
|
clean "cloudabi32_vdso_blob.o"
|
|
|
|
#
|
|
|
|
|
|
|
|
# Annapurna support
|
|
|
|
arm/annapurna/alpine/alpine_ccu.c optional al_ccu fdt
|
|
|
|
arm/annapurna/alpine/alpine_nb_service.c optional al_nb_service fdt
|
|
|
|
arm/annapurna/alpine/alpine_pci.c optional al_pci fdt
|
|
|
|
arm/annapurna/alpine/alpine_pci_msix.c optional al_pci fdt
|
|
|
|
arm/annapurna/alpine/alpine_serdes.c optional al_serdes fdt \
|
|
|
|
no-depend \
|
|
|
|
compile-with "${CC} -c -o ${.TARGET} ${CFLAGS} -I$S/contrib/alpine-hal -I$S/contrib/alpine-hal/eth ${PROF} ${.IMPSRC}"
|