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.

AM625: DDR ECC

Part Number: AM625
Other Parts Discussed in Thread: SYSCONFIG

Hi:

   Now, we have a problem about DDR ECC:

  1. Enable DDR ECC, in SBL and uboot, if we read 0x8721AAC0 - 0x8721B000, the board will crash

  2. Disable DDR ECC, if we read 0x8721AAC0 - 0x8721B000 and 0x9C800000 - 0xA0000000, the board won't crash

   3. Disable DDR ECC, we test 0x8721AAC0 - 0x8721B000 and 0x9C800000 - 0xA0000000, the data read from this affress is same after writing.

    So, the DDR device is ok.

   4. We also check the data of DDR is inited  as 0, but we can't check the area of 0x8721AAC0 - 0x8721B000.

   5. We read the registers: 0xF300158, 0xF30015C, 0xF300160, 0xF300164 in uboot when the board crash, the values are all 0.

   Could you please help us?

  • Hi Tom,

    It's unexpected if an inline ECC error happens. Could you please read this value from DM core by CCS to check? If these register values are still 0, I suppose it's not an inline ECC issue.  We need to check such as PMU setting. 

    We read the registers: 0xF300158, 0xF30015C, 0xF300160, 0xF300164 in uboot when the board crash, the values are all 0

    Linjun   

  • Tom, are you performing the proper priming of the memory?  How are you doing this?  What ECC region are you setting up? 

    Regards,

    James

  • Hi Linjun:

       I use CCS to connect board, when it crashed, the value of these regs are:

      0xF300158 = 0x00721AA2

      0xF30015C = 0x00000002

     0xF300160 = 0x00721AAC

     0xF300164 = 0x00000001

  • Hi JJD:

         The ECC region is defined in board_ddrReginit.h, the file is generated from TI Sysconfig

  • 0xF300158 = 0x00721AA2 0xF30015C = 0x00000002 means 0x8721AA28- 721AA2F 1-bit error happens.

    0xF300160 = 0x00721AAC  0xF300164 = 0x00000001 means 0x8721AAC0-0x8721AAC8  2-bit error happens.

    As James mentioned, " are you performing the proper priming of the memory?  How are you doing this?  What ECC region are you setting up"

    Please dump the register 0xF300130  0xF300134  0xF300138  0xF30013c  0xF300140  0xF300144   0xF300120 for further check.

    Could you please also upload the source code of the sequence how did you do the  priming here?

    Thanks.