we are working on P2040. we are unable to access TBI PHY register of DTSEC2, DTSEC3. read access to registers always returns 0xffff. access to TBI PHY registers of DTSEC1 is working fine. We have assigned unique/different PHY address to each TBI PHY of DSEC1, DTSEC2,DTSEC3
can any one tell why this is happening and the solution of this?
I see two possible explanations:
1. You are accessing the TBI PHY using a wrong management interface or address.
MDIOs of TBI PHYs are internally connected to the management interface of the dTSEC that
connects to their data path. For DTSEC2, for instance, the MDIO registers
to talk to it's TBI PHY are at the offset 0xe3120, although all external PHYS,
including the ones connected to dTSEC2 and dTSEC3, are accessible through
the MDIO registers that belong to eTSEC1, i.e. at the offset 0xe1120.
See p2040rdb.dts file in Linux kernel source to understand management interface
connection.
2. The dTSECs you are attempting to work with are disabled in DEVDISR.
Have a great day,
Platon
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
Hi,
Thanks for the reply, suggestion 1 worked.
in the u-boot code, all mdio commands work on DTSEC1 MDIO controller.
by explicitly generating mdio access at 0xe3120, 0xe5120, we are able to read TBI PHY registers of DTSEC2 and DTSEC3
Regards
sharath