# # IOMMU devices # menu "IOMMU device drivers" config IOMMU bool "Enable Driver Model for IOMMU drivers" depends on DM help Enable driver model for IOMMU devices. An IOMMU maps device virtiual memory addresses to physical addresses. Devices that sit behind an IOMMU can typically only access physical memory if the IOMMU has been programmed to allow access to that memory. config APPLE_DART bool "Apple DART support" depends on IOMMU && ARCH_APPLE default y help Enable support for the DART on Apple SoCs. The DART is Apple's IOMMU implementation. The driver performs the necessary configuration to put the DART into bypass mode such that it can be used transparently by U-Boot. config QCOM_HYP_SMMU bool "Qualcomm quirky SMMU support" depends on IOMMU && ARCH_SNAPDRAGON help Enable support for the Qualcomm variant of the Arm System MMU-500. Qualcomm boards have a non-standard SMMU where some registers are emulated by the hypervisor. It is initialised early in the boot process and can't be turned off. The main caveat with this hardware is that it doesn't support BYPASS streams, attempting to configure once will instead wind up with a FAULT stream, and the device will crash when DMA is attempted. Say Y here to enable support for non-boot peripherals like USB by configuring identity mapped streams for them. endmenu