Mark Kettenis | e1311b6 | 2021-10-23 16:58:01 +0200 | [diff] [blame] | 1 | # |
| 2 | # IOMMU devices |
| 3 | # |
| 4 | |
| 5 | menu "IOMMU device drivers" |
| 6 | |
| 7 | config 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 Kettenis | 357a256 | 2021-10-23 16:58:05 +0200 | [diff] [blame] | 17 | config 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 Connolly | a95de05 | 2023-12-11 18:41:42 +0000 | [diff] [blame] | 27 | config 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 Kettenis | e1311b6 | 2021-10-23 16:58:01 +0200 | [diff] [blame] | 43 | endmenu |