
-----Original Message----- From: York Sun Sent: Wednesday, September 06, 2017 11:37 PM To: Joakim Tjernlund Joakim.Tjernlund@infinera.com; Mingkai Hu mingkai.hu@nxp.com Cc: Xiaowei Bao xiaowei.bao@nxp.com; u-boot@lists.denx.de Subject: Re: FSL PCIe LTSSM >= PCI_LTSSM_L0 equals link up
On 09/05/2017 04:08 AM, Joakim Tjernlund wrote:
On Mon, 2017-08-28 at 17:14 +0000, York Sun wrote:
+Xiaowei
On 08/28/2017 10:09 AM, Joakim Tjernlund wrote:
On Mon, 2017-08-28 at 16:55 +0000, York Sun wrote:
On 08/28/2017 09:48 AM, Joakim Tjernlund wrote:
FSL PCIe controller drivers before REV 3 has this test for link up: enabled = ltssm >= PCI_LTSSM_L0;
We have a PCIe dev. that stays in LTSSM=0x51 (Polling Compliance) when non ready for PCI transaktions. When FSL PCIe controller tries to access this device, it hangs forever.
Is LTSSM=0x51 really a "legal" state for link up? If not, what is a suitable range(maybe LO <= ltssm <= L0s(0x27)) ?
Jocke
BTW, the same test is valid in Linux too.
Jocke,
I am not an expert on PCIe. Please if this thread is helpful,
Me neither .. :)
https://emea01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fpatc hwork.ozlabs.org%2Fpatch%2F801519%2F&data=01%7C01%7Cyork.sun%40n xp.com%7Cf46ff5111ba04e631a9b08d4ee377ecc%7C686ea1d3bc2b4c6fa92cd 99c5c301635%7C0&sdata=n9%2B2NIjEvsMBCljRLHS6NVVN4ANa3nBGpwUjI4 Od%2Bhs%3D&reserved=0.
It mentions polling compliance but this driver already tests for: if (ltssm < LTSSM_PCIE_L0) return 0; return 1;
It just adds some delay if the device is in Polling Compliance to see if that changes to L0. Since both layerscape and fsl >= rev 3 already require ltssm to be == L0, I suspect the ltssm >= L0 is bogus.
Xiaowei, can you comment?
York
Ping? Should I just send a patch ?
+Mingkai
LTSSM should be L0 state for linkup. Xiaowei have the patch to modify the code for layerscape platform: http://patchwork.ozlabs.org/patch/801519/
He will work out a patch for PowerPC platform also.
Mingkai