I recently had the problem where there was no Ethernet connectivity to a network with a custom piece of hardware that has an AM3356 MPU and DP83640 Enet PHY on it. We are running the Molex Profinet stack and using the PRUs to handle the MAC layer stuffs using the pre-canned hex images that come with the Profinet Slave example in the Industrial SDK. I have the board auto-negotiating just fine, no matter the speed/duplex as I have some diagnostics running on the target board that gives me the current state of the PHY registers on PHY state change. Also, 100BASE-T FD and HD speed/duplex pairs both work through PHY to application layers just fine whether I auto-negotiate or force the speed/duplex. So I know that the hardware is plumbed up correctly, at least for 100BASE-T connections.
What I am stuck on is 10BASE-T FD and HD. The PHY on the target board can make a physical connection with the PHY of an external device. I can even PING the target board and see that the packet gets received and the the PONG response gets to the point where the packet is getting passed into the PRU. But the external device never sees the PONG packet. To me, that means that either the TX settings in the DP83640 need to be changed or some setting in the PRU or AM3356 need to be changed to handle 10BASE-T, but I am having trouble figuring out what exactly needs to be changed. It looks like the DP83640 is set up properly after scouring the user's guide multiple times, thought the problem could still be there. I suspect the problem lies in the PRU or some base AM3356 registers. If I figure this out before I get a response I will post the resolution here.
Thanks,
Trevor