diff options
author | Ruslan Bukin <br@FreeBSD.org> | 2020-11-16 21:55:52 +0000 |
---|---|---|
committer | Ruslan Bukin <br@FreeBSD.org> | 2020-11-16 21:55:52 +0000 |
commit | 4cc8701067e1e5111181d926c21199549a220fbb (patch) | |
tree | 7667f078f44f2e2e454699f340dbe26247de3fae /sys/conf/files.arm64 | |
parent | 02e65672b4071abde68c7163d272b8cd53003eca (diff) | |
download | src-4cc8701067e1.tar.gz src-4cc8701067e1.zip |
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
Notes
Notes:
svn path=/head/; revision=367736
Diffstat (limited to 'sys/conf/files.arm64')
-rw-r--r-- | sys/conf/files.arm64 | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/sys/conf/files.arm64 b/sys/conf/files.arm64 index 6a112168533e..87e0326f683d 100644 --- a/sys/conf/files.arm64 +++ b/sys/conf/files.arm64 @@ -211,6 +211,11 @@ arm64/coresight/coresight_tmc_fdt.c optional fdt arm64/intel/firmware.c optional soc_intel_stratix10 arm64/intel/stratix10-soc-fpga-mgr.c optional soc_intel_stratix10 arm64/intel/stratix10-svc.c optional soc_intel_stratix10 +arm64/iommu/iommu.c optional iommu +arm64/iommu/iommu_if.m optional iommu +arm64/iommu/smmu.c optional iommu +arm64/iommu/smmu_acpi.c optional acpi iommu +arm64/iommu/smmu_quirks.c optional iommu arm64/qoriq/ls1046_gpio.c optional ls1046_gpio gpio fdt SOC_NXP_LS arm64/qoriq/clk/ls1046a_clkgen.c optional clk SOC_NXP_LS arm64/qoriq/clk/qoriq_clk_pll.c optional clk SOC_NXP_LS @@ -314,6 +319,8 @@ dev/iicbus/sy8106a.c optional sy8106a fdt dev/iicbus/twsi/mv_twsi.c optional twsi fdt dev/iicbus/twsi/a10_twsi.c optional twsi fdt dev/iicbus/twsi/twsi.c optional twsi fdt +dev/iommu/busdma_iommu.c optional iommu +dev/iommu/iommu_gas.c optional iommu dev/mbox/mbox_if.m optional soc_brcm_bcm2837 dev/mmc/host/dwmmc.c optional dwmmc fdt dev/mmc/host/dwmmc_altera.c optional dwmmc dwmmc_altera fdt |