Sinan Kaya 7ce3f912ae PCI: Enable PASID only if entire path supports End-End TLP prefixes
A PCIe endpoint carries the process address space identifier (PASID) in
the TLP prefix as part of the memory read/write transaction. The address
information in the TLP is relevant only for a given PASID context.

An IOMMU takes PASID value and the address information from the
TLP to look up the physical address in the system.

PASID is an End-End TLP Prefix (PCIe r4.0, sec 6.20).  Sec 2.2.10.2 says

  It is an error to receive a TLP with an End-End TLP Prefix by a
  Receiver that does not support End-End TLP Prefixes. A TLP in
  violation of this rule is handled as a Malformed TLP. This is a
  reported error associated with the Receiving Port (see Section 6.2).

Prevent error condition by proactively requiring End-End TLP prefix to be
supported on the entire data path between the endpoint and the root port
before enabling PASID.

Signed-off-by: Sinan Kaya <okaya@codeaurora.org>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
2018-06-30 14:10:03 -05:00
..
2018-06-06 16:10:10 -05:00
2018-04-04 13:28:40 -05:00
2018-05-09 06:57:18 +02:00
2018-03-19 14:20:43 -05:00
2018-01-18 12:55:24 -06:00
2018-03-19 14:20:43 -05:00
2018-06-12 16:19:22 -07:00
2018-06-04 12:08:06 -05:00
2018-06-07 12:45:58 -07:00
2018-03-19 14:20:43 -05:00
2018-03-19 14:20:43 -05:00
2018-06-12 16:19:22 -07:00
2018-06-07 12:45:58 -07:00
2018-06-06 16:10:27 -05:00
2018-05-16 07:23:35 +02:00
2018-06-06 16:10:51 -05:00
2018-03-19 14:20:43 -05:00
2018-03-19 14:20:43 -05:00
2018-03-19 14:20:43 -05:00
2018-04-04 13:27:45 -05:00
2018-03-19 14:20:43 -05:00
2018-02-01 11:40:07 -06:00
2018-04-06 18:31:06 -07:00
2018-03-19 14:20:43 -05:00