您好!
我们有一个采用 AM5728的定制设计 PCB、我们的 SPL 出现问题、无法启动 U-Boot、我们怀疑这是 EMIF 配置的问题。
我已经密切关注 SPRAC36A 来填充配置值、但是我们的配置看起来与典型配置不同、因为我们使用 EMIF2而不是 EMIF1。 选择 EMIF2是出于 PCB 布局的原因、在设计之前、参考了 TRM 以查找仅使用 EMIF2而不使用 EMIF1的任何问题、但未发现不允许这样做的迹象。
当 EMIF 配置文档中选择1个 EMIF 接口时、似乎默认设置为 EMIF1。 也就是说、看起来 DMM_LISA_MAP_x [1:4]寄存器默认为 EMIF1。
还需要注意的是、EMIF_REGS 结构中包含的 EMIF_DDR_ext_phy_Ctrl_x [1:5]的值不是由电子表格生成的、我们应该对它们执行什么操作吗?
请参阅以下使用的输入数据:
输出配置数据:
const 结构 DPLL_params AM572x_DDR3L_532MHz_6728_rev00_PLL_params ={
.m = 266、
.n = 4、
.m2 = 2、
.m4_H11 = 8
};
const 结构 ctrl_ioregs AM572x_DDR3L_532MHz_6728_rev00_ctrl_ioregs ={
.ctrl_ddr3ch = 0x80808080、
.ctrl_ddrch = 0x40404040、
CTRL_ddrivo_0 = 0x00094A40、
CTRL_ddrivo_1 = 0x04A52000、
CTRL_EMIF_SDRAM_CONFIG_ext = 0x0000C123
};
const 结构 DMM_LISA 映射_regs AM572x_DDR3L_532MHz_6728_rev00_DMM_regs ={
.dm_lisa_map_0 = 0x00000000、
.dm_lisa_map_1 = 0x00000000、
.dm_lisa_map_2 = 0x80400100、<-原始值
.dm_lisa_map_3 = 0xFF020100、<-原始值
.dm_lisa_map_2 = 0x80400200、<-尝试修复 EMIF2
.dm_lisa_map_3 = 0xFF020200、 <-尝试修复 EMIF2
.in_ma_present = 0x1
};
const 结构 EMIF_regs AM572x_DDR3L_532MHz_6728_rev00_EMIF_regs ={
SDRAM_CONFIG_INIT = 0x61851A32、
SDRAM_CONFIG = 0x61851A32、
SDRAM_CONFIG2 = 0x00000000、
.ref_ctrl = 0x000040F1、
.ref_ctrl_final = 0x00001035、
SDRAM_TIM1 = 0xCCCF36AB、
SDRAM_TIT2 = 0x30457FDA、
SDRAM_TIM3 = 0x407F83A8、
READ_IDLE_Ctrl = 0x00050000、
zq_config = 0x5007190B、
temp_alert_config = 0x00000000、
.EMIF_rd_wr_lvl_RMP_ctl = 0x8000000、
.EMIF_rd_wr_lvl_ctl = 0x00000000、
.EMIF_DDR_phy_ctlr_1_init = 0x0024400B、
.EMIF_DDR_phy_ctlr_1 = 0x0E24400B、
.EMIF_rd_wr_exec_thresh = 0x00000305
};
谢谢、
乍得