【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次,發文人進小黑屋喔~

評論