-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge tag 'iommu-updates-v5.15' of git://git.kernel.org/pub/scm/linux…
…/kernel/git/joro/iommu Pull iommu updates from Joerg Roedel: - New DART IOMMU driver for Apple Silicon M1 chips - Optimizations for iommu_[map/unmap] performance - Selective TLB flush support for the AMD IOMMU driver to make it more efficient on emulated IOMMUs - Rework IOVA setup and default domain type setting to move more code out of IOMMU drivers and to support runtime switching between certain types of default domains - VT-d Updates from Lu Baolu: - Update the virtual command related registers - Enable Intel IOMMU scalable mode by default - Preset A/D bits for user space DMA usage - Allow devices to have more than 32 outstanding PRs - Various cleanups - ARM SMMU Updates from Will Deacon: SMMUv3: - Minor optimisation to avoid zeroing struct members on CMD submission - Increased use of batched commands to reduce submission latency - Refactoring in preparation for ECMDQ support SMMUv2: - Fix races when probing devices with identical StreamIDs - Optimise walk cache flushing for Qualcomm implementations - Allow deep sleep states for some Qualcomm SoCs with shared clocks - Various smaller optimizations, cleanups, and fixes * tag 'iommu-updates-v5.15' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu: (85 commits) iommu/io-pgtable: Abstract iommu_iotlb_gather access iommu/arm-smmu: Fix missing unlock on error in arm_smmu_device_group() iommu/vt-d: Add present bit check in pasid entry setup helpers iommu/vt-d: Use pasid_pte_is_present() helper function iommu/vt-d: Drop the kernel doc annotation iommu/vt-d: Allow devices to have more than 32 outstanding PRs iommu/vt-d: Preset A/D bits for user space DMA usage iommu/vt-d: Enable Intel IOMMU scalable mode by default iommu/vt-d: Refactor Kconfig a bit iommu/vt-d: Remove unnecessary oom message iommu/vt-d: Update the virtual command related registers iommu: Allow enabling non-strict mode dynamically iommu: Merge strictness and domain type configs iommu: Only log strictness for DMA domains iommu: Expose DMA domain strictness via sysfs iommu: Express DMA strictness via the domain type iommu/vt-d: Prepare for multiple DMA domain types iommu/arm-smmu: Prepare for multiple DMA domain types iommu/amd: Prepare for multiple DMA domain types iommu: Introduce explicit type for non-strict DMA domains ...
- Loading branch information
Showing
43 changed files
with
2,034 additions
and
607 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,81 @@ | ||
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) | ||
%YAML 1.2 | ||
--- | ||
$id: http://devicetree.org/schemas/iommu/apple,dart.yaml# | ||
$schema: http://devicetree.org/meta-schemas/core.yaml# | ||
|
||
title: Apple DART IOMMU | ||
|
||
maintainers: | ||
- Sven Peter <sven@svenpeter.dev> | ||
|
||
description: |+ | ||
Apple SoCs may contain an implementation of their Device Address | ||
Resolution Table which provides a mandatory layer of address | ||
translations for various masters. | ||
Each DART instance is capable of handling up to 16 different streams | ||
with individual pagetables and page-level read/write protection flags. | ||
This DART IOMMU also raises interrupts in response to various | ||
fault conditions. | ||
properties: | ||
compatible: | ||
const: apple,t8103-dart | ||
|
||
reg: | ||
maxItems: 1 | ||
|
||
interrupts: | ||
maxItems: 1 | ||
|
||
clocks: | ||
description: | ||
Reference to the gate clock phandle if required for this IOMMU. | ||
Optional since not all IOMMUs are attached to a clock gate. | ||
|
||
'#iommu-cells': | ||
const: 1 | ||
description: | ||
Has to be one. The single cell describes the stream id emitted by | ||
a master to the IOMMU. | ||
|
||
required: | ||
- compatible | ||
- reg | ||
- '#iommu-cells' | ||
- interrupts | ||
|
||
additionalProperties: false | ||
|
||
examples: | ||
- |+ | ||
dart1: iommu@82f80000 { | ||
compatible = "apple,t8103-dart"; | ||
reg = <0x82f80000 0x4000>; | ||
interrupts = <1 781 4>; | ||
#iommu-cells = <1>; | ||
}; | ||
master1 { | ||
iommus = <&dart1 0>; | ||
}; | ||
- |+ | ||
dart2a: iommu@82f00000 { | ||
compatible = "apple,t8103-dart"; | ||
reg = <0x82f00000 0x4000>; | ||
interrupts = <1 781 4>; | ||
#iommu-cells = <1>; | ||
}; | ||
dart2b: iommu@82f80000 { | ||
compatible = "apple,t8103-dart"; | ||
reg = <0x82f80000 0x4000>; | ||
interrupts = <1 781 4>; | ||
#iommu-cells = <1>; | ||
}; | ||
master2 { | ||
iommus = <&dart2a 0>, <&dart2b 1>; | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.