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.

TMS320C6678: DDR3 contents after soft reboot

Expert 1800 points
Part Number: TMS320C6678

Hi,

We use C6678 in our custom hardware system.  When we do software reboot of our system, the system is rebooted by a watchdog reset.

The C6678 DDR3 contains garbage values after the soft reboot.

How can we ensure that the DDR3 contents are cleared after a reboot?

  • Dear customer,

    Sorry for the late reply.Thanks for your patience.

    From the software point of view, you can include some DDR3 test sequence to ensure the values.

    This is an extract from the gel file of C6678. Try whether you can include some sequence like this after a soft reset. And also verify the values using memory browser window of CCS.

    You can modify this code, in a way ot clears the values. 

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

    #define DDR3_TEST_START_ADDRESS (0x80000000)

    #define DDR3_TEST_END_ADDRESS (DDR3_TEST_START_ADDRESS + (4 * 100))

    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 += 4) {

    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 += 4) {

    value = *index;

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

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

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

    Regards

    Shankari