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.

CCS/TMS320C6678: DDR3 test issue

Part Number: TMS320C6678

Tool/software: Code Composer Studio

Hello all,

C6678L EVK

CCS 5.0.3.00028

MCSDK 2.00.05.17

We built 100 boards based on the C6678 EVM and everything was ok...then we built another 2 boards with some modification to a GPS circuitry we have on the board and this time the C6678 chip we bought is showing 1.25 GHz printed on it. The problem we are having is when we connect to the target from CCS, the DDR3 (GEL file) fails and if we load a program, we don't stop in main...the system goes to running state immediately. Nothing has changed in the 2 board layouts/design other than gps signals and DSP being 1.25 GHz. One thing we tested and not sure how to relate to the problem is that when we changed the GEL file (C:\ti\ccsv5\ccs_base\emulation\boards\evmc6678l\gel\evmc6678l.gel) to read addresses with 8 increment, the test passed...the change is in bold below:

ddr3_memory_test ()
{
    unsigned int index, value;

    GEL_TextOut( "DDR3 memory test... Started\n" );

    /* Write a pattern */
    for (index = DDR3_TEST_START_ADDRESS; index < DDR3_TEST_END_ADDRESS; index += 4) {
        *index = index;
    }

    /* Read and check the pattern */
    for (index = DDR3_TEST_START_ADDRESS; index < DDR3_TEST_END_ADDRESS; index += 8) {

        value = *index;

        if (value  != index) {
            GEL_TextOut( "DDR3 memory test... Failed\n" );
            return -1;
        }
    }

    /* Write a pattern for complementary values */
    for (index = DDR3_TEST_START_ADDRESS; index < DDR3_TEST_END_ADDRESS; index += 4) {
        *index = ~index;
    }

    /* Read and check the pattern */
    for (index = DDR3_TEST_START_ADDRESS; index < DDR3_TEST_END_ADDRESS; index += 8) {

        value = *index;

        if (value  != ~index) {
            GEL_TextOut( "DDR3 memory test... Failed\n" );
            return -1;
        }
    }

    GEL_TextOut( "DDR3 memory test... Passed\n" );
    return 0;
}

This changed doesn't affect the speed of talking to the DDR3 but some how passed the test....Note: passing the test didn't fix the stop in main problem

Any idea to what could cause this DDR3 issue

Regards,

Murad

  • Hi,

    the DDR3 (GEL file) fails and if we load a program, we don't stop in main

    Not stopping in main is to be expected in this case. Can you share the CCS error log, when you load the gel file?

    Best Regards,
    Yordan

  • Thank you Yordan for your email response,

    CCS log

    C66xx_0: GEL Output: Setup_Memory_Map...
    C66xx_0: GEL Output: Setup_Memory_Map... Done.
    C66xx_0: GEL Output: 
    Connecting Target...
    C66xx_0: GEL Output: DSP core #0
    C66xx_0: GEL Output: C6678L GEL file Ver is 2.005 
    C66xx_0: GEL Output: Global Default Setup...
    C66xx_0: GEL Output: Setup Cache... 
    C66xx_0: GEL Output: L1P = 32K   
    C66xx_0: GEL Output: L1D = 32K   
    C66xx_0: GEL Output: L2 = ALL SRAM   
    C66xx_0: GEL Output: Setup Cache... Done.
    C66xx_0: GEL Output: Main PLL (PLL1) Setup ... 
    C66xx_0: GEL Output: PLL not in Bypass, Enable BYPASS in the PLL Controller... 
    C66xx_0: GEL Output: PLL1 Setup for DSP @ 1000.0 MHz.
    C66xx_0: GEL Output:            SYSCLK2 = 333.3333 MHz, SYSCLK5 = 200.0 MHz.
    C66xx_0: GEL Output:            SYSCLK8 = 15.625 MHz.
    C66xx_0: GEL Output: PLL1 Setup... Done.
    C66xx_0: GEL Output: Power on all PSC modules and DSP domains... 
    C66xx_0: GEL Output: Security Accelerator disabled!
    C66xx_0: GEL Output: Power on all PSC modules and DSP domains... Done.
    C66xx_0: GEL Output: PA PLL (PLL3) Setup ... 
    C66xx_0: GEL Output: PA PLL Setup... Done.
    C66xx_0: GEL Output: DDR3 PLL (PLL2) Setup ... 
    C66xx_0: GEL Output: DDR3 PLL Setup... Done.
    C66xx_0: GEL Output: DDR begin (1333 auto)
    C66xx_0: GEL Output: XMC Setup ... Done 
    C66xx_0: GEL Output: 
    DDR3 initialization is complete.
    C66xx_0: GEL Output: DDR done
    C66xx_0: GEL Output: DDR3 memory test... Started
    C66xx_0: GEL Output: DDR3 memory test... Failed
    C66xx_0: GEL Output: Main PLL (PLL1) Setup ... 
    C66xx_0: GEL Output: PLL not in Bypass, Enable BYPASS in the PLL Controller... 
    C66xx_0: GEL Output: PLL1 Setup for DSP @ 1000.0 MHz.
    C66xx_0: GEL Output:            SYSCLK2 = 333.3333 MHz, SYSCLK5 = 200.0 MHz.
    C66xx_0: GEL Output:            SYSCLK8 = 15.625 MHz.
    C66xx_0: GEL Output: PLL1 Setup... Done.
    C66xx_0: GEL Output: PA PLL (PLL3) Setup ... 
    C66xx_0: GEL Output: PA PLL Setup... Done.
    C66xx_0: GEL Output: DDR3 PLL (PLL2) Setup ... 
    C66xx_0: GEL Output: DDR3 PLL Setup... Done.
    C66xx_0: GEL Output: DDR begin (1333 auto)
    C66xx_0: GEL Output: XMC Setup ... Done 
    C66xx_0: GEL Output: 
    DDR3 initialization is complete.
    C66xx_0: GEL Output: DDR done
    C66xx_0: GEL Output: DDR3 memory test... Started
    C66xx_0: GEL Output: DDR3 memory test... Failed
    C66xx_0: GEL Output: Main PLL (PLL1) Setup ... 
    C66xx_0: GEL Output: PLL not in Bypass, Enable BYPASS in the PLL Controller... 
    C66xx_0: GEL Output: PLL1 Setup for DSP @ 1000.0 MHz.
    C66xx_0: GEL Output:            SYSCLK2 = 333.3333 MHz, SYSCLK5 = 200.0 MHz.
    C66xx_0: GEL Output:            SYSCLK8 = 15.625 MHz.
    C66xx_0: GEL Output: PLL1 Setup... Done.
    C66xx_0: GEL Output: PA PLL (PLL3) Setup ... 
    C66xx_0: GEL Output: PA PLL Setup... Done.
    C66xx_0: GEL Output: DDR3 PLL (PLL2) Setup ... 
    C66xx_0: GEL Output: DDR3 PLL Setup... Done.
    C66xx_0: GEL Output: DDR begin (1333 auto)
    C66xx_0: GEL Output: XMC Setup ... Done 
    C66xx_0: GEL Output: 
    DDR3 initialization is complete.
    C66xx_0: GEL Output: DDR done
    C66xx_0: GEL Output: DDR3 memory test... Started
    C66xx_0: GEL Output: DDR3 memory test... Failed
    C66xx_0: GEL Output: Main PLL (PLL1) Setup ... 
    C66xx_0: GEL Output: PLL not in Bypass, Enable BYPASS in the PLL Controller... 
    C66xx_0: GEL Output: PLL1 Setup for DSP @ 1000.0 MHz.
    C66xx_0: GEL Output:            SYSCLK2 = 333.3333 MHz, SYSCLK5 = 200.0 MHz.
    C66xx_0: GEL Output:            SYSCLK8 = 15.625 MHz.
    C66xx_0: GEL Output: PLL1 Setup... Done.
    C66xx_0: GEL Output: PA PLL (PLL3) Setup ... 
    C66xx_0: GEL Output: PA PLL Setup... Done.
    C66xx_0: GEL Output: DDR3 PLL (PLL2) Setup ... 
    C66xx_0: GEL Output: DDR3 PLL Setup... Done.
    C66xx_0: GEL Output: DDR begin (1333 auto)
    C66xx_0: GEL Output: XMC Setup ... Done 
    C66xx_0: GEL Output: 
    DDR3 initialization is complete.
    C66xx_0: GEL Output: DDR done
    C66xx_0: GEL Output: DDR3 memory test... Started
    C66xx_0: GEL Output: DDR3 memory test... Failed
    C66xx_0: GEL Output: Main PLL (PLL1) Setup ... 
    C66xx_0: GEL Output: PLL not in Bypass, Enable BYPASS in the PLL Controller... 
    C66xx_0: GEL Output: PLL1 Setup for DSP @ 1000.0 MHz.
    C66xx_0: GEL Output:            SYSCLK2 = 333.3333 MHz, SYSCLK5 = 200.0 MHz.
    C66xx_0: GEL Output:            SYSCLK8 = 15.625 MHz.
    C66xx_0: GEL Output: PLL1 Setup... Done.
    C66xx_0: GEL Output: PA PLL (PLL3) Setup ... 
    C66xx_0: GEL Output: PA PLL Setup... Done.
    C66xx_0: GEL Output: DDR3 PLL (PLL2) Setup ... 
    C66xx_0: GEL Output: DDR3 PLL Setup... Done.
    C66xx_0: GEL Output: DDR begin (1333 auto)
    C66xx_0: GEL Output: XMC Setup ... Done 
    C66xx_0: GEL Output: 
    DDR3 initialization is complete.
    C66xx_0: GEL Output: DDR done
    C66xx_0: GEL Output: DDR3 memory test... Started
    C66xx_0: GEL Output: DDR3 memory test... Failed
    C66xx_0: GEL Output: Main PLL (PLL1) Setup ... 
    C66xx_0: GEL Output: PLL not in Bypass, Enable BYPASS in the PLL Controller... 
    C66xx_0: GEL Output: PLL1 Setup for DSP @ 1000.0 MHz.
    C66xx_0: GEL Output:            SYSCLK2 = 333.3333 MHz, SYSCLK5 = 200.0 MHz.
    C66xx_0: GEL Output:            SYSCLK8 = 15.625 MHz.
    C66xx_0: GEL Output: PLL1 Setup... Done.
    C66xx_0: GEL Output: PA PLL (PLL3) Setup ... 
    C66xx_0: GEL Output: PA PLL Setup... Done.
    C66xx_0: GEL Output: DDR3 PLL (PLL2) Setup ... 
    C66xx_0: GEL Output: DDR3 PLL Setup... Done.
    C66xx_0: GEL Output: DDR begin (1333 auto)
    C66xx_0: GEL Output: XMC Setup ... Done 
    C66xx_0: GEL Output: 
    DDR3 initialization is complete.
    C66xx_0: GEL Output: DDR done
    C66xx_0: GEL Output: DDR3 memory test... Started
    C66xx_0: GEL Output: DDR3 memory test... Failed
    C66xx_0: GEL Output: Main PLL (PLL1) Setup ... 
    C66xx_0: GEL Output: PLL not in Bypass, Enable BYPASS in the PLL Controller... 
    C66xx_0: GEL Output: PLL1 Setup for DSP @ 1000.0 MHz.
    C66xx_0: GEL Output:            SYSCLK2 = 333.3333 MHz, SYSCLK5 = 200.0 MHz.
    C66xx_0: GEL Output:            SYSCLK8 = 15.625 MHz.
    C66xx_0: GEL Output: PLL1 Setup... Done.
    C66xx_0: GEL Output: PA PLL (PLL3) Setup ... 
    C66xx_0: GEL Output: PA PLL Setup... Done.
    C66xx_0: GEL Output: DDR3 PLL (PLL2) Setup ... 
    C66xx_0: GEL Output: DDR3 PLL Setup... Done.
    C66xx_0: GEL Output: DDR begin (1333 auto)
    C66xx_0: GEL Output: XMC Setup ... Done 
    C66xx_0: GEL Output: 
    DDR3 initialization is complete.
    C66xx_0: GEL Output: DDR done
    C66xx_0: GEL Output: DDR3 memory test... Started
    C66xx_0: GEL Output: DDR3 memory test... Failed
    C66xx_0: GEL Output: Main PLL (PLL1) Setup ... 
    C66xx_0: GEL Output: PLL not in Bypass, Enable BYPASS in the PLL Controller... 
    C66xx_0: GEL Output: PLL1 Setup for DSP @ 1000.0 MHz.
    C66xx_0: GEL Output:            SYSCLK2 = 333.3333 MHz, SYSCLK5 = 200.0 MHz.
    C66xx_0: GEL Output:            SYSCLK8 = 15.625 MHz.
    C66xx_0: GEL Output: PLL1 Setup... Done.
    C66xx_0: GEL Output: PA PLL (PLL3) Setup ... 
    C66xx_0: GEL Output: PA PLL Setup... Done.
    C66xx_0: GEL Output: DDR3 PLL (PLL2) Setup ... 
    C66xx_0: GEL Output: DDR3 PLL Setup... Done.
    C66xx_0: GEL Output: DDR begin (1333 auto)
    C66xx_0: GEL Output: XMC Setup ... Done 
    C66xx_0: GEL Output: 
    DDR3 initialization is complete.
    C66xx_0: GEL Output: DDR done
    C66xx_0: GEL Output: DDR3 memory test... Started
    C66xx_0: GEL Output: DDR3 memory test... Failed
    C66xx_0: GEL Output: Main PLL (PLL1) Setup ... 
    C66xx_0: GEL Output: PLL not in Bypass, Enable BYPASS in the PLL Controller... 
    C66xx_0: GEL Output: PLL1 Setup for DSP @ 1000.0 MHz.
    C66xx_0: GEL Output:            SYSCLK2 = 333.3333 MHz, SYSCLK5 = 200.0 MHz.
    C66xx_0: GEL Output:            SYSCLK8 = 15.625 MHz.
    C66xx_0: GEL Output: PLL1 Setup... Done.
    C66xx_0: GEL Output: PA PLL (PLL3) Setup ... 
    C66xx_0: GEL Output: PA PLL Setup... Done.
    C66xx_0: GEL Output: DDR3 PLL (PLL2) Setup ... 
    C66xx_0: GEL Output: DDR3 PLL Setup... Done.
    C66xx_0: GEL Output: DDR begin (1333 auto)
    C66xx_0: GEL Output: XMC Setup ... Done 
    C66xx_0: GEL Output: 
    DDR3 initialization is complete.
    C66xx_0: GEL Output: DDR done
    C66xx_0: GEL Output: DDR3 memory test... Started
    C66xx_0: GEL Output: DDR3 memory test... Failed
    C66xx_0: GEL Output: Main PLL (PLL1) Setup ... 
    C66xx_0: GEL Output: PLL not in Bypass, Enable BYPASS in the PLL Controller... 
    C66xx_0: GEL Output: PLL1 Setup for DSP @ 1000.0 MHz.
    C66xx_0: GEL Output:            SYSCLK2 = 333.3333 MHz, SYSCLK5 = 200.0 MHz.
    C66xx_0: GEL Output:            SYSCLK8 = 15.625 MHz.
    C66xx_0: GEL Output: PLL1 Setup... Done.
    C66xx_0: GEL Output: PA PLL (PLL3) Setup ... 
    C66xx_0: GEL Output: PA PLL Setup... Done.
    C66xx_0: GEL Output: DDR3 PLL (PLL2) Setup ... 
    C66xx_0: GEL Output: DDR3 PLL Setup... Done.
    C66xx_0: GEL Output: DDR begin (1333 auto)
    C66xx_0: GEL Output: XMC Setup ... Done 
    C66xx_0: GEL Output: 
    DDR3 initialization is complete.
    C66xx_0: GEL Output: DDR done
    C66xx_0: GEL Output: DDR3 memory test... Started
    C66xx_0: GEL Output: DDR3 memory test... Failed
    C66xx_0: GEL Output: PLL and DDR Initialization failed ...
    C66xx_0: GEL Output: configSGMIISerdes Setup... Begin
    C66xx_0: GEL Output: 
    SGMII SERDES has been configured.
    C66xx_0: GEL Output: Enabling EDC ...
    C66xx_0: GEL Output: L1P error detection logic is enabled.
    C66xx_0: GEL Output: L2 error detection/correction logic is enabled.
    C66xx_0: GEL Output: MSMC error detection/correction logic is enabled.
    C66xx_0: GEL Output: Enabling EDC ...Done 
    C66xx_0: GEL Output: Configuring CPSW ...
    C66xx_0: GEL Output: Configuring CPSW ...Done 
    C66xx_0: GEL Output: Global Default Setup... Done.
    
    is attached

    Regards,

    Murad

  • Hi Murad,

    Do you use the same PLL settings for the 1.25GHz processor & the other boards?
    Note that pll multipliers and dividers may be different. Refer to the TMS320C6678 EVM (TMDSEVM6678L).

    Best Regards,

    Yordan

  • Hi Yordan,

    I am using the same settings...I am using the same GEL file...to pass ddr3 test, I had to change the increment to 8 as mentioned  above....The reference input to the pll is tge same (100 mhz),

    Regards,

    Murad

  • Murad,

    I don`t think this is any issue with GEL or software, so I am going to loop in our board design engineer and DDR expert to comment on what can cause this issue. Please confirm once again that there is no other changes other than the modified GPS circuitry.

    Regards,

    Rahul

  • Thank you Rahul,

    No changes to the board other than the GPS circuitry. We used the DDR3 layout as in the C6678 EVM without any changes

    Regards,

    Murad

  • Hi Murad,

    Can you confirm that you are using the same part number for the DDR memory as well?

    Regards, Bill

  • Hello Bill,

    Correct...the same DDR3 part number...actually, we bought DDR3 enough to build 200 boards few years back...I don't think our manufacturing department stored the remaining ones appropriately and we are wondering if DDR3 went bad!?

    Regards,

    Murad

  • Murad,

    Please provide the complete part number for both the original and the new C6678 devices.  Can you implement one of the devices with the original part and mount it on one of the new boards?  Are you building more than just the 2 boards?

    Tom

  • Murad,

    Can you provide an update so that we can continue with this discussion?

    Tom

  • Murad,

    If there is nothing further at this time, we will close this thread.  If needed in the future, another thread can be initiated and linked to this one to continue the discussion.

    Tom