blob: 2ba6d9c13622baf414fa698c9f4f684728b6e1af [file] [log] [blame]
Mark Kettenis40dbf032021-10-23 16:58:01 +02001#
2# IOMMU devices
3#
4
5menu "IOMMU device drivers"
6
7config IOMMU
8 bool "Enable Driver Model for IOMMU drivers"
9 depends on DM
10 help
11 Enable driver model for IOMMU devices. An IOMMU maps device
12 virtiual memory addresses to physical addresses. Devices
13 that sit behind an IOMMU can typically only access physical
14 memory if the IOMMU has been programmed to allow access to
15 that memory.
16
Mark Kettenis785cfde2021-10-23 16:58:05 +020017config APPLE_DART
18 bool "Apple DART support"
19 depends on IOMMU && ARCH_APPLE
20 default y
21 help
22 Enable support for the DART on Apple SoCs. The DART is Apple's
23 IOMMU implementation. The driver performs the necessary
24 configuration to put the DART into bypass mode such that it can
25 be used transparently by U-Boot.
26
Caleb Connollyd3db45c2023-12-11 18:41:42 +000027config QCOM_HYP_SMMU
28 bool "Qualcomm quirky SMMU support"
29 depends on IOMMU && ARCH_SNAPDRAGON
30 help
31 Enable support for the Qualcomm variant of the Arm System MMU-500.
32 Qualcomm boards have a non-standard SMMU where some registers are
33 emulated by the hypervisor. It is initialised early in the boot
34 process and can't be turned off.
35
36 The main caveat with this hardware is that it doesn't support BYPASS
37 streams, attempting to configure once will instead wind up with a
38 FAULT stream, and the device will crash when DMA is attempted.
39
40 Say Y here to enable support for non-boot peripherals like USB by
41 configuring identity mapped streams for them.
42
Mark Kettenis40dbf032021-10-23 16:58:01 +020043endmenu