Dear Ti Team,
We have interfaced the AM3352 with RTL8364NB Ethernet switch (RMII Interface) + RTL8311 (RGMII) 1Gbit Ethernet Phy with our product. MDIO bus as a management bus between processor and switch + Ethernet phy. We successfully integrate the switch and Ethernet phy with our product and all port working well. We are facing a problem with MDIO bus. At power On both slave devices are accessible from the Master device. But after some time the RTL8364NB is not responding to the MDIO bus, at that time RTL8311 is working fine and I am getting the updated Link status. While analysing in detail it is found that MDIO bus has failed to read data from RTL8364NB device, As per the Linux kernel driver file davainic_mdio.c -> davinci_mdio_read(). This function monitor bit filed GO and ACK of the register MDIOUSERACCESS0. In this case GO bit gets self clear once the transaction completes and ACK bit should be getting set but ACK bit remains clear only . Due to that driver failed the read transaction with -EIO error.
Query :
1. Why this ACK bit remains clear while the transaction is completed
2. On what base this ACK bit gets set and clear by AM3352.
3. Could you help to identify the problem cause.
Note: Problem is resolved on hard reboot only. Even so, it is not resolved on soft reboot.
Please advise me. Waiting for your reply.
Regards,
Shailesh