Part Number: AM2434
Other Parts Discussed in Thread: LP-AM243, DP83869
Tool/software:
HI there,
I have a different use case as stated in other thread. On one LP-AM243x, we removed PHY_IN and kept PHY_OUT. In the software we added a PHY driver to circumvent missing PHY_IN. we saw that EtherCAT SSC code got started on that board no matter if EtherCAT master node is connected to this board. Our own EtherCAT Master application can scan and connect to EtherCAT SSC on this board: since PHY_IN is removed, we used line crossing on master side.
We then removed PHY_OUT on another LP-AM243 board and kept PHY_IN. We used the same software and the same phy driver for the missing PHY. This time EtherCAT SSC could start normally. The code hangs in MDIO_phyRegRead() in the while loop.
if(retVal == SystemP_SUCCESS)
{
/* Wait till transaction completion if any */
while(CSL_MDIO_USER_GROUP_USER_ACCESS_REG_GO_EN_0x1 ==
CSL_FEXT(hMdioRegs->USER_GROUP[userGroup].USER_ACCESS_REG, MDIO_USER_GROUP_USER_ACCESS_REG_GO))
{}
// PS:
We exchanged the element 0 and 1 in the array - this does not change the result.
static CUST_PHY_CBextPhyLibDetect_t CUST_PHY_knownImplementation_s [] =
{
CUST_PHY_DP83869_detect,
CUST_PHY_Mock_detect,
NULL
};
Could you provide some hints how to debug the problem that the codes hangs in the while loop before even calling any of the detect functions?