[PATCH v1 5/5] pci: keystone: add pcie driver based on designware core driver

Jason Gunthorpe
2014-05-26T23:31:32Z

On Thu, May 22, 2014 at 06:20:19PM -0400, Murali Karicheri wrote:

>> What is the MPSS?
>
> MPS published in DEV CAP is 1 (256 bytes). In our IP for some reason,
> mrss is set to 2 though IP
> support only 256 bytes. I am trying to resolve this with IP team. If
> this is an IP issue, then
> software will overwrite this to 1.

The MRSS of the root port bridge is very rarely used, it is OK to be
larger than the MPS, but I'm not sure it makes much sense as a
default.

> So the mps will not get written to mrss for performance mode. So the
> check seems not right. It should be changed to

So, looking at this more closely, the MRRS does not *have* to be
smaller than the MPS, but it probably performs better if it is.

I think that reflects what the code is doing.

The fact your root complex can't segment replies is a serious defect,
and there is no infrastructure to support that in the kernel.

Adding something to this generic code might be your best option to
cover the majority of cases.

It would also be good to know for sure that it can correctly segment a
256 byte read into 128 byte packets, and that only 512 is mishandled.

Jason