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.

DDR parameters

hello TI-friends,

after checking http://processors.wiki.ti.com/index.php/DM816x_C6A816x_AM389x_DDR3_Init

we got value as below

DDR3 clock frequency 400 MHz
Invert Clkout 0
Trace Length (inches)
Byte 0 Byte 1 Byte 2 Byte 3
CLK trace 3.096 3.096 2.443 2.443
DQS trace 2.025 1.813 1.614 1.514
Seed values (per byte lane)
WR DQS 13 17 F 11
RD DQS 40 40 40 40
RD DQS GATE C3 BB A8 A4
Seed Values to input to program
WR DQS 12
RD DQS 40
RD DQS GATE B2

in arch/arm/include/asm/arch-ti81xx/ddr_defs_ti816x.h.

#define RD_DQS_GATE_LANE3     does this map to C3 or  A4 ??

  • hello TI-friends,

    Q1.  #define RD_DQS_GATE_LANE3 does this map to C3 or A4 ??

    one more question is

    Q2. how did we know if the field "Invert Clkout" is zero or other values ??

    we didn't find the any explanation in http://processors.wiki.ti.com/index.php/DM816x_C6A816x_AM389x_DDR3_Init

  • hello TI-friends,

    Q1. 

    Seed values (per byte lane)
    WR DQS 13 17 F 11
    RD DQS 40 40 40 40
    RD DQS GATE C3 BB A8 A4

    how to map RD DQS GATE to following RD_DQS_GATE_LANE3/2/1/0  ??

    #define RD_DQS_GATE_LANE3 0xC3 or  #define RD_DQS_GATE_LANE3 0xA4 ??

    Q2. how did we know if the field "Invert Clkout" is zero or other values ??

     

    Q3.  I found following are different when I download RatioSeed.xml from http://tiprocessors.com/index.php/DM816x_C6A816x_AM389x_DDR3_Init and

    http://processors.wiki.ti.com/index.php/DM816x_C6A816x_AM389x_DDR3_Init

     

    following formula seems reasonable. right?

    the following seems to be fixed. Is it correct??

     

  • hi

    RD_DQS_GATE is the average of RD_DQS_GATE_LANE3/2/1/0, similarly for WR DQS and RD DQS GATE.

    Basically here is the list of input parameters that you need to provide:

    CK_TRACE_BYTEx (x from 0 .. 3) (units mils i,e. 1/1000 of inch)

    DQS_TRACE_BYTEx (x from 0..3) (units mils i,e. 1/1000 of inch)

    DDR3 frequency (unit MHz)

    INVERT_CLK 0 or 1 depending on which is the case.

    These are used to calculate , WR_DQS[0..3] and RD_DQS_GATE[0..3] , while RD_DQS[0..3] is hard-coded to 0x40. 

    WR_DQS[0] = ((((CK_TRACE_BYTE0-DQS_TRACE_BYTE0)*
                                    180*DDR_FREQUENCY)/1000/1000/1000)*\
                                    256)+(INVERT_CLK*128);

    and similarly for others.

    These values are averaged to get the triplet seed values:

    WR_DQS is AVG(WR_DQS[0..3]

    RD_DQS is AVG(RD_DQS[0..3]

    RD_DQS_GATE  is AVG(RD_DQS_GATE[0..3]).

    These seed values need to be input to the DDR3_SlaveRatio_ByteWiseSearch_TI816x.out program to obtain the MAX,MIN and OPTimum values for each of these 3 parameters.

    Hope this helps.

    thanks & regards,

    Abhilash