This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

PROCESSOR-SDK-AM437X: PHY register values issue

Part Number: PROCESSOR-SDK-AM437X

Board used : idkAM437x.

If we read the phy registers at the Uboot using "mii dump <phyid> <regid> command, the phy register values are read properly. But when we try to read the phy register dump from the Linux command(running on the target)  "ethtool", phy register values are garbage value. like:

:ethtool -d eth0"

0x0000:         00 00 00 00 00 00 00 10 0a 00 0d 00 0c 00 00 00
0x0010:         ff ff 00 d0 ff ff ff ff 00 00 00 00 00 00 00 20
0x0020:         07 06 07 07 1c 00 00 00 33 33 00 10 01 00 00 00
0x0030:         1c 00 00 00 00 01 00 10 01 00 00 5e 1c 00 00 00

Please anyone help me regarding this.

Regards,

Anil Dali

  • Please post what Linux version you are using.

  • Hi,

    These actually are not garbage values, the -d is dumping the ALE of the CPSW. I could be wrong but the -d option is about dumping the MAC registers and not the PHY registers. TI did replace this command option with a method to look at ALE registers. This may change in future releases.

    The utility ethtool will return most of the MII register values which are standard among all PHYs. There are though a set of registers that are generally referred to as extended and that are unique to each PHY manufacturer. To access these registers from Linux will require some code that will use a driver ioctl operation to access the registers through the MII registers of the PHY. 

    There are plenty of examples of this extended register access code on the web that you can download and build on the target board if you are using the TI SDK that has the gcc compiler built in. You can search for them by looking for these iotcl commands SIOCGMIIPHY and SIOCSMIIREG.

    Best Regards,

    Schuyler