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.

I can't change DM648 from two ethernet ports to one ethernet port, why?

Hi,

        My first DM648 custom board(ver 1) used two ethernet ports, and the client program in ndk 1.92 eval worked well. Now my second custom board(ver 2) used only one ethernet port, but the program failed because I can't ping the board(ver 2) from my pc.

        At first, the Stdout window in CCS showed this message :

"cpsw_MDIO_FindingState: Timed Out looking for a Phy! ".

        Then I changed the constant defined in file "C:\dvsdk_1_11_00_00_DM648\ndk_1_92_00_22_eval\packages\ti\ndk\src\hal\evmdm648\ethss_dm648\cpsw3g_core.h":

        #define CPSW3G_NUM_MAC_PORTS 2u /**< MAC Port Count */

        I chagned this constant from 2 to 1, and rebuild the hal_eth_dm648.lib file. Then I rebuilded the program and run this program, and the error message disappeared. But I still can't ping the board(ver 2) from my pc.

        Then I used the first board(ver 1), and the program worked well, and I can ping the board(ver 1) from my pc.

        Now the message displayed in Stdout window is complete same as below, that first board(ver 1) worked well while second board(ver 2) failed:

TCP/IP Stack Example Client Using MAC Address: 00-0e-99-02-aa-23

cpsw_MDIO_Init

SetPhyMode:000021E1 Auto:1, FD10:64, HD10:32, FD100:256, HD100:128, FD1000:8192 LPBK:0

cpsw_MDIO_Init SetPhyMode:00000000 Auto:0, FD10:0, HD10:0, FD100:0, HD100:0, FD1000:0 LPBK:0

Network Added: If-1:192.168.0.33

Service Status: Telnet : Enabled : : 000

Service Status: HTTP : Enabled : : 000

cpsw_MDIO_FindingState: PhyNum: 0

cpsw_MDIO_PhYReset(0)

Enable Phy to negotiate external connection

NWAY Advertising: FullDuplex-1000 FullDuplex-100 HalfDuplex-100 FullDuplex-10 HalfDuplex-10

Phy: 0, NegMode 01E1, NWAYadvertise 01E1, NWAYREadvertise 45E1

Negotiated connection: FullDuplex 100 Mbs

Link Status: 100Mb/s Full Duplex on PHY 0

        The ethernet part of these two board is same as the EVM board. So I want to ask what should I do to use only one ethernet port?

Thanks for help

James Chen

  • Hi James,

    Since the client app is working for your board with 2 Ethernet ports (ver 1) but does not work with the board that has only 1 Ethernet port (ver 2), it seems that the problem could be some hardware difference between the two boards.  Or maybe a driver update is needed for the ver 2 board.

    So, are you able to reproduce the problem on the DM648 EVM?  I would like to run your program here in order to debug it, but I all I have is the EVM board.  Do you think I'll be able to see this problem on my EVM?

    If so, please attach your *fully built* client project to this thread, and I can try it out here.

    Also, I think the output you show in the above posting is from running the client example on board *ver 1*.  Can you please also post the output for the failure case (when running on board *ver 2*)?

    Thanks,

    Steve

  • 3872.My_Client_2.rarHi Steve,

    The output of the program running on second board(ver 2) is complete same with the first board(ver 2).

    I post the client project as below:

    hal_eth_dm648_1port.lib is the one ethernet port lib file I rebuilded, hal_eth_dm648_2port.lib is the builded file in NDK.

    Thanks,

    James

  • Hi James,

    I spent some time trying to rebuild your attached project, but I was unable to do so.  It seems like you have a mix of files from NDK 1.92.00.22, NDK 1.92.00.13, and possibly even NDK 2.0.0.  Is this correct?

    I am having trouble rebuilding due to errors caused by this mixing and matching.  So, in order to reproduce this, I will need you to zip up your entire NDK installation where your My_Client project lives.  Can you do that and then upload it?

    Or, if you can build your My_Client application to use DHCP this would help, too.

    Thanks,

    Steve