【ATU Book-i.MX8系列-DDR】NXP i.MX8M Mini 之替换为 Samsung 2 GB DDR 方法 ( 上 )

一. 前言

世平集团针对 DDR 相关技术整理了一系列博文,下图为详细的博文索引架构;笔者希望能够透过这些博文协助大家更了解如何在 i.MX8 相关平台上使用 DDR,未来笔者也会持续更新此系列的相关博文还恳请支持!而本篇博文会针对 DDR 相关技术索引架构中的【ATU Book-i.MX8系列-DDR】NXP i.MX8M Mini 之替换为 Samsung 2 GB DDR 方法 ( 上 ) 这篇文章做介绍,本篇博文会对 DDR 颗粒的参数填写做叙述接下来让我们开始进入正题吧!


博文架构


市面上有很多家记忆体厂商,那要怎么在 NXP 的平台上替换不同厂牌的记忆体颗粒呢? 而替换记忆体颗粒以后又要怎么确保这颗记忆体可以正常使用呢? 对于此问题 NXP 提供了 Register Programming Aid ( RPA ) 文件与 DDR Stress Test Tool 来解决以上困扰。我们可以将 DDR 的参数填入 RPA 文件中,再透过 DDR Stress Test Tool 做 Calibration 与 Stress Test 验证填入之参数没问题,并重新编译程式等一系列操作后就可以在 NXP 平台上使用不同厂商的记忆体了。本博文将会以使用 Samsung 的 2 GB DDR 为范例,实际带领各位读者做以下示范:


(1) 将 Samsung 的 2 GB DDR 参数填入 RPA 文件。

(2) 透过 DDR Stress Test Tool 完成 Calibration,并佐证参数配置没问题。

接着请各位跟着笔者的脚步一步步完成这些操作吧!

a. 系统流程图




本篇博文会依照以下议题做介绍及探讨:


(1) 如何填写 RPA 文件。

(2) 透过 DDR Stress Test Tool 做 Calibration 及压力测试。

(3) 最后产出 "lpddr4_timing.c"。

二. Samsung 2 GB DDR 概述

本章节将针对 Samsung 的 2 GB DDR 做简述 ( 在此不列出详细型号 )。此 DDR 颗粒的尺寸大小为 10 mm x 15 mm 是一颗 200 Ball 的 LPDDR4 颗粒。200 Ball 的意思是指 IC 上有 200 根 Pin 脚,而每家厂商的 Pin 脚分布多少都会有些差异,随著厂商的不同 Pin 脚的定义也会略为不同。这些资讯我们都可以从 Datasheet 中找到,碍于著作权的关系在此不多做说明。

值得一提的是 Datasheet 中还会有一页在叙述 DDR 颗粒的组态资讯,而这些资讯包含:

(1) 此颗粒有几个 Die:

从 Datasheet 中可知道,本颗粒有 2 个 Die。而 Die 的数量跟 DDR 颗粒内部线路接法和 Pin 脚有关。

(2) 总容量为多少:

本颗粒总容量为 16 Gb ( 2 GB )。我们可以透过 Datasheet 知道 1 个 Die 是 8 Gb ( 1 GB ),本颗粒有 2 个 Die,这样就是 16 Gb ( 2 GB )。

(3) 几个 Channel:

本颗粒有 2 组 Channel。基本上 1 个 Die 会接到 1 组 Channel。

(4) Bank 数量:

本颗粒每 1 Channel 上有 8 个 Bank。而 Bank 再往下拆分,就是各个储存单元;横向的称为 Row,直向的称为 Column。

(5) Bank Address 数量:

本颗粒 的 Bank Address 数量是 3 ( BA0 ~ BA2 )。

(6) Row Address 数量:

本颗粒 的 Row Address 数量是 16 ( R0 ~ R15 )。

(7) Column Address 数量:

本颗粒 的 Column Address 数量是 10 ( C0 ~ C9 )。

以上列出的 7 个重点在后续章节填写 RPA 文件时都会用到,随著 DDR 容量的不同这些参数也会有所不同。对于填写 RPA 文件而言主要就是在填写这些参数让 RPA 文件产生出不同的结果 ( .ds 档 ),接着让我们继续看下去吧!

三. DDR Stress Test Tool 使用

a. 环境设置

请至 https://community.nxp.com/t5/i-MX-Processors-Knowledge-Base/i-MX-8M-Family-DDR-Tool-Release/ta-p/1104467 下载最新版的 DDR Stress Test Tool。 ( 笔者撰写此文章时最新版为 3.20 版,所以选择 mscale_ddr_tool _v3.20_setup.exe.zip )。



接着请点击 i.MX8MMini (m845S) DDR Register Programming Aid (RPA)。



本博文的实作平台是 i.MX8M Mini 并且使用的是 LPDDR4 的颗粒,请对应平台下载最新版的 LPDDR4 RPA 文件。 ( 笔者撰写文件时的最新版本是 18 版,所以选 MX8M_Mini_LPDDR4_RPA_v18.xlsx )



b. 设置 RPA 文件

先将下载来的 MX8M_Mini_LPDDR4_RPA_v18.xlsx 重新命名为 MX8M_Mini_LPDDR4_RPA_v18_Samsung_2GB.xlsx。



开启 MX8M_Mini_LPDDR4_RPA_v18_Samsung_2GB.xlsx 后,点选 Sheet "Register Configuration"



接下来我们需要搭配 Samsung 的 Datasheet 对 RPA 文件进行配置;基本上 RPA 文件中的橘色背景处就是我们需要修改的地方。



搭配 Datasheet 设置 "Density per channel per chip select (Gb)" 栏位。




搭配 Datasheet 设置 "Number of Chip Selects used" 栏位。



搭配 Datasheet 设置 "ROW" 与 "COLUMN" 栏位。



配 Datasheet 设置 "Number of BANK addresses" 栏位。



c. 产出 .ds 档

以下将会叙述如何将稍早修改的 RPA 文件转成 ".ds" 档。而存为 ".ds" 档的目的是为了让 DDR Stress Test Tool ( MSCALE_DDR_Tool.exe ) 可以 Load DDR 颗粒参数并做 Calibration。

请在 Excel 中切换到 "DDR Stress Test Script" 这个 Sheet 以后,全部选取再按右键复制



将复制的内容贴到 ".ds" 去。笔者的做法是先建立了一个 txt 档之后,再贴入上述复制的内容最后把 txt 重新命名为 "MX8M_Mini_LPDDR4_RPA_v18_Samsung_2GB.ds"



d. 透过 Tool 验证 DDR 参数

以下将实际操作如何透过 DDR Stress Test Tool ( MSCALE_DDR_Tool.exe ) 做 Calibration、Generate Code、Stress Test。请跟着笔者的脚步一步步操作吧!

先将下载来的 "mscale_ddr_tool _v3.20_setup.exe.zip" 解压缩并执行 "mscale_ddr_tool _v3.20_setup.exe" 后,最终可取得 "mscale_ddr_tool _v3.20_setup" 资料夹。



进入 "mscale_ddr_tool _v3.20_setup\mscale_ddr_tool _v3.20" 后,开启 "MSCALE_DDR_Tool.exe"。



将 PC 连接上 i.MX8M Mini 开发板 ( 详细接法请参考以下示意图 )。



请确保开发板的 Boot Mode 是选择 Serial Download Mode。



接着,请依照以下步骤操作程式:

(1) 点击 "Search",选好 COM Port 。

(2) 按下 "Connect"。

(3) 点击 "Load DDR Script" 汇入 .ds 档。

(4) 选择平台 ( 本博文的平台为 i.MX8M Mini )。

(5) 点击 "Download"。



以下为按下 "Download" 后的截图。 ( 我们可以从 Log 中看到,稍早设定在 RPA 文件中的参数 )



(6) 接着,请点击 "Calibration"。



当 Calibration 结束后,"Gen Code" 的按钮就会出现。

(7) 此时请点选 "Gen Code" 接着会产出 "lpddr4_timing.c"。而 "lpddr4_timing.c" 这只档案基本上会产生在跟 "MSCALE_DDR_Tool.exe" 同一层目录下,这支 "lpddr4_timing.c" 之后需要重新编译并打包到 Bootloader 中。



最后可以点选 "Stress Test" 进行压力测试确保 DDR 运作稳定。

补充:如果时间充裕的话可以勾选 "Over Night Test" 选项,测试个几天几夜。



四. 结语

本篇博文介绍了查看 DDR Datasheet 的时候需要注意哪些重点,也示范了如何将 Samsung 的 2 GB DDR 参数填入 RPA 文件中并做 Calibration 与 Stress Test,最后产出 "lpddr4_timing.c" 档。如果做了 Calibration 与 Stress Test 都没有问题,那就离“使用 2GB DDR 颗粒开机”这个目标不远了;若是要达成“使用 2GB DDR 颗粒开机”这个目标还需要将 "lpddr4_timing.c" 档打包进 Bootloader 中并且根据 DDR Size 修改程式,后续笔者会再撰写一篇博文针对使用 Samsung 2 GB DDR 开机议题做叙述,再请各位读者到大大通搜寻【ATU Book-i.MX8 系列-DDR】NXP i.MX8M Mini 之替换为 Samsung 2 GB DDR 方法 ( 下 )。希望各位读者看完此篇文章后对填写 RPA 文件会有更深刻的体会,假设读者们在看 DDR Datasheet 填写 RPA 文件时有遇到问题也欢迎找世平集团一起讨论。

五. 参考文件
 
 

★博文内容参考自 网站,与平台无关,如有违法或侵权,请与网站管理员联系。

★文明上网,请理性发言。内容一周内被举报5次,发文人进小黑屋喔~

参考来源

false: https://community.nxp.com/t5/i-MX-Processors/How-to-bootup-iMX8-with-1GB-RAM/m-p/856730

评论