【ATU Book-i.MX8 系列-DDR】NXP i.MX8M Mini 之替換為 Nanya 1 GB DDR 方法大公開 ( 上 )

一. 前言

世平集團針對 DDR 相關(guān)技術(shù)整理了一系列博文,下圖為詳細的博文索引架構(gòu);筆者希望能夠透過這些博文協(xié)助大家更了解如何在 i.MX8 相關(guān)平臺上使用 DDR,未來筆者也會持續(xù)更新此系列的相關(guān)博文還懇請支持!而本篇博文會針對 DDR 相關(guān)技術(shù)索引架構(gòu)中的【ATU Book-i.MX8 系列-DDR】NXP i.MX8M Mini 之替換為 Nanya 1 GB DDR 方法大公開 ( 上 )?這篇文章做介紹,本篇博文會對 DDR 顆粒的參數(shù)填寫做敘述接下來讓我們開始進入正題吧!


博文架構(gòu)


市面上有很多家記憶體廠商,那要怎麼在 NXP 的平臺上替換不同廠牌的記憶體顆粒呢? 而替換記憶體顆粒以後又要怎麼確保這顆記憶體可以正常使用呢? 對於此問題 NXP 提供了 Register Programming Aid ( RPA ) 文件與 DDR Stress Test Tool 來解決以上困擾。我們可以將 DDR 的參數(shù)填入 RPA 文件中,再透過 DDR Stress Test Tool 做 Calibration 與 Stress Test 驗證填入之參數(shù)沒問題,並重新編譯程式等一系列操作後就可以在 NXP 平臺上使用不同廠商的記憶體了。本博文將會以使用 Nanya 的 1 GB DDR 為範例,實際帶領(lǐng)各位讀者做以下示範:


(1) 將 Nanya 的 1 GB?DDR 參數(shù)填入 RPA?文件。

(2) 透過 DDR Stress Test Tool 完成 Calibration,並佐證參數(shù)配置沒問題。

接著請各位跟著筆者的腳步一步步完成這些操作吧!

a. 系統(tǒng)流程圖


流程圖

本篇博文會依照以下議題做介紹及探討:


(1)?如何填寫 RPA 文件。

(2)?透過 DDR Stress Test Tool 做 Calibration 及壓力測試。

(3) 最後產(chǎn)出 "lpddr4_timing.c"。

二. Nanya 1 GB DDR 概述

本章節(jié)將針對 Nanya 的 1 GB DDR 做簡述 ( 在此不列出詳細型號 )。此 DDR 顆粒的尺寸大小為 10 mm x 15 mm 是一顆 200 Ball 的 LPDDR4 顆粒。200 Ball 的意思是指 IC 上有 200 根 Pin 腳,而每家廠商的 Pin 腳分布多少都會有些差異,隨著廠商的不同 Pin 腳的定義也會略為不同。這些資訊我們都可以從 Datasheet 中找到,礙於著作權(quán)的關(guān)係在此不多做說明。

值得一提的是?Datasheet 中還會有一頁在敘述 DDR 顆粒的組態(tài)資訊,而這些資訊包含:

(1) 此顆粒有幾個 Die:

從 Datasheet 中可知道,本顆粒有 2 個 Die。而 Die 的數(shù)量跟 DDR 顆粒內(nèi)部線路接法和 Pin 腳有關(guān)。

(2) 總?cè)萘繛槎嗌伲?/div>

本顆粒總?cè)萘繛?8 Gb ( 1 GB )。我們可以透過 Datasheet 知道 1 個 Die 是 4 Gb ( 512 MB ),本顆粒有 2 個 Die,這樣就是 8 Gb ( 1 GB )。

(3) 幾個 Channel:

本顆粒有 2 組 Channel。基本上 1 個 Die 會接到 1 組 Channel。

(4) Bank 數(shù)量:

本顆粒每 1 Channel 上有 8 個 Bank。而 Bank 再往下拆分,就是各個儲存單元;橫向的稱為 Row,直向的稱為 Column。

(5) Bank Address 數(shù)量:

本顆粒 的 Bank Address 數(shù)量是 3 ( BA0 ~ BA2 )。

(6) Row Address 數(shù)量:

本顆粒 的 Row Address 數(shù)量是 15 ( R0 ~ R13 )。

(7) Column Address 數(shù)量:

本顆粒 的 Column Address 數(shù)量是 10 ( C0 ~ C9 )。

以上列出的 7 個重點在後續(xù)章節(jié)填寫 RPA 文件時都會用到,隨著 DDR 容量的不同這些參數(shù)也會有所不同。對於填寫 RPA 文件而言主要就是在填寫這些參數(shù)讓 RPA 文件產(chǎn)生出不同的結(jié)果 ( .ds 檔 ),接著讓我們繼續(xù)看下去吧!

三. DDR Stress Test Tool 使用

a. 環(huán)境設(shè)置

請至 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.10 版,所以選擇 mscale_ddr_tool_v310_setup.exe.zip )。

ddr stress tool

接著請點擊 i.MX8MMini (m845S) DDR Register Programming Aid (RPA)。

點擊 i.MX8MMini (m845S) DDR Register Programming Aid (RPA)

本博文的實作平臺是 i.MX8M Mini 並且使用的是 LPDDR4 的顆粒,請對應(yīng)平臺下載最新版的 LPDDR4 RPA?文件。 ( 筆者撰寫文件時的最新版本是 16 版,所以選 MX8M_Mini_LPDDR4_RPA_v16.xlsx )

MX8M_Mini_LPDDR4_RPA_v16.xlsx

b. 設(shè)置 RPA 文件

先將下載來的 MX8M_Mini_LPDDR4_RPA_v16.xlsx 重新命名為 MX8M_Mini_LPDDR4_RPA_v16_Nanya_1GB.xlsx。

MX8M_Mini_LPDDR4_RPA_v16_Nanya_1GB.xlsx

開啟 MX8M_Mini_LPDDR4_RPA_v16_Nanya_1GB.xlsx 後,點選 Sheet "Register Configuration"

Register Configuration

接下來我們需要搭配 Nanya 的 Datasheet 對 RPA 文件進行配置;基本上 RPA 文件中的橘色背景處就是我們需要修改的地方。

橘色背景處

搭配 Datasheet 設(shè)置 "Density per channel per chip select (Gb)" 欄位。


Density per channel per chip select (Gb)

搭配 Datasheet 設(shè)置 "Number of Chip Selects used" 欄位。

Number of Chip Selects used

搭配 Datasheet 設(shè)置 "ROW" 與 "COLUMN" 欄位。

COLUMN

配 Datasheet 設(shè)置 "Number of BANK addresses" 欄位。

Number of BANK addresses

c. 產(chǎn)出 .ds 檔

以下將會敘述如何將稍早修改的 RPA?文件轉(zhuǎn)成 ".ds" 檔。而存為 ".ds" 檔的目的是為了讓 DDR Stress Test Tool ( MSCALE_DDR_Tool.exe ) 可以 Load DDR 顆粒參數(shù)並做 Calibration。

請在 Excel 中切換到 "DDR Stress Test Script" 這個 Sheet 以後,全部選取再按右鍵複製

DDR Stress Test Script

將複製的內(nèi)容貼到 ".ds" 去。筆者的做法是先建立了一個 txt 檔之後,再貼入上述複製的內(nèi)容最後把 txt 重新命名為 "MX8M_Mini_LPDDR4_RPA_v16_Nanya_1GB.ds"?

MX8M_Mini_LPDDR4_RPA_v16_Nanya_1GB

d. 透過 Tool 驗證 DDR 參數(shù)

以下將實際操作如何透過 DDR Stress Test Tool ( MSCALE_DDR_Tool.exe ) 做?Calibration、Generate Code、Stress Test。請跟著筆者的腳步一步步操作吧!

先將下載來的 "mscale_ddr_tool_v310_setup.exe.zip" 解壓縮並執(zhí)行 "mscale_ddr_tool_v310_setup.exe" 後,最終可取得 "mscale_ddr_tool_v310" 資料夾。

mscale_ddr_tool_v310

進入 "mscale_ddr_tool_v310\mscale_ddr_tool_v3.10" 後,開啟 "MSCALE_DDR_Tool.exe"。

mscale_ddr_tool_v310

將 PC 連接上 i.MX8M Mini 開發(fā)板 ( 詳細接法請參考以下示意圖 )。

 PC 連接上開發(fā)板

請確保開發(fā)板的 Boot Mode 是選擇 Serial Download Mode。

Serial Download Mode

接著,請依照以下步驟操作程式:

(1) 點擊 "Search",選好 COM Port 。

(2) 按下 "Connect"。

(3) 點擊 "Load DDR Script" 匯入 .ds 檔。

(4) 選擇平臺 ( 本博文的平臺為 i.MX8M Mini )。

(5) 點擊 "Download"。

Download

以下為按下 "Download" 後的截圖。 ( 我們可以從 Log 中看到,稍早設(shè)定在 RPA 文件中的參數(shù) )

Download

(6) 接著,請點擊 "Calibration"。

Calibration

當 Calibration 結(jié)束後,"Gen Code" 的按鈕就會出現(xiàn)。

(7) 此時請點選 "Gen Code",此 Tool 會在 "mscale_ddr_tool_v3.10" 目錄下產(chǎn)生出 "lpddr4_timing.c",而這支 "lpddr4_timing.c" 之後需要重新編譯並打包到 Bootloader 中。

Gen Code

最後可以點選 "Stress Test" 進行壓力測試確保 DDR 運作穩(wěn)定。

補充:如果時間充裕的話可以勾選 "Over Night Test" 選項,測試個幾天幾夜。

Stress Test

四. 結(jié)語

本篇博文介紹了查看 DDR Datasheet?的時候需要注意哪些重點,也示範了如何將 Nanya 的 1 GB DDR 參數(shù)填入 RPA?文件中並做?Calibration?與?Stress Test,最後產(chǎn)出?"lpddr4_timing.c"?檔。如果做了 Calibration 與 Stress Test 都沒有問題,那就離「使用 1GB DDR 顆粒開機」這個目標不遠了;若是要達成「使用 1GB DDR 顆粒開機」這個目標還需要將?"lpddr4_timing.c" 檔打包進 Bootloader 中並且根據(jù) DDR Size 修改程式,後續(xù)筆者會再撰寫一篇博文針對使用 Nanya 1 GB DDR 開機議題做敘述,再請各位讀者到大大通搜尋【ATU Book-i.MX8 系列-DDR】NXP i.MX8M Mini 之替換為 Nanya 1 GB DDR 方法大公開 ( 下 )。希望各位讀者看完此篇文章後對填寫 RPA 文件會有更深刻的體會,假設(shè)讀者們在看 DDR Datasheet 填寫 RPA 文件時有遇到問題也歡迎找世平集團一起討論。

五. 參考文件
?
?

★博文內(nèi)容參考自?網(wǎng)站,與平臺無關(guān),如有違法或侵權(quán),請與網(wǎng)站管理員聯(lián)繫。

★文明上網(wǎng),請理性發(fā)言。內(nèi)容一周內(nèi)被舉報5次,發(fā)文人進小黑屋喔~

參考來源

評論