Other Parts Discussed in Thread: SYSCONFIG
Tool/software:
Hi,
The customer is now evaluating PCIe on AM243x. They’ve configured PCIe as Gen1 and Lane1 on SysConfig, and they were able to read the ID set by Pcie_getVendorId() after calling Pcie_cfgEP()
However, the result of Pcie_isLinkUp() was not able to be SUCCESS, and cannot verify the link of LTSSM.
When they tried to debug Pcie_isLinkUp(), they found that 0x2 is read as ltssmState.
Based on this situation, they would like to ask you two questions below.
1. PERST# on the pin 11 of PCIe connector on AM243x EVM is Open. Do they need any signal input to this pin ?
According to the PCIe specification, it is better to input the signal, but they assume that the system will operate even without this signal.
2. Could you please tell them the data specification of ltssmState gotten by Pcie_isLinkUp() ?
In the function, as written in red below, it is compared with "PCIe_LTSSM_L0-1", so is it a -1 relationship with enum PCIe_LTSSMState ?
int32_t Pcie_isLinkUp(Pcie_Handle handle)
{
int32_t status = SystemP_SUCCESS;
Pcie_Registers getRegs;
memset (&getRegs, 0, sizeof(getRegs));
Pcie_TiConfDeviceCmdReg ltssmStateReg;
getRegs.tiConfDeviceCmd = <ssmStateReg;
memset (<ssmStateReg, 0, sizeof(ltssmStateReg));
uint8_t ltssmState = 0xFFu;
status = Pcie_readRegs (handle, PCIE_LOCATION_LOCAL, &getRegs);
if (status != SystemP_SUCCESS)
return status;
ltssmState = ltssmStateReg.ltssmState;
if (ltssmState == PCIE_LTSSM_L0-1)
return SystemP_SUCCESS;
else
return SystemP_TIMEOUT;
return status;
}
Thanks and regards,
Hideaki