Hi
Understand now,I have tried that,but no effect.
I got a new phenomenon.I have two PCIE EP device on hand,different device is inserted,different phenomenon happened.In function { imx_pcie_link_up },I add the following source:
ltssm = readl(dbi_base+DB_R0) & 0x3F;
+ printk("0x%.8X,0x%.8X,0x%.8X\n",readl(dbi_base+DB_R0),readl(dbi_base+DB_R1),rx_valid);
if((ltssm == 0xD) && ((rx_valid & 0x1)==0)) {
One EP device's phenomenon is:
[ 1.982642] 0x00359E00,0x08200000,0x00000004
[ 1.989996] 0x0047D900,0x08200000,0x00000004
[ 1.997338] 0x00000602,0x08000000,0x00000002
[ 2.004398] 0x004A4A02,0x08000000,0x00000002
[ 2.011723] 0x004A4A02,0x08000000,0x00000002
[ 2.019069] 0x002CF742,0x08000000,0x00000002
While the other EP device's phenomenon is:
[ 1.883904] 0x00590E00,0x08200000,0x00000004
[ 1.891322] 0x0050CF00,0x08200000,0x00000004
[ 1.898738] 0x002CF742,0x08000000,0x00000006
[ 1.905710] 0x004A4A02,0x08000000,0x00000006
[ 1.913021] 0x004A4A02,0x08000000,0x00000006
[ 1.920340] 0x004ABC43,0x08000000,0x00000006
[ 1.927648] 0x00B5BC43,0x08000000,0x00000006
Link training state can be different,so I doubt if some problem with hardware.As I known,PCIE link training state will change as following:
Detect --> Polling --> Configuration --> LO
But now I do not know what is the state now of my board link training.