]> www.infradead.org Git - users/jedix/linux-maple.git/commit
dt-bindings: PCI: generic: Add ats-supported property
authorJean-Philippe Brucker <jean-philippe@linaro.org>
Fri, 7 Jun 2024 10:54:14 +0000 (11:54 +0100)
committerKrzysztof Wilczyński <kwilczynski@kernel.org>
Thu, 4 Jul 2024 14:46:15 +0000 (14:46 +0000)
commit631b2e7318d45bb0f1a5490c9a9e0509b67629ee
treec623f054c8e3472b355491ccf4e9ccbf2915f1f3
parentbc9792f32cbd1a3bf8afef78efa5a9116323ca83
dt-bindings: PCI: generic: Add ats-supported property

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/20240607105415.2501934-3-jean-philippe@linaro.org
Signed-off-by: Jean-Philippe Brucker <jean-philippe@linaro.org>
Signed-off-by: Krzysztof Wilczyński <kwilczynski@kernel.org>
Reviewed-by: Jason Gunthorpe <jgg@nvidia.com>
Reviewed-by: Liviu Dudau <liviu.dudau@arm.com>
Reviewed-by: Nicolin Chen <nicolinc@nvidia.com>
Reviewed-by: Rob Herring <robh@kernel.org>
Reviewed-by: Robin Murphy <robin.murphy@arm.com>
Documentation/devicetree/bindings/pci/host-generic-pci.yaml