Message ID | 20240607105415.2501934-3-jean-philippe@linaro.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Enable PCIe ATS for devicetree boot | expand |
Hello, > Add a way for firmware to tell the OS that ATS is supported by the PCI > root complex. An endpoint with ATS enabled may send Translation Requests > and Translated Memory Requests, which look just like Normal Memory > Requests with a non-zero AT field. So a root controller that ignores the > AT field may simply forward the request to the IOMMU as a Normal Memory > Request, which could end badly. In any case, the endpoint will be > unusable. > > The ats-supported property allows the OS to only enable ATS in endpoints > if the root controller can handle ATS requests. Only add the property to > pcie-host-ecam-generic for the moment. For non-generic root controllers, > availability of ATS can be inferred from the compatible string. Applied to dt-bindings, thank you! [1/1] dt-bindings: PCI: generic: Add ats-supported property https://git.kernel.org/pci/pci/c/631b2e7318d45 Krzysztof
Hi Krzysztof, On Sat, Jul 06, 2024 at 12:24:31PM +0900, Krzysztof Wilczyński wrote: > > Add a way for firmware to tell the OS that ATS is supported by the PCI > > root complex. An endpoint with ATS enabled may send Translation Requests > > and Translated Memory Requests, which look just like Normal Memory > > Requests with a non-zero AT field. So a root controller that ignores the > > AT field may simply forward the request to the IOMMU as a Normal Memory > > Request, which could end badly. In any case, the endpoint will be > > unusable. > > > > The ats-supported property allows the OS to only enable ATS in endpoints > > if the root controller can handle ATS requests. Only add the property to > > pcie-host-ecam-generic for the moment. For non-generic root controllers, > > availability of ATS can be inferred from the compatible string. > > Applied to dt-bindings, thank you! > > [1/1] dt-bindings: PCI: generic: Add ats-supported property > https://git.kernel.org/pci/pci/c/631b2e7318d45 FWIW: I already picked this up in the IOMMU tree last week. If you need it to avoid a conflict, then you can pull from the pci/ats branch: https://git.kernel.org/pub/scm/linux/kernel/git/iommu/linux.git/commit/?h=pci/ats&id=40929e8e5449a18bc98baf7a907dd6674bd60049 Cheers, Will
diff --git a/Documentation/devicetree/bindings/pci/host-generic-pci.yaml b/Documentation/devicetree/bindings/pci/host-generic-pci.yaml index 3484e0b4b412e..bcfbaf5582cc9 100644 --- a/Documentation/devicetree/bindings/pci/host-generic-pci.yaml +++ b/Documentation/devicetree/bindings/pci/host-generic-pci.yaml @@ -110,6 +110,12 @@ properties: iommu-map-mask: true msi-parent: true + ats-supported: + description: + Indicates that a PCIe host controller supports ATS, and can handle Memory + Requests with Address Type (AT). + type: boolean + required: - compatible - reg