M7350/kernel/Documentation/devicetree/bindings/arm/msm/msm_iommu_domains.txt

51 lines
1.5 KiB
Plaintext
Raw Normal View History

2024-09-09 08:52:07 +00:00
IOMMU Domains
An IOMMU domain is a collection of IOMMU context banks and an optional
virtual address space that is to be used with the domain. Domains that are
defined will be created at bootup and associated with an iommu group. Clients
can then refer to the iommu group and perform operations on the iommu group
instead of individual devices/contexts.
Required properties
- compatible: "qcom,iommu-domains"
- At least one child that defines a domain is required with the
following properties:
- label: Name of the domain
- qcom,iommu-contexts: List of phandles to context that belongs to
this domain.
Optional properties
- qcom,virtual-addr-pool: List of <start_address size> pairs
that define the virtual address space for this domain.
- qcom,secure-domain: boolean indicating that this is a secure
domain that is to be programmed by Trustzone.
- qcom,l2-redirect: boolean indicating that page tables should
be cached in L2 cache.
Example:
qcom,iommu-domains {
compatible = "qcom,iommu-domains";
qcom,iommu-domain1 {
label = "lpass_secure";
qcom,iommu-contexts = <&lpass_q6_fw>;
qcom,virtual-addr-pool = <0x00000000 0x0FFFFFFF
0xF0000000 0x0FFFFFFF>;
};
qcom,iommu-domain2 {
label = "lpass_audio";
qcom,iommu-contexts = <&lpass_audio_shared>;
qcom,virtual-addr-pool = <0x10000000 0x0FFFFFFF>;
};
qcom,iommu-domain3 {
label = "lpass_video";
qcom,iommu-contexts = <&lpass_video_shared>;
qcom,virtual-addr-pool = <0x20000000 0x0FFFFFFF>;
};
};