Re: [PATCH v1 1/2] PCI: ATS: Add function to check ATS page aligned request status.

From: sathyanarayanan kuppuswamy
Date: Mon Feb 11 2019 - 14:25:49 EST

On 2/11/19 11:15 AM, Raj, Ashok wrote:
On Fri, Feb 08, 2019 at 11:49:55PM -0500, Sinan Kaya wrote:
On 2/8/2019 8:02 PM, sathyanarayanan kuppuswamy wrote:
This means that you should probably have some kind of version check
There is no version field in ATS v1.0 spec. Also, If I follow the history
log in PCI spec, I think ATS if first added at v1.2. Please correct me if
I am wrong.
v1.2 was incorporated into PCIe spec at that time. However, the ATS spec
is old and there could be some HW that could claim to be ATS compatible.
I know AMD GPUs declare ATS capability.
It seems rather odd we have to check for ATS version.

I always assumed unspecified bits (Reserved) must be 0. We only check
this if ATS is enabled, and this particular bit wasn't given away for another

Is it really required to check for ATS version before consuming this?
If the version check is required then, it needs to be added before reading "Invalidate Queue Depth" value as well.

See this ECN

You need to validate the version field from ATS capability header to be
1 before reading this register.

See Table 5-1: ATS Extended Capability Header

Sathyanarayanan Kuppuswamy
Linux kernel developer