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.

C6474 EVM client example IP address question

Hi,

  I am running NDK 2.0.0 on the C6474 EVM with CCSv4, running the client example.  In this example, I have modified the code to give a unique static IP address to each core based on CSL_CHIP_DNUM, but cannot seem to ping cores 1 and 2 (0 based index).  Is it possible for each core on the C6474 to have a unique IP address using the NDK, or must all TCP/IP traffic be routed through core 0?

 

Thanks,

Josh

  • Hi Josh,

    It is possible. But did you convert the project from CCSv3.3 to CCSv4? 

     

    Thanks,

    Arun

  • Yes, I have converted the project from 3.3 to 4.1.2, and it seems to be working on Core 0, I am just unable to even ping the other two cores.  (I tried the same test usind DHCP, and had the same result - could ping core 0, but not the other 2)  Here are the modifications (snippets)  to client.c:

    char *LocalIPAddr0 = "192.168.199.217";                  // Set to "0.0.0.0" for DHCP
    char *LocalIPAddr1 = "192.168.199.218";                  // Set to "0.0.0.0" for DHCP
    char *LocalIPAddr2 = "192.168.199.219";                  // Set to "0.0.0.0" for DHCP

    corenum = CSL_chipReadReg(CSL_CHIP_DNUM);

            if (corenum == 0)
                NA.IPAddr  = inet_addr(LocalIPAddr0);
            else if (corenum == 1)
                NA.IPAddr  = inet_addr(LocalIPAddr1);
            else
                NA.IPAddr  = inet_addr(LocalIPAddr2);

    ...

    so, each core comes up successfully, and here is the console printfs for each core:

    CORE 0

    -----------------------------------

    TCP/IP Stack Example Client
    Core Number on which NDK is running = 0
    Since EFUSE MAC address is Zero we use the MAC Address = 00-01-02-03-04-05
    Only on CORE 0: SGMII reset successful........
    Only on CORE 0: SGMII config successful........
    Only on CORE 0: SerDes should be up and running
    EMAC has been started successfully
    Registeration of the EMAC Successful
    Network Added: If-1:192.168.199.217
    Service Status: Telnet   : Enabled  :          : 000
    Service Status: HTTP     : Enabled  :          : 000
    Link Status: 100Mb/s Full Duplex on PHY 1

    CORE 1

    ---------------------------------------

    TCP/IP Stack Example Client
    Core Number on which NDK is running = 1
    Since EFUSE MAC address is Zero we use the MAC Address = 10-11-12-13-14-15
    EMAC has been started successfully
    Registeration of the EMAC Successful
    Network Added: If-1:192.168.199.218
    Service Status: Telnet   : Enabled  :          : 000
    Service Status: HTTP     : Enabled  :          : 000

     

    CORE 2

    ------------------------------------------

    TCP/IP Stack Example Client
    Core Number on which NDK is running = 2
    Since EFUSE MAC address is Zero we use the MAC Address = 20-21-22-23-24-25
    EMAC has been started successfully
    Registeration of the EMAC Successful
    Network Added: If-1:192.168.199.219
    Service Status: Telnet   : Enabled  :          : 000
    Service Status: HTTP     : Enabled  :          : 000

     

    But then Cores 1 and 2 do not respond to a ping request.

     

    Thanks,

    Josh

  • Hi Josh,

    Can you sniff the packets. It might be possible that we have to add MAC entries statically in the PC. Also please check the project using CCS3.3 and see whther you can ping all the cores.

     

     

    arun.

  • That was it, thank you!  The packets were not being sent, so I had to add the MAC addresses using arp -s.  Now it is working in both CCS 3.3 and CCS 4.

    The issue I see now though, is that only Core 0 responds to ARP requests - is there something I need to configure in the NDK to get the other cores to respond as I am not sure if adding them statically will be a feasible solution.

     

    Thanks,

    Josh

  • No Problem

  • Arun,

      I am still running into two issues with running on cores 2 and 3

     

    1) On these cores,  no response is received from ARP packets, so I have to statically add the entries into the arp table

    2) When I use the EFUSE_MAC (cores 2 and 3 offset from core 1 in the LSByte by 2 and 4 respectively), I cannot ping them (or connect to them) even with the appropriate entries in the arp table.  When the MAC addresses are the default (10-11-12-13-14-15 for core 2), I can ping.

     

    Any insight on these issues?

    Thanks,

    Josh

  • I am not sure you posted speperately. but can you take a look the link below and see if it helps.

    http://e2e.ti.com/support/dsp/c6000_multi-core_dsps/f/439/t/58402.aspx

    Thanks,

    arun.