1 准备工具
- 需要下载两张excel表格,一张是根据DDR3芯片型号计算DM8148的DDR3控制器的时序参数的表格,一张是根据PCB板子布线中CK trace长度与DQS trace长度来计算DDR3控制器的物理偏移参数的表格。
DM814x-DDR-Controller-Register-Configuration-spreadsheet-v1.0.xls(时序表格);
RatioSeed_TI814x.xls(物理参数表格);
- 需要下载一个计算DDR3物理偏移参数的.out文件,在A8核心上运行此可执行文件,根据表格计算出的参数,填写到运行时的控制台中,便可生成DDR3控制器物理偏移参数;
DDR3_SlaveRatio_ByteWiseSearch_TI814x.out;
- 需要下载一个.get文件,用来配置运行时的DDR3外设参数;
TI814x_ddr3_0.gel
- 需要下载固化的DM8148的uboot文件;
2 配置步骤
- 打开RatioSeed_TI814x.xls表格,输入DDR3的运行时钟和PCB上的CK trance和DQS trance线的长度,就会得到WR DQS、RD DQS、RD DQS GATE(用于后续.out文件运行的输入参数)三个参数,如图1所示。
图1,物理参数计算
- 打开DM814x-DDR-Controller-Register-Configuration-spreadsheet-v1.0.xls表格,在DRAM栏中输入对应DDR3型号对应的时序参数,如图2所示,然后在切换到DDR Controller Registers,在白色空白处填入自己选择的DDR3芯片对应的参数值。
图2 DRAM参数配置
图3 DDR Controller Registers参数配置
- 通过步骤2得到的寄存器值,修改GEL文件,将新生成的寄存器值修改到GEL文件中对应寄存器值的位置,如图4所示,打开gel文件,找到//DDR3 400 MHz - CL=6,CWL=5的位置,注释原来的默认值,将表格中的值修改到对应位置:
DDR3_EMIF_TIM1_DEFINE_400->SDTIMR1
DDR3_EMIF_TIM2_DEFINE_400-> SDTIMR2
DDR3_EMIF_TIM3_DEFINE_400-> SDTIMR3
DDR3_EMIF_REF_CTRL_DEFINE2_400->SDRRCR
DDR3_EMIF_SDRAM_CONFIG_DEFINE_400->SDRCR
DDR3_EMIF_DDRPHYCR_DEFINE_400->DDRPHYCR
图4 GEL文件的修改
- 修改完gel后保存,保存位置不能有中文路径,然后打开ccs5.5,点击工具栏中的文件选项卡,新建一个链接文件,如图5所示。
图5 新建链接文件
- 配置链接文件的值,根据室内仿真器型号和DM8148芯片型号在链接文件中选择XDS560V2版USB仿真器和DM8148平台,如图6所示。
图6 配置链接文件
- 连接好仿真器连线,给目标板子上电,点击绿色小爬虫按钮,进入debug模式,选择A8处理器核心,鼠标右键点击,选择connect target,将CCS与目标板连接上,如图7所示。
图7 链接目标板
- 连上以后,点击工具栏上的tools选项卡,在下拉菜单中选择GEL Files,此时右边中框就会出现GEL Files文件框,如图8所示。
图8 打开GEL文件框
- 在GEL文件框中的空白处点击鼠标右键,在下拉菜单中选择加载GEL文件,弹出文件选择框,选择之前步骤3修改好的GEL文件,如图9所示。
图9 加载GEL文件
- GEL加载完成后,在工具栏中点击Scripts选项卡,在下拉菜单中点击TI814x DDR Configuration下的DDR3_EMIF1_400MHz_Config,初始化好基本的DDR3时序参数,如图10所示。
图10 初始化DDR3时序参数
- 脚本初始化DDR3后,点击View选项卡,在下拉菜单中选择Registers,此时在右上角会出现寄存器配置信息表,如图11所示。
图11 打开寄存器配置信息表
- 打开配置信息表后,点开Core Registers寄存器配置,找到CPSR寄存器,在M的位域中填写为10011(0x13),如图12所示。
图12 配置CPSR寄存器
- 配置好CPSR寄存器后,点击选项卡中的Tools,在下拉菜单中选择ARM Adranced Feathers,打开ARM配置框,如图13所示。
图13 打开ARM配置框
- 在ARM Adranced Feathers框中选择NEON Enabled,使能NEON功能,如图14所示。
图14 使能NEON功能
- 选择好ARM功能后,点击Run选项卡,在下拉菜单中选择Load选项,点击Load Program..,选择之前准备好的.out文件,如图15所示。
DDR3_SlaveRatio_ByteWiseSearch_TI814x.out
图15 加载.out文件
- 加载好执行文件后,点击运行按钮,开始运行程序,如图16所示。
图16 运行程序
- 开始运行程序后,在Console控制台框中会出现输入参数提示,第一个参数是表示选择第一个EMIF接口的DDR3的配置参数还是第二个EMIF接口的DDR3配置参数;第二个参数是步骤1中表格中的RD DQS GATE的数值;第三个参数是步骤1中表格中的RD DQS的数值;第四个参数是步骤1中表格中的WR DQS的数值;第五个参数表示保存文件的文件名字;每次输入一个参数就按下回车键,如图17所示。
图17 输入参数
- 输入所有参数以后,等待一段时间,便会生成需要配置的DDR3控制器的物理偏移参数值表,在相应的位置会生成一个文件保存这些配置,如图18所示。
图18 输出结果
- 生成了结果以后,需要在将DDR3的参数写入到Uboot文件中,在Uboot文件夹中找到arch-ti81xx文件夹(uboot\arch\arm\include\asm\arch-ti81xx),找到文件ddr_defs_ti814x.h,将步骤2中的结果值和步骤17中生成的结果值修改到此文件中,如图19与图20所示,图19修改时序参数,图20修改物理偏移参数。
图19 修改时序参数到Uboot
图20 修改物理偏移参数到Uboot