freebsd-dev/sys/conf
Ruslan Bukin 4cc8701067 Introduce IOMMU support for arm64 platform.
This adds an arm64 iommu interface and a driver for Arm System Memory
Management Unit version 3.2 (ARM SMMU v3.2) specified in ARM IHI 0070C
document.

Hardware overview is provided in the header of smmu.c file.

The support is disabled by default. To enable add 'options IOMMU' to your
kernel configuration file.

The support was developed on Arm Neoverse N1 System Development Platform
(ARM N1SDP), kindly provided by ARM Ltd.

Currently, PCI-based devices and ACPI platforms are supported only.
The support was tested on IOMMU-enabled Marvell SATA controller,
Realtek Ethernet controller and a TI xHCI USB controller with a low to
medium load only.

Many thanks to Konstantin Belousov for help forming the generic IOMMU
framework that is vital for this project; to Andrew Turner for adding
IOMMU support to MSI interrupt code; to Mark Johnston for help with SMMU
page management; to John Baldwin for explaining various IOMMU bits.

Reviewed by:	mmel
Relnotes:	yes
Sponsored by:	DARPA / AFRL
Sponsored by:	Innovate UK (Digital Security by Design programme)
Differential Revision:	https://reviews.freebsd.org/D24618
2020-11-16 21:55:52 +00:00
..
config.mk Add SCTP_SUPPORT handling to config.mk. 2020-06-25 15:25:00 +00:00
dtb.build.mk Use MACHINE_CPUARCH when checking for arm64 2020-09-14 16:12:28 +00:00
dtb.mk Allow kernel config to specify DTS/DTSO to build, and out-of-tree support 2019-03-26 02:45:23 +00:00
files LinuxKPI: Implement ACPI bits required by drm-kmod in base system 2020-11-09 13:20:14 +00:00
files.amd64 linux(4): Deduplicate unimpl/dummy syscall handlers 2020-11-05 19:30:31 +00:00
files.arm Remove support for DES and Triple DES from OCF. 2020-05-11 21:34:29 +00:00
files.arm64 Introduce IOMMU support for arm64 platform. 2020-11-16 21:55:52 +00:00
files.i386 linux(4): Fix loadable modules after r367395 2020-11-06 22:04:57 +00:00
files.mips Remove support for DES and Triple DES from OCF. 2020-05-11 21:34:29 +00:00
files.powerpc Fix powerpc and LINT builds 2020-11-06 18:50:00 +00:00
files.riscv riscv: Include syscon_power device driver in GENERIC kernel config 2020-07-26 18:21:02 +00:00
files.x86 Add qat(4) 2020-11-05 15:55:23 +00:00
kern.mk Add INIT_ALL_ZERO and INIT_ALL_PATTERN to kern.opts.mk 2020-11-10 23:25:16 +00:00
kern.opts.mk Disable kernel INIT_ALL_ZERO on amd64 2020-11-13 18:34:13 +00:00
kern.post.mk Use a template assembly file to generate the embedded MFS. 2020-10-20 16:48:45 +00:00
kern.pre.mk Use a template assembly file to generate the embedded MFS. 2020-10-20 16:48:45 +00:00
kmod_syms_prefix.awk
kmod_syms.awk
kmod.mk [zfs] Remove a non-existent directory in the build infra 2020-10-18 22:37:58 +00:00
kmod.opts.mk Add a kmod.opts.mk. 2019-11-21 18:14:26 +00:00
ldscript.amd64 Tighten mapping protections on preloaded files on amd64. 2019-10-18 14:05:13 +00:00
ldscript.arm Eliminate the generated ldscript for arm and arm64, and strip $a/$d marker 2019-12-29 18:17:12 +00:00
ldscript.arm64 Eliminate the generated ldscript for arm and arm64, and strip $a/$d marker 2019-12-29 18:17:12 +00:00
ldscript.i386 Expose the kernel's build-ID through sysctl 2019-06-04 13:07:10 +00:00
ldscript.kmod.amd64 Move PLTs to the beginning of amd64 kernel modules. 2020-09-16 13:51:47 +00:00
ldscript.kmod.i386 Formalize the use of linker scripts for kernel modules. 2019-10-16 22:19:56 +00:00
ldscript.mips Expose the kernel's build-ID through sysctl 2019-06-04 13:07:10 +00:00
ldscript.mips.cfe Expose the kernel's build-ID through sysctl 2019-06-04 13:07:10 +00:00
ldscript.mips.mips64 Expose the kernel's build-ID through sysctl 2019-06-04 13:07:10 +00:00
ldscript.mips.octeon1 Fix linking OCTEON1 kernel with LLD 2020-03-22 22:18:00 +00:00
ldscript.powerpc [PowerPC] kernel ifunc support for powerpc*, fix ppc64 relocation oddities. 2020-05-07 19:32:49 +00:00
ldscript.powerpc64 [PowerPC] Fix build-id note on powerpc64 kernel 2020-06-01 19:40:59 +00:00
ldscript.powerpc64le [PowerPC64LE] Set up powerpc.powerpc64le architecture 2020-09-22 23:49:30 +00:00
ldscript.powerpcspe [PowerPC] kernel ifunc support for powerpc*, fix ppc64 relocation oddities. 2020-05-07 19:32:49 +00:00
ldscript.riscv Set the LMA of the riscv kernel to the OpenSBI jump target by default 2020-02-04 00:06:16 +00:00
Makefile.amd64 Don't try ctfconvert on file without debug info. 2020-04-28 16:09:25 +00:00
Makefile.arm Brand our DTS with the Linux version it was imported from 2020-10-10 07:18:51 +00:00
Makefile.arm64 Eliminate the generated ldscript for arm and arm64, and strip $a/$d marker 2019-12-29 18:17:12 +00:00
Makefile.i386 Retire CLANG_NO_IAS34 2018-11-01 23:11:47 +00:00
Makefile.mips Compile hack.c with normal CFLAGS + -shared -nostdlib. 2020-01-26 14:19:08 +00:00
Makefile.powerpc Remove tests for obsolete compilers in the build system 2020-05-12 15:22:40 +00:00
Makefile.riscv Simplify the RISC-V kernel linker invocation 2020-05-22 18:54:56 +00:00
newvers.sh Partially revert r346018 and use the if/then construct instead of shell. 2020-09-14 14:45:30 +00:00
NOTES Add "Fenestras X" alternative /dev/random implementation 2020-10-10 21:45:59 +00:00
options Add "Fenestras X" alternative /dev/random implementation 2020-10-10 21:45:59 +00:00
options.amd64 Initial support for bhyve save and restore. 2020-05-05 00:02:04 +00:00
options.arm Kill old armv4 busdma 2020-02-02 08:27:14 +00:00
options.arm64 Add i.MX 8M Quad support 2020-07-01 00:33:16 +00:00
options.i386 i386: Merge PAE and non-PAE pmaps into same kernel. 2019-01-30 02:07:13 +00:00
options.mips Add SMP support for BERI CPU. 2018-04-12 17:43:19 +00:00
options.powerpc [PowerPC64LE] Work around qemu TCG bug in mtmsrd emulation. 2020-09-23 00:09:29 +00:00
options.riscv o Add driver for PLIC (Platform-Level Interrupt Controller) device. 2018-06-12 17:45:15 +00:00
sysent.mk Rebuild sysent when capabilities.conf is updated. 2020-07-07 16:35:52 +00:00
systags.sh Fix kernel-tags target. 2020-01-23 13:56:12 +00:00
WITHOUT_SOURCELESS
WITHOUT_SOURCELESS_HOST
WITHOUT_SOURCELESS_UCODE retire cx,ctau drivers 2020-03-20 16:50:19 +00:00