freebsd-dev/sys/arm64
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
..
acpica arm64/acpi: Give the real PA limit to ACPI 2020-08-26 02:12:15 +00:00
arm64 arm64: bs_sr_<N> take II 2020-11-09 23:34:32 +00:00
broadcom arm64: clean up empty lines in .c and .h files 2020-09-01 21:18:06 +00:00
cavium arm64: clean up empty lines in .c and .h files 2020-09-01 21:18:06 +00:00
cloudabi32 Get rid of sa->narg. It serves no purpose; use sa->callp->sy_narg instead. 2020-09-27 18:47:06 +00:00
cloudabi64 Get rid of sa->narg. It serves no purpose; use sa->callp->sy_narg instead. 2020-09-27 18:47:06 +00:00
conf arm64: add uhci to GENERIC 2020-10-20 20:11:29 +00:00
coresight arm64: clean up empty lines in .c and .h files 2020-09-01 21:18:06 +00:00
freescale/imx imx7gpc: Remove unused functions 2020-11-16 11:54:38 +00:00
include Introduce IOMMU support for arm64 platform. 2020-11-16 21:55:52 +00:00
intel Add support for Intel Stratix 10 platform. 2019-09-13 16:50:57 +00:00
iommu Introduce IOMMU support for arm64 platform. 2020-11-16 21:55:52 +00:00
linux linux(4): Deduplicate unimpl/dummy syscall handlers 2020-11-05 19:30:31 +00:00
qoriq Check the result of the function, not the pointer to it. 2020-09-27 16:15:03 +00:00
qualcomm Enable Qualcomm Debug Subsystem (QDSS) block on MSM8916 SoC. 2018-04-10 12:53:48 +00:00
rockchip Implement workaround for broken access to configuration space. 2020-09-19 11:27:16 +00:00