Other Parts Discussed in Thread: DP83867E
Hi,
I am attempting to use NDK on custom hw with C6657 DSP and TI DP83867E phy chip.
Phy is only setup for 100 Mbps connection.
MAC connection is SGMII and MDIO for phy control.
TCP server software is working on C6657 Eval Module and is based on the C6657 PDK examples.
I’ve modified a few things in the NDK to work with our custom hardware including:
- Phy address for MDIO is 0, instead of 24 as in the eval module.
- SGMII auto-negotiation changed to be PHY master and advertise 100 Mbit full duplex.
I used gmake to successfully recompile the ethernet and nimu libraries after any change.
Auto-negotiation to 100 Mbps looks to be successful based on SGMII status registers as well as DP83867E phy registers.
When I start the TCP server on custom hardware I get the message that the server is running successfully at the static IP address I setup.
“
TCP/IP Data Server EVM6657
Network Added: If-1:192.168.1.222
Network Open
“
However , when I ping the IP address I never receive the EMAC Packet Rx interrupt as I do when testing with the EVM.
I set a breakpoint in this function and expect to hit it upon a ping but it never occurs.
EmacRxPkt() in nimu_eth.c
To validate our custom hardware EMAC loopback SDK example is working after only modifying the phy address from 24 (EVM pin strapping) to be 0 (custom hw strapping for phy address).
Do you have any suggestions on where to look to debug this further?
I have compared the working case with EVM and the nonworking case with custom hw in many aspects but have not been successful finding what is the problem. I’ve compared SGMII, EMAC, MDIO register sets and have this data to share if relevant. I also have all of the runtime DP83867E phy register values read at runtime over MDIO.
Just looking for some suggestions as we are currently stuck after debugging unsuccessfully for a long time.