Hi Chenyang,
Okay, I recall the case you file, glad that you have the solution.
thanks for sharing with me how you able to resolve it
Sorry for my vague description. To clarify your questions:
- Is the pcie able to enumerate in the host ? LTSSM = L0 stage ?
>> Yes, after initial link, LTSSM settled on L0 (0xF), which is good. We are able to do enumeration with no error, through AVST interface to downstream device.
--> okay sound good, Are you using our example design ? if Yes , May I know which design that you are using ? AVST ?
--> or this is custom design ?
- Can I know any specific signal you mentioned ?
>> I have set up a trigger on LTSSM=0xc (Recovery.Rcvlock) , but it did not trigger. I also used signal tap transitional mode to capture the whole LTSSM transistion from reset to some time after writing Link Retraining bit. It shows that it remains on 0xF (L0) after initial link has established. And recovery states are never reached.
--> How was other signal ? in this cases I suspect other signal might interrupt the signal captured.
--> using transitional is just fine, perhaps you can set other signal rather than ltssm as "dont care".
--> or set the ltssm signal as "dont care" so that you can monitor overall of the link up flow including "0xc"
- Which input clock that you currently using ?
>> I use coreclkout_hip for signal tap input clocking, which is the same clock for pld_clk as recommended in UG.
--> okay that sound fine, as long as you can capture the signal instead of "waiting for trigger"
Further, I would like to ask:
1. Is LMI intended for retraining when CfgBp is enabled? I have read the golden example from rocketboards in our last threads. I believe it is not well suited, because of CfgBp.
--> to be honest, I never implement LMI with CfgBP before. But I can lay down some of my suggestion based on my own understanding. Hope that can be a good reference for you
--> The Local Management Interface (LMI) is used to access and control various configuration and status registers within the PCIe Hard IP. It allows for reading and writing to these registers, enabling fine-grained control over the PCIe link and its parameters.
--> The Configuration Bypass (CfgBp) feature allows the user to bypass the automatic configuration of certain PCIe parameters and instead manually configure them through the LMI. This can be useful for custom configurations or for debugging purposes.
--> When CfgBp is enabled, the automatic configuration of certain PCIe parameters is bypassed, and the user must manually configure these parameters using the LMI. This includes tasks such as setting the link width, speed, and other configuration settings.
--> as following above , LMI is intended use in retaining the PCIe link when CfgBP is enable, with that you can manually configure the PCIe link parameter and initiate the retraining process.
2. I also read about Autonomous Speed Change logic (altpcie_sc_*.v) through Hard IP Dynamic Reconfig. Look like it never touched LMI somehow. Does it provides another option to do link upgrading?
--> I dont get your question, what upgrading that you are referring ? speed upgrade or width ?
Regards,
Wincent