Hi,
I have used the AM57x EMIF Tools to generate the result register value on worksheet "result register".
I copy to this :
/* =========================================================================
* Copyright (C) 2015 Texas Instruments Incorporated
*
* All rights reserved. Property of Texas Instruments Incorporated.
* Restricted rights to use, duplicate or disclose this code are
* granted through contract.
*
* The program may not be used without the written permission
* of Texas Instruments Incorporated or against the terms and conditions
* stipulated in the agreement under which this program has been
* supplied.
* ========================================================================= */
/*
* AM571x_DDR3L_532MHz_TI_EVM_config.c
* Created on: 05/31/2016
* Created with: EMIF_RegisterConfig_v1.0.0
*/
#include "emif4d5_wrapper.h"
const struct dpll_params AM571x_DDR3L_532MHz_TI_EVM_pll_params = {
.m = 266,
.n = 4,
.m2 = 2,
.m4_h11 = 8
};
const struct ctrl_ioregs AM571x_DDR3L_532MHz_TI_EVM_ctrl_ioregs = {
.ctrl_ddr3ch = 0x80808080,
.ctrl_ddrch = 0x40404040,
.ctrl_ddrio_0 = 0x00094A40,
.ctrl_ddrio_1 = 0x00000000,
.ctrl_emif_sdram_config_ext = 0x0000C123
};
const struct dmm_lisa_map_regs AM571x_DDR3L_532MHz_TI_EVM_dmm_regs = {
.dmm_lisa_map_0 = 0x00000000,
.dmm_lisa_map_1 = 0x00000000,
.dmm_lisa_map_2 = 0x80500100,
.dmm_lisa_map_3 = 0xFF020100,
.is_ma_present = 0x1
};
const struct emif_regs AM571x_DDR3L_532MHz_TI_EVM_emif_regs = {
.sdram_config_init = 0x61851AB2,
.sdram_config = 0x61851AB2,
.sdram_config2 = 0x00000000,
.ref_ctrl = 0x000040F1,
.ref_ctrl_final = 0x00001035,
.sdram_tim1 = 0xCCCF36B3,
.sdram_tim2 = 0x305A7FDA,
.sdram_tim3 = 0x407F8558,
.read_idle_ctrl = 0x00050000,
.zq_config = 0x5007190B,
.temp_alert_config = 0x00000000,
.emif_rd_wr_lvl_rmp_ctl = 0x80000000,
.emif_rd_wr_lvl_ctl = 0x00000000,
.emif_ddr_phy_ctlr_1_init = 0x0824400B,
.emif_ddr_phy_ctlr_1 = 0x0E24400B,
.emif_rd_wr_exec_thresh = 0x00000305
};
/*
* DLL Ratio Values are an estimate based on trace lengths. Either
* software leveling or hardware leveling should be performed to
* determine final DLL values.
*/
const unsigned int AM571x_DDR3L_532MHz_TI_EVM_emif1_ext_phy_regs [] = {
, // EMIF1_EXT_PHY_CTRL_1
, // EMIF1_EXT_PHY_CTRL_2
, // EMIF1_EXT_PHY_CTRL_3
, // EMIF1_EXT_PHY_CTRL_4
, // EMIF1_EXT_PHY_CTRL_5
, // EMIF1_EXT_PHY_CTRL_6
, // EMIF1_EXT_PHY_CTRL_7
, // EMIF1_EXT_PHY_CTRL_8
, // EMIF1_EXT_PHY_CTRL_9
, // EMIF1_EXT_PHY_CTRL_10
, // EMIF1_EXT_PHY_CTRL_11
, // EMIF1_EXT_PHY_CTRL_12
, // EMIF1_EXT_PHY_CTRL_13
, // EMIF1_EXT_PHY_CTRL_14
, // EMIF1_EXT_PHY_CTRL_15
, // EMIF1_EXT_PHY_CTRL_16
, // EMIF1_EXT_PHY_CTRL_17
, // EMIF1_EXT_PHY_CTRL_18
, // EMIF1_EXT_PHY_CTRL_19
, // EMIF1_EXT_PHY_CTRL_20
, // EMIF1_EXT_PHY_CTRL_21
, // EMIF1_EXT_PHY_CTRL_22
, // EMIF1_EXT_PHY_CTRL_23
, // EMIF1_EXT_PHY_CTRL_24
, // EMIF1_EXT_PHY_CTRL_25
, // EMIF1_EXT_PHY_CTRL_26
, // EMIF1_EXT_PHY_CTRL_27
, // EMIF1_EXT_PHY_CTRL_28
, // EMIF1_EXT_PHY_CTRL_29
, // EMIF1_EXT_PHY_CTRL_30
, // EMIF1_EXT_PHY_CTRL_31
, // EMIF1_EXT_PHY_CTRL_32
, // EMIF1_EXT_PHY_CTRL_33
, // EMIF1_EXT_PHY_CTRL_34
, // EMIF1_EXT_PHY_CTRL_35
// EMIF1_EXT_PHY_CTRL_36
};
struct emif_cfg AM571x_DDR3L_532MHz_TI_EVM = {
.platform = "AM571x_DDR3L_532MHz_TI_EVM",
.EMIF2_DEFINED = 0,
.pll_regs = &AM571x_DDR3L_532MHz_TI_EVM_pll_params,
.ctrl_regs = &AM571x_DDR3L_532MHz_TI_EVM_ctrl_ioregs,
.dmm_regs = &AM571x_DDR3L_532MHz_TI_EVM_dmm_regs,
.regs = &AM571x_DDR3L_532MHz_TI_EVM_emif_regs,
.phy_regs1 = AM571x_DDR3L_532MHz_TI_EVM_emif1_ext_phy_regs,
};
But the AM571x_DDR3L_532MHz_TI_EVM_emif1_ext_phy_reg is empty.
How can I determine these values? I have seen the AM572x_ddr_config.gel file, but I don't konw how to use it?
Can you give me some description for the details ?