On Mon, Apr 29, 2024 at 12:39:37PM +0100, Jean-Philippe Brucker 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. > > Signed-off-by: Jean-Philippe Brucker <jean-philippe@xxxxxxxxxx> > Reviewed-by: Rob Herring <robh@xxxxxxxxxx> Reviewed-by: Liviu Dudau <liviu.dudau@xxxxxxx> > --- > From a while ago: https://lore.kernel.org/all/20200219222454.GA16221@bogus/ > --- > Documentation/devicetree/bindings/pci/host-generic-pci.yaml | 6 ++++++ > 1 file changed, 6 insertions(+) > > diff --git a/Documentation/devicetree/bindings/pci/host-generic-pci.yaml b/Documentation/devicetree/bindings/pci/host-generic-pci.yaml > index d25423aa71674..94d4a4914a483 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 > -- > 2.44.0 > -- ==================== | I would like to | | fix the world, | | but they're not | | giving me the | \ source code! / --------------- ¯\_(ツ)_/¯