2002-06-30 08:05:21 +00:00
|
|
|
# This file tells config what files go into building a kernel,
|
|
|
|
# files marked standard are always included.
|
|
|
|
#
|
|
|
|
# $FreeBSD$
|
|
|
|
#
|
2019-08-12 22:58:56 +00:00
|
|
|
|
|
|
|
# common files stuff between i386 and amd64
|
|
|
|
include "conf/files.x86"
|
|
|
|
|
2002-06-30 08:05:21 +00:00
|
|
|
# The long compile-with and dependency lines are required because of
|
|
|
|
# limitations in config: backslash-newline doesn't work in strings, and
|
|
|
|
# dependency lines other than the first are silently ignored.
|
|
|
|
#
|
2004-08-16 07:55:06 +00:00
|
|
|
#
|
2016-08-24 10:51:33 +00:00
|
|
|
cloudabi32_vdso.o optional compat_cloudabi32 \
|
|
|
|
dependency "$S/contrib/cloudabi/cloudabi_vdso_i686_on_64bit.S" \
|
|
|
|
compile-with "${CC} -x assembler-with-cpp -m32 -shared -nostdinc -nostdlib -Wl,-T$S/compat/cloudabi/cloudabi_vdso.lds $S/contrib/cloudabi/cloudabi_vdso_i686_on_64bit.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 elf64-x86-64-freebsd --binary-architecture i386 cloudabi32_vdso.o ${.TARGET}" \
|
|
|
|
no-implicit-rule \
|
|
|
|
clean "cloudabi32_vdso_blob.o"
|
|
|
|
#
|
2016-08-10 21:02:41 +00:00
|
|
|
cloudabi64_vdso.o optional compat_cloudabi64 \
|
2016-08-21 07:28:38 +00:00
|
|
|
dependency "$S/contrib/cloudabi/cloudabi_vdso_x86_64.S" \
|
2016-08-21 15:14:06 +00:00
|
|
|
compile-with "${CC} -x assembler-with-cpp -shared -nostdinc -nostdlib -Wl,-T$S/compat/cloudabi/cloudabi_vdso.lds $S/contrib/cloudabi/cloudabi_vdso_x86_64.S -o ${.TARGET}" \
|
2016-08-10 21:02:41 +00:00
|
|
|
no-obj no-implicit-rule \
|
|
|
|
clean "cloudabi64_vdso.o"
|
|
|
|
#
|
|
|
|
cloudabi64_vdso_blob.o optional compat_cloudabi64 \
|
|
|
|
dependency "cloudabi64_vdso.o" \
|
|
|
|
compile-with "${OBJCOPY} --input-target binary --output-target elf64-x86-64-freebsd --binary-architecture i386 cloudabi64_vdso.o ${.TARGET}" \
|
|
|
|
no-implicit-rule \
|
|
|
|
clean "cloudabi64_vdso_blob.o"
|
|
|
|
#
|
2004-08-16 07:55:06 +00:00
|
|
|
linux32_genassym.o optional compat_linux32 \
|
2018-07-03 21:02:25 +00:00
|
|
|
dependency "$S/amd64/linux32/linux32_genassym.c offset.inc" \
|
2020-04-18 12:54:40 +00:00
|
|
|
compile-with "${CC} ${CFLAGS:N-flto:N-fno-common} -fcommon -c ${.IMPSRC}" \
|
2004-08-16 07:55:06 +00:00
|
|
|
no-obj no-implicit-rule \
|
|
|
|
clean "linux32_genassym.o"
|
|
|
|
#
|
|
|
|
linux32_assym.h optional compat_linux32 \
|
|
|
|
dependency "$S/kern/genassym.sh linux32_genassym.o" \
|
|
|
|
compile-with "sh $S/kern/genassym.sh linux32_genassym.o > ${.TARGET}" \
|
|
|
|
no-obj no-implicit-rule before-depend \
|
|
|
|
clean "linux32_assym.h"
|
|
|
|
#
|
2015-05-24 15:28:17 +00:00
|
|
|
linux32_locore.o optional compat_linux32 \
|
2019-07-30 17:18:31 +00:00
|
|
|
dependency "linux32_assym.h $S/amd64/linux32/linux32_locore.asm" \
|
2019-08-25 19:39:31 +00:00
|
|
|
compile-with "${CC} -x assembler-with-cpp -DLOCORE -m32 -shared -s -pipe -I. -I$S ${WERROR} -Wall -fPIC -fno-common -nostdinc -nostdlib -Wl,-T$S/amd64/linux32/linux32_vdso.lds.s -Wl,-soname=linux32_vdso.so,--eh-frame-hdr,-warn-common ${.IMPSRC} -o ${.TARGET}" \
|
2015-05-24 15:28:17 +00:00
|
|
|
no-obj no-implicit-rule \
|
|
|
|
clean "linux32_locore.o"
|
|
|
|
#
|
|
|
|
linux32_vdso.so optional compat_linux32 \
|
|
|
|
dependency "linux32_locore.o" \
|
2015-05-25 01:07:55 +00:00
|
|
|
compile-with "${OBJCOPY} --input-target binary --output-target elf64-x86-64-freebsd --binary-architecture i386 linux32_locore.o ${.TARGET}" \
|
2015-05-24 15:28:17 +00:00
|
|
|
no-implicit-rule \
|
|
|
|
clean "linux32_vdso.so"
|
|
|
|
#
|
2003-11-17 08:58:16 +00:00
|
|
|
ia32_genassym.o standard \
|
2018-07-03 05:56:23 +00:00
|
|
|
dependency "$S/compat/ia32/ia32_genassym.c offset.inc" \
|
2020-04-18 12:54:40 +00:00
|
|
|
compile-with "${CC} ${CFLAGS:N-flto:N-fno-common} -fcommon -c ${.IMPSRC}" \
|
2003-05-14 04:10:49 +00:00
|
|
|
no-obj no-implicit-rule \
|
|
|
|
clean "ia32_genassym.o"
|
|
|
|
#
|
2003-11-17 08:58:16 +00:00
|
|
|
ia32_assym.h standard \
|
2003-05-14 04:10:49 +00:00
|
|
|
dependency "$S/kern/genassym.sh ia32_genassym.o" \
|
2015-08-14 22:58:32 +00:00
|
|
|
compile-with "env NM='${NM}' NMFLAGS='${NMFLAGS}' sh $S/kern/genassym.sh ia32_genassym.o > ${.TARGET}" \
|
2003-05-14 04:10:49 +00:00
|
|
|
no-obj no-implicit-rule before-depend \
|
|
|
|
clean "ia32_assym.h"
|
|
|
|
#
|
2003-05-31 06:47:05 +00:00
|
|
|
amd64/acpica/acpi_machdep.c optional acpi
|
2010-07-12 21:08:35 +00:00
|
|
|
acpi_wakecode.o optional acpi \
|
2018-03-20 17:58:51 +00:00
|
|
|
dependency "$S/amd64/acpica/acpi_wakecode.S assym.inc" \
|
2010-07-12 21:08:35 +00:00
|
|
|
compile-with "${NORMAL_S}" \
|
2009-03-17 00:48:11 +00:00
|
|
|
no-obj no-implicit-rule before-depend \
|
2010-07-12 21:08:35 +00:00
|
|
|
clean "acpi_wakecode.o"
|
|
|
|
acpi_wakecode.bin optional acpi \
|
|
|
|
dependency "acpi_wakecode.o" \
|
2012-09-12 13:58:18 +00:00
|
|
|
compile-with "${OBJCOPY} -S -O binary acpi_wakecode.o ${.TARGET}" \
|
2010-07-12 21:08:35 +00:00
|
|
|
no-obj no-implicit-rule before-depend \
|
|
|
|
clean "acpi_wakecode.bin"
|
|
|
|
acpi_wakecode.h optional acpi \
|
|
|
|
dependency "acpi_wakecode.bin" \
|
|
|
|
compile-with "file2c -sx 'static char wakecode[] = {' '};' < acpi_wakecode.bin > ${.TARGET}" \
|
|
|
|
no-obj no-implicit-rule before-depend \
|
|
|
|
clean "acpi_wakecode.h"
|
|
|
|
acpi_wakedata.h optional acpi \
|
|
|
|
dependency "acpi_wakecode.o" \
|
2010-10-14 23:31:58 +00:00
|
|
|
compile-with '${NM} -n --defined-only acpi_wakecode.o | while read offset dummy what; do echo "#define $${what} 0x$${offset}"; done > ${.TARGET}' \
|
2010-07-12 21:08:35 +00:00
|
|
|
no-obj no-implicit-rule before-depend \
|
|
|
|
clean "acpi_wakedata.h"
|
2009-03-17 00:48:11 +00:00
|
|
|
#
|
2004-05-24 12:08:56 +00:00
|
|
|
#amd64/amd64/apic_vector.S standard
|
2004-09-24 01:08:34 +00:00
|
|
|
amd64/amd64/bios.c standard
|
2005-12-07 21:30:47 +00:00
|
|
|
amd64/amd64/bpf_jit_machdep.c optional bpf_jitter
|
2018-07-29 20:47:00 +00:00
|
|
|
amd64/amd64/copyout.c standard
|
2003-05-03 03:30:29 +00:00
|
|
|
amd64/amd64/cpu_switch.S standard
|
2003-05-30 01:03:43 +00:00
|
|
|
amd64/amd64/db_disasm.c optional ddb
|
|
|
|
amd64/amd64/db_interface.c optional ddb
|
|
|
|
amd64/amd64/db_trace.c optional ddb
|
2017-10-01 19:52:47 +00:00
|
|
|
amd64/amd64/efirt_machdep.c optional efirt
|
2018-09-02 21:37:05 +00:00
|
|
|
amd64/amd64/efirt_support.S optional efirt
|
2003-05-01 02:59:24 +00:00
|
|
|
amd64/amd64/elf_machdep.c standard
|
2003-05-03 00:19:42 +00:00
|
|
|
amd64/amd64/exception.S standard
|
2003-11-17 08:58:16 +00:00
|
|
|
amd64/amd64/fpu.c standard
|
2004-07-10 23:31:17 +00:00
|
|
|
amd64/amd64/gdb_machdep.c optional gdb
|
2011-04-20 12:58:30 +00:00
|
|
|
amd64/amd64/in_cksum.c optional inet | inet6
|
2003-05-01 02:59:24 +00:00
|
|
|
amd64/amd64/initcpu.c standard
|
2004-08-01 11:40:54 +00:00
|
|
|
amd64/amd64/io.c optional io
|
2003-05-03 00:19:42 +00:00
|
|
|
amd64/amd64/locore.S standard no-obj
|
2020-04-17 20:20:03 +00:00
|
|
|
amd64/amd64/xen-locore.S optional xenhvm \
|
2020-04-28 16:09:25 +00:00
|
|
|
compile-with "${NORMAL_S} -g0" \
|
|
|
|
no-ctfconvert
|
2003-05-01 02:59:24 +00:00
|
|
|
amd64/amd64/machdep.c standard
|
2004-08-01 11:40:54 +00:00
|
|
|
amd64/amd64/mem.c optional mem
|
Introduce minidumps. Full physical memory crash dumps are still available
via the debug.minidump sysctl and tunable.
Traditional dumps store all physical memory. This was once a good thing
when machines had a maximum of 64M of ram and 1GB of kvm. These days,
machines often have many gigabytes of ram and a smaller amount of kvm.
libkvm+kgdb don't have a way to access physical ram that is not mapped
into kvm at the time of the crash dump, so the extra ram being dumped
is mostly wasted.
Minidumps invert the process. Instead of dumping physical memory in
in order to guarantee that all of kvm's backing is dumped, minidumps
instead dump only memory that is actively mapped into kvm.
amd64 has a direct map region that things like UMA use. Obviously we
cannot dump all of the direct map region because that is effectively
an old style all-physical-memory dump. Instead, introduce a bitmap
and two helper routines (dump_add_page(pa) and dump_drop_page(pa)) that
allow certain critical direct map pages to be included in the dump.
uma_machdep.c's allocator is the intended consumer.
Dumps are a custom format. At the very beginning of the file is a header,
then a copy of the message buffer, then the bitmap of pages present in
the dump, then the final level of the kvm page table trees (2MB mappings
are expanded into a 4K page mappings), then the sparse physical pages
according to the bitmap. libkvm can now conveniently access the kvm
page table entries.
Booting my test 8GB machine, forcing it into ddb and forcing a dump
leads to a 48MB minidump. While this is a best case, I expect minidumps
to be in the 100MB-500MB range. Obviously, never larger than physical
memory of course.
minidumps are on by default. It would want be necessary to turn them off
if it was necessary to debug corrupt kernel page table management as that
would mess up minidumps as well.
Both minidumps and regular dumps are supported on the same machine.
2006-04-21 04:24:50 +00:00
|
|
|
amd64/amd64/minidump_machdep.c standard
|
2003-11-17 08:58:16 +00:00
|
|
|
amd64/amd64/mp_machdep.c optional smp
|
|
|
|
amd64/amd64/mpboot.S optional smp
|
2007-12-09 21:00:36 +00:00
|
|
|
amd64/amd64/pmap.c standard
|
2004-05-24 09:55:02 +00:00
|
|
|
amd64/amd64/prof_machdep.c optional profiling-routine
|
Add support for the extended FPU states on amd64, both for native
64bit and 32bit ABIs. As a side-effect, it enables AVX on capable
CPUs.
In particular:
- Query the CPU support for XSAVE, list of the supported extensions
and the required size of FPU save area. The hw.use_xsave tunable is
provided for disabling XSAVE, and hw.xsave_mask may be used to
select the enabled extensions.
- Remove the FPU save area from PCB and dynamically allocate the
(run-time sized) user save area on the top of the kernel stack,
right above the PCB. Reorganize the thread0 PCB initialization to
postpone it after BSP is queried for save area size.
- The dumppcb, stoppcbs and susppcbs now do not carry the FPU state as
well. FPU state is only useful for suspend, where it is saved in
dynamically allocated suspfpusave area.
- Use XSAVE and XRSTOR to save/restore FPU state, if supported and
enabled.
- Define new mcontext_t flag _MC_HASFPXSTATE, indicating that
mcontext_t has a valid pointer to out-of-struct extended FPU
state. Signal handlers are supplied with stack-allocated fpu
state. The sigreturn(2) and setcontext(2) syscall honour the flag,
allowing the signal handlers to inspect and manipilate extended
state in the interrupted context.
- The getcontext(2) never returns extended state, since there is no
place in the fixed-sized mcontext_t to place variable-sized save
area. And, since mcontext_t is embedded into ucontext_t, makes it
impossible to fix in a reasonable way. Instead of extending
getcontext(2) syscall, provide a sysarch(2) facility to query
extended FPU state.
- Add ptrace(2) support for getting and setting extended state; while
there, implement missed PT_I386_{GET,SET}XMMREGS for 32bit binaries.
- Change fpu_kern KPI to not expose struct fpu_kern_ctx layout to
consumers, making it opaque. Internally, struct fpu_kern_ctx now
contains a space for the extended state. Convert in-kernel consumers
of fpu_kern KPI both on i386 and amd64.
First version of the support for AVX was submitted by Tim Bird
<tim.bird am sony com> on behalf of Sony. This version was written
from scratch.
Tested by: pho (previous version), Yamagi Burmeister <lists yamagi org>
MFC after: 1 month
2012-01-21 17:45:27 +00:00
|
|
|
amd64/amd64/ptrace_machdep.c standard
|
2003-05-03 00:19:42 +00:00
|
|
|
amd64/amd64/sigtramp.S standard
|
|
|
|
amd64/amd64/support.S standard
|
2003-05-01 02:59:24 +00:00
|
|
|
amd64/amd64/sys_machdep.c standard
|
|
|
|
amd64/amd64/trap.c standard
|
2004-03-20 19:36:29 +00:00
|
|
|
amd64/amd64/uio_machdep.c standard
|
2003-10-14 05:51:31 +00:00
|
|
|
amd64/amd64/uma_machdep.c standard
|
2003-05-01 02:59:24 +00:00
|
|
|
amd64/amd64/vm_machdep.c standard
|
2016-08-24 10:51:33 +00:00
|
|
|
amd64/cloudabi32/cloudabi32_sysvec.c optional compat_cloudabi32
|
2015-07-16 18:24:06 +00:00
|
|
|
amd64/cloudabi64/cloudabi64_sysvec.c optional compat_cloudabi64
|
2003-11-17 08:58:16 +00:00
|
|
|
amd64/pci/pci_cfgreg.c optional pci
|
2015-06-10 15:53:39 +00:00
|
|
|
cddl/dev/dtrace/amd64/dtrace_asm.S optional dtrace compile-with "${DTRACE_S}"
|
|
|
|
cddl/dev/dtrace/amd64/dtrace_subr.c optional dtrace compile-with "${DTRACE_C}"
|
2010-07-23 11:00:46 +00:00
|
|
|
crypto/aesni/aeskeys_amd64.S optional aesni
|
2020-05-11 21:34:29 +00:00
|
|
|
crypto/des/des_enc.c optional netsmb
|
2020-10-20 17:50:18 +00:00
|
|
|
crypto/openssl/amd64/sha1-x86_64.S optional ossl
|
|
|
|
crypto/openssl/amd64/sha256-x86_64.S optional ossl
|
|
|
|
crypto/openssl/amd64/sha512-x86_64.S optional ossl
|
2009-06-23 13:17:25 +00:00
|
|
|
dev/acpi_support/acpi_wmi_if.m standard
|
2009-01-23 17:48:18 +00:00
|
|
|
dev/agp/agp_amd64.c optional agp
|
|
|
|
dev/agp/agp_i810.c optional agp
|
|
|
|
dev/agp/agp_via.c optional agp
|
2018-10-21 04:52:37 +00:00
|
|
|
dev/amdgpio/amdgpio.c optional amdgpio
|
2020-10-11 16:01:16 +00:00
|
|
|
dev/axgbe/if_axgbe_pci.c optional axp
|
|
|
|
dev/axgbe/xgbe-desc.c optional axp
|
|
|
|
dev/axgbe/xgbe-dev.c optional axp
|
|
|
|
dev/axgbe/xgbe-drv.c optional axp
|
|
|
|
dev/axgbe/xgbe-mdio.c optional axp
|
|
|
|
dev/axgbe/xgbe-sysctl.c optional axp
|
|
|
|
dev/axgbe/xgbe-txrx.c optional axp
|
|
|
|
dev/axgbe/xgbe_osdep.c optional axp
|
|
|
|
dev/axgbe/xgbe-i2c.c optional axp
|
|
|
|
dev/axgbe/xgbe-phy-v2.c optional axp
|
2019-10-30 19:53:46 +00:00
|
|
|
dev/hyperv/vmbus/amd64/hyperv_machdep.c optional hyperv
|
|
|
|
dev/hyperv/vmbus/amd64/vmbus_vector.S optional hyperv
|
2020-05-26 23:35:10 +00:00
|
|
|
dev/ice/if_ice_iflib.c optional ice pci \
|
|
|
|
compile-with "${NORMAL_C} -I$S/dev/ice"
|
|
|
|
dev/ice/ice_lib.c optional ice pci \
|
|
|
|
compile-with "${NORMAL_C} -I$S/dev/ice"
|
|
|
|
dev/ice/ice_osdep.c optional ice pci \
|
|
|
|
compile-with "${NORMAL_C} -I$S/dev/ice"
|
|
|
|
dev/ice/ice_resmgr.c optional ice pci \
|
|
|
|
compile-with "${NORMAL_C} -I$S/dev/ice"
|
|
|
|
dev/ice/ice_strings.c optional ice pci \
|
|
|
|
compile-with "${NORMAL_C} -I$S/dev/ice"
|
|
|
|
dev/ice/ice_iflib_recovery_txrx.c optional ice pci \
|
|
|
|
compile-with "${NORMAL_C} -I$S/dev/ice"
|
|
|
|
dev/ice/ice_iflib_txrx.c optional ice pci \
|
|
|
|
compile-with "${NORMAL_C} -I$S/dev/ice"
|
|
|
|
dev/ice/ice_common.c optional ice pci \
|
|
|
|
compile-with "${NORMAL_C} -I$S/dev/ice"
|
|
|
|
dev/ice/ice_controlq.c optional ice pci \
|
|
|
|
compile-with "${NORMAL_C} -I$S/dev/ice"
|
|
|
|
dev/ice/ice_dcb.c optional ice pci \
|
|
|
|
compile-with "${NORMAL_C} -I$S/dev/ice"
|
|
|
|
dev/ice/ice_flex_pipe.c optional ice pci \
|
|
|
|
compile-with "${NORMAL_C} -I$S/dev/ice"
|
|
|
|
dev/ice/ice_flow.c optional ice pci \
|
|
|
|
compile-with "${NORMAL_C} -I$S/dev/ice"
|
|
|
|
dev/ice/ice_nvm.c optional ice pci \
|
|
|
|
compile-with "${NORMAL_C} -I$S/dev/ice"
|
|
|
|
dev/ice/ice_sched.c optional ice pci \
|
|
|
|
compile-with "${NORMAL_C} -I$S/dev/ice"
|
|
|
|
dev/ice/ice_sriov.c optional ice pci \
|
|
|
|
compile-with "${NORMAL_C} -I$S/dev/ice"
|
|
|
|
dev/ice/ice_switch.c optional ice pci \
|
|
|
|
compile-with "${NORMAL_C} -I$S/dev/ice"
|
|
|
|
ice_ddp.c optional ice_ddp \
|
2020-09-04 17:37:58 +00:00
|
|
|
compile-with "${AWK} -f $S/tools/fw_stub.awk ice_ddp.fw:ice_ddp:0x01031000 -mice_ddp -c${.TARGET}" \
|
2020-05-26 23:35:10 +00:00
|
|
|
no-implicit-rule before-depend local \
|
|
|
|
clean "ice_ddp.c"
|
|
|
|
ice_ddp.fwo optional ice_ddp \
|
|
|
|
dependency "ice_ddp.fw" \
|
|
|
|
compile-with "${NORMAL_FWO}" \
|
|
|
|
no-implicit-rule \
|
|
|
|
clean "ice_ddp.fwo"
|
|
|
|
ice_ddp.fw optional ice_ddp \
|
2020-09-04 17:37:58 +00:00
|
|
|
dependency "$S/contrib/dev/ice/ice-1.3.16.0.pkg" \
|
|
|
|
compile-with "${CP} $S/contrib/dev/ice/ice-1.3.16.0.pkg ice_ddp.fw" \
|
2020-05-26 23:35:10 +00:00
|
|
|
no-obj no-implicit-rule \
|
|
|
|
clean "ice_ddp.fw"
|
2015-08-24 19:32:03 +00:00
|
|
|
dev/ioat/ioat.c optional ioat pci
|
|
|
|
dev/ioat/ioat_test.c optional ioat pci
|
2014-09-23 08:33:03 +00:00
|
|
|
dev/ixl/if_ixl.c optional ixl pci \
|
|
|
|
compile-with "${NORMAL_C} -I$S/dev/ixl"
|
2016-08-07 18:12:36 +00:00
|
|
|
dev/ixl/ixl_pf_main.c optional ixl pci \
|
|
|
|
compile-with "${NORMAL_C} -I$S/dev/ixl"
|
2020-06-09 22:42:54 +00:00
|
|
|
dev/ixl/ixl_pf_iflib.c optional ixl pci \
|
|
|
|
compile-with "${NORMAL_C} -I$S/dev/ixl"
|
2016-08-07 18:12:36 +00:00
|
|
|
dev/ixl/ixl_pf_qmgr.c optional ixl pci \
|
|
|
|
compile-with "${NORMAL_C} -I$S/dev/ixl"
|
2017-07-13 22:45:23 +00:00
|
|
|
dev/ixl/ixl_pf_iov.c optional ixl pci pci_iov \
|
2016-08-07 18:12:36 +00:00
|
|
|
compile-with "${NORMAL_C} -I$S/dev/ixl"
|
2017-02-10 01:04:11 +00:00
|
|
|
dev/ixl/ixl_pf_i2c.c optional ixl pci \
|
|
|
|
compile-with "${NORMAL_C} -I$S/dev/ixl"
|
2018-10-15 17:23:41 +00:00
|
|
|
dev/ixl/if_iavf.c optional iavf pci \
|
2014-09-23 08:33:03 +00:00
|
|
|
compile-with "${NORMAL_C} -I$S/dev/ixl"
|
2018-10-15 17:23:41 +00:00
|
|
|
dev/ixl/iavf_vc.c optional iavf pci \
|
2014-09-23 08:33:03 +00:00
|
|
|
compile-with "${NORMAL_C} -I$S/dev/ixl"
|
2018-10-12 22:40:54 +00:00
|
|
|
dev/ixl/ixl_txrx.c optional ixl pci | iavf pci \
|
2014-09-23 08:33:03 +00:00
|
|
|
compile-with "${NORMAL_C} -I$S/dev/ixl"
|
2018-10-12 22:40:54 +00:00
|
|
|
dev/ixl/i40e_osdep.c optional ixl pci | iavf pci \
|
2014-09-23 08:33:03 +00:00
|
|
|
compile-with "${NORMAL_C} -I$S/dev/ixl"
|
2018-10-12 22:40:54 +00:00
|
|
|
dev/ixl/i40e_lan_hmc.c optional ixl pci | iavf pci \
|
2014-09-23 08:33:03 +00:00
|
|
|
compile-with "${NORMAL_C} -I$S/dev/ixl"
|
2018-10-12 22:40:54 +00:00
|
|
|
dev/ixl/i40e_hmc.c optional ixl pci | iavf pci \
|
2014-09-23 08:33:03 +00:00
|
|
|
compile-with "${NORMAL_C} -I$S/dev/ixl"
|
2018-10-12 22:40:54 +00:00
|
|
|
dev/ixl/i40e_common.c optional ixl pci | iavf pci \
|
|
|
|
compile-with "${NORMAL_C} -I$S/dev/ixl"
|
|
|
|
dev/ixl/i40e_nvm.c optional ixl pci | iavf pci \
|
|
|
|
compile-with "${NORMAL_C} -I$S/dev/ixl"
|
|
|
|
dev/ixl/i40e_adminq.c optional ixl pci | iavf pci \
|
2014-09-23 08:33:03 +00:00
|
|
|
compile-with "${NORMAL_C} -I$S/dev/ixl"
|
2018-05-01 18:50:12 +00:00
|
|
|
dev/ixl/i40e_dcb.c optional ixl pci \
|
|
|
|
compile-with "${NORMAL_C} -I$S/dev/ixl"
|
2017-03-30 15:05:10 +00:00
|
|
|
dev/nctgpio/nctgpio.c optional nctgpio
|
2006-06-26 23:41:07 +00:00
|
|
|
dev/nfe/if_nfe.c optional nfe pci
|
2013-04-29 22:48:53 +00:00
|
|
|
dev/ntb/if_ntb/if_ntb.c optional if_ntb
|
2017-08-30 21:16:32 +00:00
|
|
|
dev/ntb/ntb_transport.c optional ntb_transport | if_ntb
|
2019-07-02 05:25:18 +00:00
|
|
|
dev/ntb/ntb.c optional ntb | ntb_transport | if_ntb | ntb_hw_amd | ntb_hw_intel | ntb_hw_plx | ntb_hw
|
|
|
|
dev/ntb/ntb_if.m optional ntb | ntb_transport | if_ntb | ntb_hw_amd | ntb_hw_intel | ntb_hw_plx | ntb_hw
|
|
|
|
dev/ntb/ntb_hw/ntb_hw_amd.c optional ntb_hw_amd | ntb_hw
|
2017-08-30 21:16:32 +00:00
|
|
|
dev/ntb/ntb_hw/ntb_hw_intel.c optional ntb_hw_intel | ntb_hw
|
|
|
|
dev/ntb/ntb_hw/ntb_hw_plx.c optional ntb_hw_plx | ntb_hw
|
2019-08-16 20:14:37 +00:00
|
|
|
dev/ntb/test/ntb_tool.c optional ntb_tool
|
2007-10-26 03:23:54 +00:00
|
|
|
dev/nvram/nvram.c optional nvram isa
|
random(4): Fix RANDOM_LOADABLE build
I introduced an obvious compiler error in r346282, so this change fixes
that.
Unfortunately, RANDOM_LOADABLE isn't covered by our existing tinderbox, and
it seems like there were existing latent linking problems. I believe these
were introduced on accident in r338324 during reduction of the boolean
expression(s) adjacent to randomdev.c and hash.c. It seems the
RANDOM_LOADABLE build breakage has gone unnoticed for nine months.
This change correctly annotates randomdev.c and hash.c with !random_loadable
to match the pre-r338324 logic; and additionally updates the HWRNG drivers
in MD 'files.*', which depend on random_device symbols, with
!random_loadable (it is invalid for the kernel to depend on symbols from a
module).
(The expression for both randomdev.c and hash.c was the same, prior to
r338324: "optional random random_yarrow | random !random_yarrow
!random_loadable". I.e., "random && (yarrow || !loadable)." When Yarrow
was removed ("yarrow := False"), the expression was incorrectly reduced to
"optional random" when it should have retained "random && !loadable".)
Additionally, I discovered that virtio_random was missing a MODULE_DEPEND on
random_device, which breaks kld load/link of the driver on RANDOM_LOADABLE
kernels. Address that issue as well.
PR: 238223
Reported by: Eir Nym <eirnym AT gmail.com>
Reviewed by: delphij, markm
Approved by: secteam(delphij)
Sponsored by: Dell EMC Isilon
Differential Revision: https://reviews.freebsd.org/D20466
2019-06-01 01:22:21 +00:00
|
|
|
dev/random/ivy.c optional rdrand_rng !random_loadable
|
|
|
|
dev/random/nehemiah.c optional padlock_rng !random_loadable
|
2013-06-25 17:50:22 +00:00
|
|
|
dev/qlxge/qls_dbg.c optional qlxge pci
|
|
|
|
dev/qlxge/qls_dump.c optional qlxge pci
|
|
|
|
dev/qlxge/qls_hw.c optional qlxge pci
|
|
|
|
dev/qlxge/qls_ioctl.c optional qlxge pci
|
|
|
|
dev/qlxge/qls_isr.c optional qlxge pci
|
|
|
|
dev/qlxge/qls_os.c optional qlxge pci
|
2011-11-03 21:20:22 +00:00
|
|
|
dev/qlxgb/qla_dbg.c optional qlxgb pci
|
|
|
|
dev/qlxgb/qla_hw.c optional qlxgb pci
|
|
|
|
dev/qlxgb/qla_ioctl.c optional qlxgb pci
|
|
|
|
dev/qlxgb/qla_isr.c optional qlxgb pci
|
|
|
|
dev/qlxgb/qla_misc.c optional qlxgb pci
|
|
|
|
dev/qlxgb/qla_os.c optional qlxgb pci
|
2013-05-15 17:03:09 +00:00
|
|
|
dev/qlxgbe/ql_dbg.c optional qlxgbe pci
|
|
|
|
dev/qlxgbe/ql_hw.c optional qlxgbe pci
|
|
|
|
dev/qlxgbe/ql_ioctl.c optional qlxgbe pci
|
|
|
|
dev/qlxgbe/ql_isr.c optional qlxgbe pci
|
|
|
|
dev/qlxgbe/ql_misc.c optional qlxgbe pci
|
|
|
|
dev/qlxgbe/ql_os.c optional qlxgbe pci
|
|
|
|
dev/qlxgbe/ql_reset.c optional qlxgbe pci
|
2019-06-26 16:23:24 +00:00
|
|
|
dev/qlxgbe/ql_fw.c optional qlxgbe pci
|
|
|
|
dev/qlxgbe/ql_boot.c optional qlxgbe pci
|
|
|
|
dev/qlxgbe/ql_minidump.c optional qlxgbe pci
|
2017-04-06 13:30:31 +00:00
|
|
|
dev/qlnx/qlnxe/ecore_cxt.c optional qlnxe pci \
|
|
|
|
compile-with "${LINUXKPI_C}"
|
|
|
|
dev/qlnx/qlnxe/ecore_dbg_fw_funcs.c optional qlnxe pci \
|
|
|
|
compile-with "${LINUXKPI_C}"
|
|
|
|
dev/qlnx/qlnxe/ecore_dcbx.c optional qlnxe pci \
|
|
|
|
compile-with "${LINUXKPI_C}"
|
|
|
|
dev/qlnx/qlnxe/ecore_dev.c optional qlnxe pci \
|
|
|
|
compile-with "${LINUXKPI_C}"
|
|
|
|
dev/qlnx/qlnxe/ecore_hw.c optional qlnxe pci \
|
|
|
|
compile-with "${LINUXKPI_C}"
|
|
|
|
dev/qlnx/qlnxe/ecore_init_fw_funcs.c optional qlnxe pci \
|
|
|
|
compile-with "${LINUXKPI_C}"
|
|
|
|
dev/qlnx/qlnxe/ecore_init_ops.c optional qlnxe pci \
|
|
|
|
compile-with "${LINUXKPI_C}"
|
|
|
|
dev/qlnx/qlnxe/ecore_int.c optional qlnxe pci \
|
|
|
|
compile-with "${LINUXKPI_C}"
|
|
|
|
dev/qlnx/qlnxe/ecore_l2.c optional qlnxe pci \
|
|
|
|
compile-with "${LINUXKPI_C}"
|
|
|
|
dev/qlnx/qlnxe/ecore_mcp.c optional qlnxe pci \
|
|
|
|
compile-with "${LINUXKPI_C}"
|
|
|
|
dev/qlnx/qlnxe/ecore_sp_commands.c optional qlnxe pci \
|
|
|
|
compile-with "${LINUXKPI_C}"
|
|
|
|
dev/qlnx/qlnxe/ecore_spq.c optional qlnxe pci \
|
|
|
|
compile-with "${LINUXKPI_C}"
|
|
|
|
dev/qlnx/qlnxe/qlnx_ioctl.c optional qlnxe pci \
|
|
|
|
compile-with "${LINUXKPI_C}"
|
|
|
|
dev/qlnx/qlnxe/qlnx_os.c optional qlnxe pci \
|
|
|
|
compile-with "${LINUXKPI_C}"
|
2016-05-14 08:55:15 +00:00
|
|
|
dev/sfxge/common/ef10_ev.c optional sfxge pci
|
|
|
|
dev/sfxge/common/ef10_filter.c optional sfxge pci
|
2018-11-29 06:29:24 +00:00
|
|
|
dev/sfxge/common/ef10_image.c optional sfxge pci
|
2016-05-14 08:55:15 +00:00
|
|
|
dev/sfxge/common/ef10_intr.c optional sfxge pci
|
|
|
|
dev/sfxge/common/ef10_mac.c optional sfxge pci
|
|
|
|
dev/sfxge/common/ef10_mcdi.c optional sfxge pci
|
|
|
|
dev/sfxge/common/ef10_nic.c optional sfxge pci
|
|
|
|
dev/sfxge/common/ef10_nvram.c optional sfxge pci
|
|
|
|
dev/sfxge/common/ef10_phy.c optional sfxge pci
|
|
|
|
dev/sfxge/common/ef10_rx.c optional sfxge pci
|
|
|
|
dev/sfxge/common/ef10_tx.c optional sfxge pci
|
|
|
|
dev/sfxge/common/ef10_vpd.c optional sfxge pci
|
2015-05-25 08:34:55 +00:00
|
|
|
dev/sfxge/common/efx_bootcfg.c optional sfxge pci
|
|
|
|
dev/sfxge/common/efx_crc32.c optional sfxge pci
|
|
|
|
dev/sfxge/common/efx_ev.c optional sfxge pci
|
|
|
|
dev/sfxge/common/efx_filter.c optional sfxge pci
|
|
|
|
dev/sfxge/common/efx_hash.c optional sfxge pci
|
|
|
|
dev/sfxge/common/efx_intr.c optional sfxge pci
|
2016-01-14 09:19:28 +00:00
|
|
|
dev/sfxge/common/efx_lic.c optional sfxge pci
|
2015-05-25 08:34:55 +00:00
|
|
|
dev/sfxge/common/efx_mac.c optional sfxge pci
|
|
|
|
dev/sfxge/common/efx_mcdi.c optional sfxge pci
|
|
|
|
dev/sfxge/common/efx_mon.c optional sfxge pci
|
|
|
|
dev/sfxge/common/efx_nic.c optional sfxge pci
|
|
|
|
dev/sfxge/common/efx_nvram.c optional sfxge pci
|
|
|
|
dev/sfxge/common/efx_phy.c optional sfxge pci
|
|
|
|
dev/sfxge/common/efx_port.c optional sfxge pci
|
|
|
|
dev/sfxge/common/efx_rx.c optional sfxge pci
|
|
|
|
dev/sfxge/common/efx_sram.c optional sfxge pci
|
2018-11-26 06:20:13 +00:00
|
|
|
dev/sfxge/common/efx_tunnel.c optional sfxge pci
|
2015-05-25 08:34:55 +00:00
|
|
|
dev/sfxge/common/efx_tx.c optional sfxge pci
|
|
|
|
dev/sfxge/common/efx_vpd.c optional sfxge pci
|
|
|
|
dev/sfxge/common/hunt_nic.c optional sfxge pci
|
2016-05-14 08:55:15 +00:00
|
|
|
dev/sfxge/common/mcdi_mon.c optional sfxge pci
|
|
|
|
dev/sfxge/common/medford_nic.c optional sfxge pci
|
2018-11-27 12:14:16 +00:00
|
|
|
dev/sfxge/common/medford2_nic.c optional sfxge pci
|
2015-05-25 08:34:55 +00:00
|
|
|
dev/sfxge/common/siena_mac.c optional sfxge pci
|
|
|
|
dev/sfxge/common/siena_mcdi.c optional sfxge pci
|
|
|
|
dev/sfxge/common/siena_nic.c optional sfxge pci
|
|
|
|
dev/sfxge/common/siena_nvram.c optional sfxge pci
|
|
|
|
dev/sfxge/common/siena_phy.c optional sfxge pci
|
|
|
|
dev/sfxge/common/siena_sram.c optional sfxge pci
|
|
|
|
dev/sfxge/common/siena_vpd.c optional sfxge pci
|
|
|
|
dev/sfxge/sfxge.c optional sfxge pci
|
|
|
|
dev/sfxge/sfxge_dma.c optional sfxge pci
|
|
|
|
dev/sfxge/sfxge_ev.c optional sfxge pci
|
|
|
|
dev/sfxge/sfxge_intr.c optional sfxge pci
|
|
|
|
dev/sfxge/sfxge_mcdi.c optional sfxge pci
|
|
|
|
dev/sfxge/sfxge_nvram.c optional sfxge pci
|
|
|
|
dev/sfxge/sfxge_port.c optional sfxge pci
|
|
|
|
dev/sfxge/sfxge_rx.c optional sfxge pci
|
|
|
|
dev/sfxge/sfxge_tx.c optional sfxge pci
|
2018-04-26 16:59:06 +00:00
|
|
|
dev/smartpqi/smartpqi_cam.c optional smartpqi
|
|
|
|
dev/smartpqi/smartpqi_cmd.c optional smartpqi
|
|
|
|
dev/smartpqi/smartpqi_discovery.c optional smartpqi
|
|
|
|
dev/smartpqi/smartpqi_event.c optional smartpqi
|
|
|
|
dev/smartpqi/smartpqi_helper.c optional smartpqi
|
|
|
|
dev/smartpqi/smartpqi_init.c optional smartpqi
|
|
|
|
dev/smartpqi/smartpqi_intr.c optional smartpqi
|
|
|
|
dev/smartpqi/smartpqi_ioctl.c optional smartpqi
|
|
|
|
dev/smartpqi/smartpqi_main.c optional smartpqi
|
|
|
|
dev/smartpqi/smartpqi_mem.c optional smartpqi
|
|
|
|
dev/smartpqi/smartpqi_misc.c optional smartpqi
|
|
|
|
dev/smartpqi/smartpqi_queue.c optional smartpqi
|
|
|
|
dev/smartpqi/smartpqi_request.c optional smartpqi
|
|
|
|
dev/smartpqi/smartpqi_response.c optional smartpqi
|
|
|
|
dev/smartpqi/smartpqi_sis.c optional smartpqi
|
|
|
|
dev/smartpqi/smartpqi_tag.c optional smartpqi
|
2005-11-11 09:57:32 +00:00
|
|
|
dev/speaker/spkr.c optional speaker
|
2020-08-30 07:34:32 +00:00
|
|
|
dev/sume/if_sume.c optional sume
|
add superio driver
The goal of this driver is consolidate information about SuperIO chips
and to provide for peaceful coexistence of drivers that need to access
SuperIO configuration registers.
While SuperIO chips can host various functions most of them are
discoverable and accessible without any knowledge of the SuperIO.
Examples are: keyboard and mouse controllers, UARTs, floppy disk
controllers. SuperIO-s also provide non-standard functions such as
GPIO, watchdog timers and hardware monitoring. Such functions do
require drivers with a knowledge of a specific SuperIO.
At this time the driver supports a number of ITE and Nuvoton (fka
Winbond) SuperIO chips.
There is a single driver for all devices. So, I have not done the usual
split between the hardware driver and the bus functionality. Although,
superio does act as a bus for devices that represent known non-standard
functions of a SuperIO chip. The bus provides enumeration of child
devices based on the hardcoded knowledge of such functions. The
knowledge as extracted from datasheets and other drivers.
As there is a single driver, I have not defined a kobj interface for it.
So, its interface is currently made of simple functions.
I think that we can the flexibility (and complications) when we actually
need it.
I am planning to convert nctgpio and wbwd to superio bus very soon.
Also, I am working on itwd driver (watchdog in ITE SuperIO-s).
Additionally, there is ithwm driver based on the reverted sensors
import, but I am not sure how to integrate it given that we still lack
any sensors interface.
Discussed with: imp, jhb
MFC after: 7 weeks
Differential Revision: https://reviews.freebsd.org/D8175
2019-07-01 17:05:41 +00:00
|
|
|
dev/superio/superio.c optional superio isa
|
2003-11-17 08:58:16 +00:00
|
|
|
dev/syscons/apm/apm_saver.c optional apm_saver apm
|
2009-09-21 07:08:20 +00:00
|
|
|
dev/syscons/scvesactl.c optional sc vga vesa
|
2003-05-01 02:59:24 +00:00
|
|
|
dev/syscons/scvgarndr.c optional sc vga
|
2010-09-19 14:40:37 +00:00
|
|
|
dev/tpm/tpm.c optional tpm
|
2018-12-14 16:14:36 +00:00
|
|
|
dev/tpm/tpm20.c optional tpm
|
2020-02-01 16:57:04 +00:00
|
|
|
dev/tpm/tpm_crb.c optional tpm acpi
|
2018-12-14 16:14:36 +00:00
|
|
|
dev/tpm/tpm_tis.c optional tpm acpi
|
2010-09-19 14:40:37 +00:00
|
|
|
dev/tpm/tpm_acpi.c optional tpm acpi
|
|
|
|
dev/tpm/tpm_isa.c optional tpm isa
|
2012-04-11 02:42:01 +00:00
|
|
|
dev/uart/uart_cpu_x86.c optional uart
|
2011-12-12 09:50:33 +00:00
|
|
|
dev/viawd/viawd.c optional viawd
|
2019-10-30 19:53:46 +00:00
|
|
|
dev/vmd/vmd.c optional vmd
|
|
|
|
dev/vmd/vmd_bus.c optional vmd_bus
|
2012-03-06 18:44:52 +00:00
|
|
|
dev/wbwd/wbwd.c optional wbwd
|
2014-12-09 18:03:25 +00:00
|
|
|
dev/xen/pci/xen_acpi_pci.c optional xenhvm
|
|
|
|
dev/xen/pci/xen_pci.c optional xenhvm
|
2003-05-01 02:59:24 +00:00
|
|
|
isa/syscons_isa.c optional sc
|
|
|
|
isa/vga_isa.c optional vga
|
2010-07-14 18:43:27 +00:00
|
|
|
kern/kern_clocksource.c standard
|
2018-06-02 06:40:15 +00:00
|
|
|
kern/imgact_aout.c optional compat_aout
|
2004-05-16 20:11:38 +00:00
|
|
|
kern/link_elf_obj.c standard
|
2003-11-17 08:58:16 +00:00
|
|
|
#
|
|
|
|
# IA32 binary support
|
|
|
|
#
|
2010-03-11 14:49:06 +00:00
|
|
|
#amd64/ia32/ia32_exception.S optional compat_freebsd32
|
|
|
|
amd64/ia32/ia32_reg.c optional compat_freebsd32
|
|
|
|
amd64/ia32/ia32_signal.c optional compat_freebsd32
|
|
|
|
amd64/ia32/ia32_sigtramp.S optional compat_freebsd32
|
|
|
|
amd64/ia32/ia32_syscall.c optional compat_freebsd32
|
|
|
|
amd64/ia32/ia32_misc.c optional compat_freebsd32
|
|
|
|
compat/ia32/ia32_sysvec.c optional compat_freebsd32
|
2006-05-07 18:12:18 +00:00
|
|
|
compat/linprocfs/linprocfs.c optional linprocfs
|
2006-05-09 22:27:01 +00:00
|
|
|
compat/linsysfs/linsysfs.c optional linsysfs
|
2004-08-16 07:55:06 +00:00
|
|
|
#
|
|
|
|
# Linux/i386 binary support
|
|
|
|
#
|
|
|
|
amd64/linux32/linux32_dummy.c optional compat_linux32
|
|
|
|
amd64/linux32/linux32_machdep.c optional compat_linux32
|
2007-05-23 15:45:52 +00:00
|
|
|
amd64/linux32/linux32_support.s optional compat_linux32 \
|
|
|
|
dependency "linux32_assym.h"
|
2004-08-16 07:55:06 +00:00
|
|
|
amd64/linux32/linux32_sysent.c optional compat_linux32
|
|
|
|
amd64/linux32/linux32_sysvec.c optional compat_linux32
|
2007-05-23 08:33:06 +00:00
|
|
|
compat/linux/linux_emul.c optional compat_linux32
|
2018-03-16 14:46:38 +00:00
|
|
|
compat/linux/linux_errno.c optional compat_linux32
|
2004-08-16 07:55:06 +00:00
|
|
|
compat/linux/linux_file.c optional compat_linux32
|
2011-02-12 18:17:12 +00:00
|
|
|
compat/linux/linux_fork.c optional compat_linux32
|
Add the linux 2.6.x stuff (not used by default!):
- TLS - complete
- pid/tid mangling - complete
- thread area - complete
- futexes - complete with issues
- clone() extension - complete with some possible minor issues
- mq*/timer*/clock* stuff - complete but untested and the mq* stuff is
disabled when not build as part of the kernel with native FreeBSD mq*
support (module support for this will come later)
Tested with:
- linux-firefox - works, tested
- linux-opera - works, tested
- linux-realplay - doesnt work, issue with futexes
- linux-skype - doesnt work, issue with futexes
- linux-rt2-demo - works, tested
- linux-acroread - doesnt work, unknown reason (coredump) and sometimes
issue with futexes
- various unix utilities in linux-base-gentoo3 and linux-base-fc4:
everything tried worked
On amd64 not everything is supported like on i386, the catchup is planned for
later when the remaining bugs in the new functions are fixed.
To test this new stuff, you have to run
sysctl compat.linux.osrelease=2.6.16
to switch back use
sysctl compat.linux.osrelease=2.4.2
Don't switch while running a linux program, strange things may or may not
happen.
Sponsored by: Google SoC 2006
Submitted by: rdivacky
Some suggestions/help by: jhb, kib, manu@NetBSD.org, netchild
2006-08-15 12:54:30 +00:00
|
|
|
compat/linux/linux_futex.c optional compat_linux32
|
2004-08-16 07:55:06 +00:00
|
|
|
compat/linux/linux_getcwd.c optional compat_linux32
|
|
|
|
compat/linux/linux_ioctl.c optional compat_linux32
|
|
|
|
compat/linux/linux_ipc.c optional compat_linux32
|
|
|
|
compat/linux/linux_mib.c optional compat_linux32
|
|
|
|
compat/linux/linux_misc.c optional compat_linux32
|
2016-07-10 08:38:10 +00:00
|
|
|
compat/linux/linux_mmap.c optional compat_linux32
|
2004-08-16 07:55:06 +00:00
|
|
|
compat/linux/linux_signal.c optional compat_linux32
|
|
|
|
compat/linux/linux_socket.c optional compat_linux32
|
|
|
|
compat/linux/linux_stats.c optional compat_linux32
|
|
|
|
compat/linux/linux_sysctl.c optional compat_linux32
|
Add the linux 2.6.x stuff (not used by default!):
- TLS - complete
- pid/tid mangling - complete
- thread area - complete
- futexes - complete with issues
- clone() extension - complete with some possible minor issues
- mq*/timer*/clock* stuff - complete but untested and the mq* stuff is
disabled when not build as part of the kernel with native FreeBSD mq*
support (module support for this will come later)
Tested with:
- linux-firefox - works, tested
- linux-opera - works, tested
- linux-realplay - doesnt work, issue with futexes
- linux-skype - doesnt work, issue with futexes
- linux-rt2-demo - works, tested
- linux-acroread - doesnt work, unknown reason (coredump) and sometimes
issue with futexes
- various unix utilities in linux-base-gentoo3 and linux-base-fc4:
everything tried worked
On amd64 not everything is supported like on i386, the catchup is planned for
later when the remaining bugs in the new functions are fixed.
To test this new stuff, you have to run
sysctl compat.linux.osrelease=2.6.16
to switch back use
sysctl compat.linux.osrelease=2.4.2
Don't switch while running a linux program, strange things may or may not
happen.
Sponsored by: Google SoC 2006
Submitted by: rdivacky
Some suggestions/help by: jhb, kib, manu@NetBSD.org, netchild
2006-08-15 12:54:30 +00:00
|
|
|
compat/linux/linux_time.c optional compat_linux32
|
2014-09-18 08:36:45 +00:00
|
|
|
compat/linux/linux_timer.c optional compat_linux32
|
2004-08-16 07:55:06 +00:00
|
|
|
compat/linux/linux_uid16.c optional compat_linux32
|
|
|
|
compat/linux/linux_util.c optional compat_linux32
|
2015-05-24 15:28:17 +00:00
|
|
|
compat/linux/linux_vdso.c optional compat_linux32
|
2015-05-24 15:51:18 +00:00
|
|
|
compat/linux/linux_common.c optional compat_linux32
|
2015-05-24 16:41:39 +00:00
|
|
|
compat/linux/linux_event.c optional compat_linux32
|
2015-05-24 17:47:20 +00:00
|
|
|
compat/linux/linux.c optional compat_linux32
|
2006-01-24 21:13:50 +00:00
|
|
|
dev/amr/amr_linux.c optional compat_linux32 amr
|
2006-05-18 23:30:48 +00:00
|
|
|
dev/mfi/mfi_linux.c optional compat_linux32 mfi
|
Add support for Windows/x86-64 binaries to Project Evil.
Ville-Pertti Keinonen (will at exomi dot comohmygodnospampleasekthx)
deserves a big thanks for submitting initial patches to make it
work. I have mangled his contributions appropriately.
The main gotcha with Windows/x86-64 is that Microsoft uses a different
calling convention than everyone else. The standard ABI requires using
6 registers for argument passing, with other arguments on the stack.
Microsoft uses only 4 registers, and requires the caller to leave room
on the stack for the register arguments incase the callee needs to
spill them. Unlike x86, where Microsoft uses a mix of _cdecl, _stdcall
and _fastcall, all routines on Windows/x86-64 uses the same convention.
This unfortunately means that all the functions we export to the
driver require an intermediate translation wrapper. Similarly, we have
to wrap all calls back into the driver binary itself.
The original patches provided macros to wrap every single routine at
compile time, providing a secondary jump table with a customized
wrapper for each exported routine. I decided to use a different approach:
the call wrapper for each function is created from a template at
runtime, and the routine to jump to is patched into the wrapper as
it is created. The subr_pe module has been modified to patch in the
wrapped function instead of the original. (On x86, the wrapping
routine is a no-op.)
There are some minor API differences that had to be accounted for:
- KeAcquireSpinLock() is a real function on amd64, not a macro wrapper
around KfAcquireSpinLock()
- NdisFreeBuffer() is actually IoFreeMdl(). I had to change the whole
NDIS_BUFFER API a bit to accomodate this.
Bugs fixed along the way:
- IoAllocateMdl() always returned NULL
- kern_windrv.c:windrv_unload() wasn't releasing private driver object
extensions correctly (found thanks to memguard)
This has only been tested with the driver for the Broadcom 802.11g
chipset, which was the only Windows/x86-64 driver I could find.
2005-02-16 05:41:18 +00:00
|
|
|
compat/ndis/winx64_wrap.S optional ndisapi pci
|
2007-04-06 04:51:50 +00:00
|
|
|
#
|
2015-04-30 17:49:35 +00:00
|
|
|
# x86 real mode BIOS emulator, required by dpms/pci/vesa
|
2009-09-22 07:10:23 +00:00
|
|
|
#
|
2015-04-30 17:49:35 +00:00
|
|
|
compat/x86bios/x86bios.c optional x86bios | dpms | pci | vesa
|
|
|
|
contrib/x86emu/x86emu.c optional x86bios | dpms | pci | vesa
|
2010-02-25 14:13:39 +00:00
|
|
|
#
|
2011-05-14 18:37:24 +00:00
|
|
|
# bvm console
|
|
|
|
#
|
|
|
|
dev/bvm/bvm_console.c optional bvmconsole
|
|
|
|
dev/bvm/bvm_dbg.c optional bvmdebug
|
2019-08-14 20:57:54 +00:00
|
|
|
# Common files where we currently configure the system differently, but perhaps shouldn't
|
|
|
|
# config(8) doesn't have a way to force standard options, so we've been inconsistent
|
|
|
|
# about marking non-optional things 'standard'.
|
2010-11-08 20:57:02 +00:00
|
|
|
x86/acpica/madt.c optional acpi
|
2010-02-25 14:13:39 +00:00
|
|
|
x86/isa/atpic.c optional atpic isa
|
2012-03-09 19:42:48 +00:00
|
|
|
x86/isa/elcr.c optional atpic isa | mptable
|
2010-02-25 14:13:39 +00:00
|
|
|
x86/isa/isa.c standard
|
|
|
|
x86/isa/isa_dma.c standard
|
2018-10-31 23:17:00 +00:00
|
|
|
x86/pci/pci_early_quirks.c optional pci
|
2010-06-08 17:51:21 +00:00
|
|
|
x86/x86/io_apic.c standard
|
|
|
|
x86/x86/local_apic.c standard
|
2010-10-28 07:58:06 +00:00
|
|
|
x86/x86/mptable.c optional mptable
|
|
|
|
x86/x86/mptable_pci.c optional mptable pci
|
2010-06-08 18:36:03 +00:00
|
|
|
x86/x86/msi.c optional pci
|
2014-03-11 10:07:01 +00:00
|
|
|
x86/xen/pv.c optional xenhvm
|
2014-03-11 10:25:08 +00:00
|
|
|
x86/xen/pvcpu_enum.c optional xenhvm
|
2014-12-09 18:03:25 +00:00
|
|
|
x86/xen/xen_pci_bus.c optional xenhvm
|
Merge OpenZFS support in to HEAD.
The primary benefit is maintaining a completely shared
code base with the community allowing FreeBSD to receive
new features sooner and with less effort.
I would advise against doing 'zpool upgrade'
or creating indispensable pools using new
features until this change has had a month+
to soak.
Work on merging FreeBSD support in to what was
at the time "ZFS on Linux" began in August 2018.
I first publicly proposed transitioning FreeBSD
to (new) OpenZFS on December 18th, 2018. FreeBSD
support in OpenZFS was finally completed in December
2019. A CFT for downstreaming OpenZFS support in
to FreeBSD was first issued on July 8th. All issues
that were reported have been addressed or, for
a couple of less critical matters there are
pull requests in progress with OpenZFS. iXsystems
has tested and dogfooded extensively internally.
The TrueNAS 12 release is based on OpenZFS with
some additional features that have not yet made
it upstream.
Improvements include:
project quotas, encrypted datasets,
allocation classes, vectorized raidz,
vectorized checksums, various command line
improvements, zstd compression.
Thanks to those who have helped along the way:
Ryan Moeller, Allan Jude, Zack Welch, and many
others.
Sponsored by: iXsystems, Inc.
Differential Revision: https://reviews.freebsd.org/D25872
2020-08-25 02:21:27 +00:00
|
|
|
|
|
|
|
contrib/openzfs/module/zcommon/zfs_fletcher_avx512.c optional zfs compile-with "${ZFS_C}"
|
|
|
|
contrib/openzfs/module/zcommon/zfs_fletcher_intel.c optional zfs compile-with "${ZFS_C}"
|
|
|
|
contrib/openzfs/module/zcommon/zfs_fletcher_sse.c optional zfs compile-with "${ZFS_C}"
|
|
|
|
|
|
|
|
contrib/openzfs/module/zfs/vdev_raidz_math_avx2.c optional zfs compile-with "${ZFS_C}"
|
|
|
|
contrib/openzfs/module/zfs/vdev_raidz_math_avx512bw.c optional zfs compile-with "${ZFS_C}"
|
|
|
|
contrib/openzfs/module/zfs/vdev_raidz_math_avx512f.c optional zfs compile-with "${ZFS_C}"
|
|
|
|
contrib/openzfs/module/zfs/vdev_raidz_math_sse2.c optional zfs compile-with "${ZFS_C}"
|
|
|
|
contrib/openzfs/module/zfs/vdev_raidz_math_ssse3.c optional zfs compile-with "${ZFS_C}"
|