各位专家好
在写内存初始化代码的过程中,我发现TI的AM35x技术手册中关于CONTROL_PADCONF_SDRC_CKE 寄存器地址的定义和实践结果不吻合。而且文档中似乎有矛盾的地方。(我们使用的MPU型号是AM3505AZCN)
我们使用的文档是AM35x ARM Microprocessor technical Reference Manual, Literature Number:SPRUGR0B October 2009–Revised July 2010. 在文档的6.4.4.3 节,Table 6-5中,CONTROL_PADCONF_SDRC_CKE[31:16] 的物理地址是0x4800 2264。 文档中6.7 Revision History 中也描述道:
Global Changed CONTROL_PADCONF_SDRC_CKE physical address from 0x4800 2260 to 0x4800 2264.
Global Changed CONTROL_PADCONF_SDRC_CKE address offset from 0x0000 0230 to 0x0000 0234.
Global Changed CONTROL_PADCONF_SDRC_CKE0 physical address from 0x4800 2260 to 0x4800 2264.
Global Changed CONTROL_PADCONF_SDRC_CKE0 address offset from 0x0000 0230 to 0x0000 0234.
Global Changed CONTROL_PADCONF_SDRC_CKE1 physical address from 0x4800 2260 to 0x4800 2264.
Global Changed CONTROL_PADCONF_SDRC_CKE1 address offset from 0x0000 0230 to 0x0000 0234.
但是我们在实际编程中从两个方面发现和文档不符
1.TI wiki (http://processors.wiki.ti.com/index.php/Building_images_for_CraneBoard) 提供的xload源代码中,在board/am3517crane/am3517crane.c 中,set_muxconf_regs(); 这个函数对cke0的地址的定义为 0x48002262, 而非文档中描述的 0x48002264
2.我们自己写的代码中,如果只把0x48002264赋值为0,而不把0x48002262 赋值为0,SDRAM就不能正常工作,数据无法load到内存中。
求证!
Yaoming Qin:
这个发现很有意思,我会内部确认下,同时,我发现用pinmux tool出来的值又不一样,你可以用pinmux 出来的头文件试试看