一. 环境介绍
客户 i.MX8DXP 开发板 USB 连接电脑后可以识别到 USB 设备 ,在烧录程序到 eMMC 过程中失败 ,提示 “ HID(R):LIBUSB_ERROR_NO_DEVIC”,
烧录的程序在 i.MX8QXP EVM 板上能正常启动 ,烧录过程中串口无打印信息
图1 程序烧录失败截图
二.启动失败问题分析
i.MX8DXP 程序 Flash.bin 烧录会先把程序下载到 DDR 中 ,U-boot 在 DDR 启动之后开始下载 Kernel 和 Rootfs 部分 ,烧录过程中串口无打印信息 ,
初步判断是程序下载到 DDR 失败导致的 ,通过查看电路图发现客户把 DDR 更换为 Nanya NT6AN128T32AV-J2,这颗 DDR 不在 NXP i.MX8 已经
调试的 DDR 列表里面 ,需要重新对这颗 DDR IC 进行配置
三.DDR 参数配置
调试 DDR 需要先下载 DDR 压力测试工具 和 RPA 文件
下载网站 :
https://community.nxp.com/t5/i-MX-Processors-Knowledge-Base/i-MX-8-8X-Family-DDR-Tools-Release/ta-p/1121519https://community.nxp.com/docs/DOC-340179
下载下列文件 :
①
3.2 根据规格书和电路图配置 RPA 表格
客户使用的 MCIMX8DXP 使用 LPDDR4 料号为 : Nanya NT6AN128T32AV-J2 ,由 datasheet 提供的
Part Name Ordering Information 如下 :
图2 Part Name Ordering Information
看一下这颗LPDDR4 的构成:
图3 DDR4L 构成
这颗LPDDR4 内存有 2 个 Die ,双通道的一颗 IC ,通过以上信息可以确定下面的参数 :
Density per channel per chip select (Gb): | 2 | |
Number of Channels (based on Bus Width) | 2 | |
Number of Chip Selects used | 1 | |
Total DRAM density (Gb) | 4 |
接下来看一下 “ Density and Addressing ” :
图4 Density and Addressing 信息
通过 Density and Addressing 的信息可以确定下面的参数 :
Number of ROW Addresses | 14 | |
Number of COLUMN Addresses | 10 | |
Number of BANK addresses | 3 | |
Number of BANKS | 8 |
这样 RPA 表格里面关于 DDR 寄存器的主要参数就已经确定 :
图5 RPA Register Configuration 页面
接下来切换到 DDR Stress Test Script CBT 页面 ,会自动生成 DDR 压力测试工具的配置参数 :
图6 RPA DDR Stress Test Script CBT 页面
拷贝以上的内容存成文件 MX8QXP_C0_B0_LPDDR4_RPA_1.2GHz_v16_1200M.ds ,放到 mx8_ddr_stress_test_ER14\script\mx8qx 目录下
接下来对开发板做 DDR 压力测试 ,把开发板切换到下载模式 ,然后选择 Download -> Stress Test
图7 RPA DDR Stress Test 工具 页面
测试完成后可以看到以下结果 :
图8 RPA DDR Stress Test 测试结果
可以看到配置的参数通过了 DDR 测试 ,接着把这组参数写到 SCU 里面:
/imx-scfw-porting-kit-1.2/sdk/src/scfw_export_mx8qm_b0/platform/board/mx8qx_val/dcd/imx8qx_dcd_1.2GHz.cfg
编译后重新生成 Flash.bin ,接下来重新烧录程序 ,可以看到程序能够正常烧录 :
图9 eMMC 升级页面
查看串口信息 , U-boot 能够正常运行 :
图10 U-boot 运行页面
“ 大大通博文-基于 NXP i.MX8QXP DDR 芯片更换调试 ”:首先要根据规格书的内容确定 DDR 参数 ,然后填写 RPA 的表格 ,
RPA 的表格填好后生成参数配置 MX8QXP_C0_B0_LPDDR4_RPA_1.2GHz_v16_1200M.ds ,在压力测试通过后 ,把参数写入到
SCU 里面的 sdk/src/scfw_export_mx8qm_b0/platform/board/mx8qx_val/dcd/imx8qx_dcd_1.2GHz.cfg 里面 ,然后编译后
重新烧录后 U-boot 能正常运行 ,参数配置完成
四.参考文档
【1】 MX8 DDR Tester User’s Guide, Rev. V1.0.3, NXP Semiconductor, Document Number: IMX
评论