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 > >>here. > > > >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 feature. Is it really required to check for ATS version before consuming this? > > See this ECN > > https://composter.com.ua/documents/ats_r1.1_26Jan09.pdf > > 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