51 lines
1.5 KiB
Plaintext
51 lines
1.5 KiB
Plaintext
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>;
|
|
};
|
|
};
|