Skip to content

Commit

Permalink
dt-bindings: PCI: generic: Add ats-supported property
Browse files Browse the repository at this point in the history
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.

Link: https://lore.kernel.org/linux-pci/[email protected]
Signed-off-by: Jean-Philippe Brucker <[email protected]>
Signed-off-by: Krzysztof Wilczyński <[email protected]>
Reviewed-by: Jason Gunthorpe <[email protected]>
Reviewed-by: Liviu Dudau <[email protected]>
Reviewed-by: Nicolin Chen <[email protected]>
Reviewed-by: Rob Herring <[email protected]>
Reviewed-by: Robin Murphy <[email protected]>
  • Loading branch information
jpbrucker authored and kwilczynski committed Jul 4, 2024
1 parent bc9792f commit 631b2e7
Showing 1 changed file with 6 additions and 0 deletions.
6 changes: 6 additions & 0 deletions Documentation/devicetree/bindings/pci/host-generic-pci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down

0 comments on commit 631b2e7

Please sign in to comment.