Other Parts Discussed in Thread: DP83869
Tool/software:
I have a custom board with a microprocessor connected to the DP83869HM and when I perform MDIO bus transactions I get invalid responses. After physical toggling the reset on the PHY I initialize the ETH driver on my hardware and read back 0x9815, 0x9055, or 0x9855 from registers 2 and 3 which contain the OUI. I modified to read the first 32 registers and they all return this value except for register 0xd and 0xe which return 0.
If I remove and remount the module this is persistent across a power cycle, for example I'll always receive 0x9815. If I reset just the PHY the number remains persistent. If I do a complete system power cycle then the return value may change to one of the others listed above. It is pretty inconsistent.
We hooked up a logic analyzer to the MDIO/MDC pins and verified that this is what we are seeing on there as well as through printk statements placed within the Linux MDIO subsystem.
Is there something physical that could cause this? The signals look very clean and it is certainly returning these values, I just can't figure out why.