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.

debugger goes to unknown location

Hi,

if i load the program of ethernet test, with my customer board. once it worked at the beginning two days. after that

the debugger goes to unknown memory location. i debugged with disassembly starting from c_init, it goes to one memory location which is not even exists in my .map file. why my debugger goes to unknown memory location and says it can't open ?what is the reason?

Thanks,

Ram.

  • Ram,

    Please provide more details like,

    1. Which is the TI Processor in your custom board?

    2. Are you using MCSDK, if it is keystone device?

    3. Ethernet test code is your own or TI released?

    4. Are you running(( two days)) the test code with CCS & Emulator?

  • Hi,

    1. i am using C6657-Multi core DSP.

    2. i am using MCSDK and C66x-Keystone Device.

    3. The test code is from TI. I want to test first with the same code from TI with customer board and it came to a point ,SGMII rest successful and SGMII config successful . so i want to use the same test code from TI and if needed modify little bit to test my ethernet connection on the customer board.

    4.i just test for two days the same code with emulator and  the result came as told by the point 3. Then after that it hasn't even gone to main(). so i see the disassembly starting from c_init(), it goes some point to wrong memory location and tries to look and says no source is there(as my .map file doesn't contain also the same address).

    Thanks,

    Ram.

  • Ram,

    Did you test the same working code on TI EVM board, not your custom board? What is the result?

    Able to ping the board IP continously when running the custom board two days using emulator? Which of the function or task gets to halt after two days running the board.

  • Hi,

    we used the same code works on TI EVM Board. The result is completely fine as shown in the doc Result_EVM.docx.

    But when i used the custom board for two days it runs upto the point SGMII Config successful, it hasn't gone to the next steps.thats why i want to use the same TI code to go further with the next steps.

    http://e2e.ti.com/cfs-file.ashx/__key/communityserver-discussions-components-</p> <p>files/639/5126.Result_5F00_EVM.docx

    Thanks,

    Ram.

  • Ram,

    I believe that, Its working on TI EVM board. So this issue is related with your custom board, not in the software like NDK stack or sample test code. And also may be cause of memory, please check in the hardware side, what are the changes in the custom compare to EVM board. 

    And also test some other example project on your custom board, is it working more than two days?

  • Hi,

    i am also searching in the direction of memory. i saw the .cfg file from TI.it takes the below stuff in DDR3. i don't understand why the TI took these variables in DDR3. i changed it to L2SRAM,eventhough it does not work. so i am keeping as it is in DDR3. and i am testing whether my DDR3 memory is completely fine on the customer board.

    /* This is the default memory heap. */

    Memory.defaultHeapInstance = Program.global.heap0;

    Program.sectMap["emacComm"] = "DDR3";
    Program.sectMap["systemHeap"] = "DDR3";
    Program.sectMap[".switch"] = "DDR3";
    Program.sectMap[".sysmem"] = "DDR3";
    Program.sectMap[".args"] = "DDR3";
    Program.sectMap[".cio"] = "DDR3";
    Program.sectMap[".far"] = "DDR3";
    Program.sectMap[".cinit"] = "DDR3";
    Program.sectMap[".bss"] = "DDR3";
    Program.sectMap[".rodata"] = "DDR3";
    Program.sectMap[".neardata"] = "DDR3";
    Program.sectMap[".const"] = "DDR3";
    Program.sectMap[".text"] = "DDR3";
    Program.sectMap[".code"] = "DDR3";
    Program.sectMap[".data"] = "DDR3";
    Program.sectMap["platform_lib"] = "DDR3";

    Thanks,

    Ram.

  • Ram,

    Yes, You will test the DDR3 memory to write and read using platform test code with lib.

    For memory usage through .cfg file, refer the helloWorld.cfg and client.cfg.

     

  • Hi,

    i found the DDR3 memory test with customer board fails. i found some problem with my DDR3 on my customer board. i am still trying to work it out. i think this is the problem. But i don't understand why the below sections are allocated in DDR3. i changed to L2SRAM to test. it didn't work. what is the reason to allocate these sections in DDR3 in both helloWorld.cfg and client.cfg?

    Program.sectMap["emacComm"] = "DDR3";
    Program.sectMap["systemHeap"] = "DDR3";
    Program.sectMap[".switch"] = "DDR3";
    Program.sectMap[".sysmem"] = "DDR3";
    Program.sectMap[".args"] = "DDR3";
    Program.sectMap[".cio"] = "DDR3";
    Program.sectMap[".far"] = "DDR3";
    Program.sectMap[".cinit"] = "DDR3";
    Program.sectMap[".bss"] = "DDR3";
    Program.sectMap[".rodata"] = "DDR3";
    Program.sectMap[".neardata"] = "DDR3";
    Program.sectMap[".const"] = "DDR3";
    Program.sectMap[".text"] = "DDR3";
    Program.sectMap[".code"] = "DDR3";
    Program.sectMap[".data"] = "DDR3";
    Program.sectMap["platform_lib"] = "DDR3"

    thanks,

    Ram.

  • Ram,

    Refer this wiki page to get more detailed info for using internal/external memory,

    http://processors.wiki.ti.com/index.php/DSP_BIOS_FAQ#Q:_How_can_I_allocate_all_my_code_and_data_sections_to_external_memory_with_DSP.2FBIOS_5.3F

    http://rtsc.eclipse.org/docs-tip/Memory_Management

  • Hi,

    i tried to debug the client project, as i told you before when my DDR3 is fine in the customer board, it come to a point "SGMII config successful" and stops.i want to debug further in the files sgmii.c , emac_drv.c. my question is why these files are not added in the project helloworld or client. For me its blocking to debug further. i myself wants to add these files in the client project, but comes lot of compiler errors. what to do if i want to debug emac_drv.c?

    Thanks,

    Ram.

  • Ram,

    Here, the Ethernet packet driver rewritten using the NIMU packet architecture guidelines.

    The NIMU lib/package is added through client.cfg file, You can find the NIMU source code at:
    C:\ti\pdk_C6657_1_1_2_6\packages\ti\transport\ndk\nimu

  • Ram,

    In addition that, If you are using EMAC LLD, need to call the below sequence in the cfg file on your project,

    /* Load EMAC package */
    var EmacLLD = xdc.loadPackage('ti.drv.emac');

  •  

    Hi,

    i open the folder"C:\ti\pdk_C6657_1_1_2_6\packages\ti\transport\ndk\nimu" but i find only  nimu_eth.c , not the other files emac_drv.c, emac.c which i want to debug. I tested also adding the project "nimu" but i found only nimu_eth.c under the project. Please tell me why i can't able to see the emac_drv.c, emac.c files.

     

    thanks,

    Ram.

     

  • Ram,

    Find the emac_drv.c and emac.c files at: C:\ti\pdk_C6657_1_1_2_6\packages\ti\drv\emac\src

  • Hi,

    i found already these files before. but they are not included in the ti projects "helloworld", "client" and "nimu". so i can't able to debug these files under these projects. i want to add these files from my side to "client" project and try to build ,load and debug. but when i am trying to build lot of compile errors came. but my question is why these files are not included in the projects "helloworld", "client" and "nimu"?

    thanks,

    Ram.

  • Ram,

    The helloworld, client projects are using NIMU driver. It is included in the .cfg file as a below sequence,

    /* Load the NDK Transport packages */
    var NdkTransport = xdc.loadPackage('ti.transport.ndk');

    So that you no need to include once again for nimu driver. 

    If you need to use with some modification on the nimu driver code, first clean the nimu project and rebuild after the modification.

    C:\ti\pdk_C6657_1_1_2_6\packages\ti\transport\ndk\nimu

    If you like to use in your custom code with including EMAC LLD, find the source code at:

    C:\ti\pdk_C6657_1_1_2_6\packages\ti\drv\emac

    C:\ti\pdk_C6657_1_1_2_6\packages\ti\drv\emac\test\EmacLoopbackTest

    C:\ti\pdk_C6657_1_1_2_6\packages\ti\drv\emac\example\EMACBenchmark

  • Hi,

    as i am testing the client project with my custom board, and it halts in the below loop in emac_drv.c after the trace"SGMII config successful"

          do

            {
                stat = SGMII_REGS->STATUS;
                stat = stat & 0x1;
            } while( stat != 0x1 );

    The value of stat is 0x30, so the first bit 0->LINK, shows Link is not up.What could be the reason for this? i don't know whether it the hardware problem or the software problem.What can cause link is not up?

    Thanks,

    Ram.

  • Hi,

    one more question from my side?

    The custom board i have is with the phy 88E1512(not same as 88E1111 on the EVM board ).i would like to know whether the "client" project i am using is directly work with the customer board i am using? or i have to change some thing in the code? as you know i am searching the cause of the problem as explained in the last post.

    Thanks,

    Ram.

  • Ram,

    We do not have the example code of ethernet configuration for Marvell Alaska 88E1512.
    Useually TI EVMs having Marvell 88E1111 chipset for PHY. I hope, this is the main issue on your side.
    You are running the Marvell 88E1111 chipset based code on Marvell Alaska 88E1512. This will not give you solution. I can suggest you, contact with Marvell for the configuration code of 88E1512 or go through the datasheet and try to write code for this chipset.
    The similar issue is found in the E2E post, see the below E2E.
    http://e2e.ti.com/support/dsp/c6000_multi-core_dsps/f/639/p/273758/957759.aspx#957759

    The Marvell 88E1111 PHY used on the EVM is the only PHY that is supported in the sample code.
    This is an un-managed PHY which doesn't require much configuration from the SOC for proper operation.
    I can't provide examples for other PHYs since documentation for most industry PHYs requires an NDA.
    Any questions concerning the configuration of the PHY should be directed to Marvell.

  • Ram,

    I hope, now you understand the cause of issue and difference between the PHY used in the EVM/Custom board.

    However this discussion of thread can helpful for future readers, If you verified this thread.

  • Hi Ram

    I am having the excact same problem, and would like to ask you if you have made any progress with Marvel?

    best

    Jens

  • Hi Jens,

    no not yet. As told by TI i contacted Marvell and no good response as they asked me to contact local sales office. first of all i don't understand whether we have to change drastically the TI sample code for SGMII configuration. so i will inform you time to time my updates.please inform me if you solve this problem.

    thanks,

    Ram.

  • Ram/Jens,

    Please check the similar issue discussing at the below E2E post,

    http://e2e.ti.com/support/dsp/c6000_multi-core_dsps/f/639/p/367396/1293298.aspx#1293298

    This will be useful for your use case of different PHY config.