一. 概述
世平集團 ATU 伊布小編 (一部) 團隊針對 i.MX 相關技術整理了一系列博文,這篇文章主要是跟 【ATU Book-i.MX9系列】OP-Gyro ( NXP i.MX93 ) Linux 開發環境架設 這篇文章有所關聯,希望能夠透過這些博文協助大家更了解 i.MX 的相關技術,未來 ATU 伊布小編 (一部) 團隊也會持續更新此系列的相關博文還懇請支持!
DDR 是 MPU 系統中一個重要的部分,從硬體上 PCB 走線、板材等設計的不同,到軟、韌體上的 DDR 參數設定,都會影響到 DDR 是否可以正常工作,而本文將要介紹的 NXP Config Tool 就是讓用戶可以在 Windows PC 上運行的 DDR Tool,透過 USB Cable 與 OP-Gyro ( i.MX93 ) 開發板連接進行 DDR 的參數調整,並利用 DDR Calibration 與 DDR Stress Test 驗證參數的可靠性,以確保 DDR 工作時的穩定性。最後本文也會介紹如何將這些驗證過的 DDR 參數重新編譯並燒回 ATU 伊布小編 (一部) 團隊製作的 OP-Gyro ( i.MX93 ) 上,接著開始囉。
?
1.1 OP-Gyro 介紹
OP-Gyro 是世平集團使用 NXP i.MX93 為核心設計製作的 SBC 方案,其 SOC 規格包含了 Arm? Cortex?-A55 與 Arm? Cortex?-M33 兩種核心的處理器,這種多核心架構 ARM 處理器讓系統實現高效且即時的應用,如想了解更多關於 OP-Gyro 方案或 i.MX 的相關技術,可以透過 ATU 伊布小編 (一部) 團隊整理的系列博文索引來查找。
?
1.2 NXP Config Tool 介紹
NXP i.MX 的 Config Tools 可用於配置 i.MX 處理器的 Pin 腳和 DDR 的部分,能幫助用戶加速從初始評估到軟體開發的過程,而本篇文章將對 NXP i.MX Config Tool 當中的 DDR Tool 做一連串的介紹及使用說明,從環境建置、如何進行 DDR Calibration & Stress Test,並將參數配置到開發板上。
二. Config Tool 環境建置
2.1 下載
首先至官網下載 Config Tool:
https://www.nxp.com/design/development-boards/i-mx-evaluation-and-development-boards/config-tools-for-i-mx-applications-processors:CONFIG-TOOLS-IMX
用戶可以依據使用環境下載對應 Package,本文使用 Windows 為範例進行介紹。
2.2 安裝
下載完成後,開啟執行檔並依照步驟進行安裝即可。
安裝完成。
三. Config Tool - DDR Tool
安裝完成後,我們就可以啟動程式並開始建立 DDR 參數配置。
3.1 新增配置
開啟程式後,選擇建立新的配置檔案,而之後如果需要使用相同參數配置進行測試,便可選擇開啟先前所使用過的配置文件,無須重新建置。
接著用戶依照所使用的開發板或晶片選擇預設配置,在此選擇 i.MX93 公板。
選擇完開發板或處理器後,會出現以下畫面讓用戶選擇 Pins Tool 或 DDR Tool,系統預設是僅啟用 Pins Tool; 在此我們要使用的是 DDR Tool,將 DDR Tool 啟用,並點選 Icon 來開啟。
*pins Tool 可開可關,不影響使用
DDR Tool 開啟。
3.2 DDR 參數設置
開啟 DDR Tool 後,可以看到 DDR 相關的參數設置的選項,用戶依據 DDR 的 Datasheet 進行調整,由於 OP-Gyro 使用的 DDR 與 i.MX93 公板相同,故在此使用預設配置直接進行後續動作。
四. OP-Gyro ( i.MX93 ) 開發板設置
進行 DDR Calibration 前,我們先將 OP-Gyro ( i.MX93 ) COM Port 與 Download Port ( USB1 ) 連接至電腦端,並使用 Serial Download Mode 進行開機。
- OP-Gyro ( i.MX93 ) 只有 USB1 才有 Download Firmware 的功能,並請確保 eMMC 中沒有 Code,才能進入 Serial Download Mode,更多燒錄相關資訊請參考 【ATU Book-i.MX9系列】OP-Gyro ( i.MX93 ) 系統燒錄介紹這篇文章。
?
五. DDR Calibration (Functional / Optimzation / vTSA Test) and Stress Test
DDR 參數與開發板皆設定完成後,我們就可以將 DDR Tool 切換至 DDR 測試進行 DDR Calibration。
需要注意的是在此 Tool 中,用戶需要勾選測試項目軟體才會進行測試,軟體一次只會運行單一 Sheet,即使全部勾選用戶仍須自行個別切換 Sheet。
勾選完成後,選擇連接開發板的 COM Port,就可以按下開始進行測試。
測試過程中,用戶可以透過下方 Log 訊息查看目前狀態,以及測試的結果。
測試 Log 截圖:
測試成功結果截圖:
以下簡單介紹各項測試項目:
5.1 Functional
Firmware Init - 檢查 DDR PHY 配置的正確設定。
Operational - 透過執行寫入、讀取與比較等來進行基本的取測試,檢查記憶體運作的正確性。
*每個測試都可以設定起始位址、大小、啟用DDR記憶體快取等選項。
5.2 Optimization
DQ ODT and driver strength tests - 掃描 DQ IO 配置,並創建 ODT and driver strength 讀取和寫入的 PASS / FAIL map。
*用戶可以依據需求參考 PASS / FAIL map 調整 ODT and driver strength 的參數設置。
Vref for DQ optimization test - 掃描測試 Vref 值。
同樣在測試完成後,可以將 Vref 值設置到配置中。
5.3 vTSA ( Virtual Timing Signal Analysis )
而在 vTSA 中,則是具有 Read Eye 跟 Write Eye 的功能,但這裡輸出結果並不是真正的量測結果,僅能夠做為參考,所以這裡多做說明,如果想了解更多 vTSA 可以參考 User Guide for Config Tools for i.MX 文件的 4.4 FAQ 章節。
Diag Write Margin test 輸出結果截圖:
Diag Read Margin test 輸出結果截圖:
CA bus signals test 輸出結果截圖:
CA Eye test 輸出結果截圖:
5.4 DDR Stress Test
DDR Calibration 完成後就輪到 DDR Stress Test,DDR Stress Test 可以更廣泛的測試 DDR 參數配置的穩定性。
用戶透過測試選項可以設置測試大小、啟用 DDR 記憶體快取或失敗時停止測試等,來進行更完整或者更長時間的 Stress Test。
而在 Log 中,可以監控測試執行並查看次數。
六. 參數整合
6.1 導出 timing.c 檔案
完成所有測試後,我們可以在 Code Preview 導出 timing.c 檔,並將 timing.c 覆蓋檔案至 U-Boot 資料夾下。
檔案路徑:tmp/work/opgyro-poky-linux/u-boot-imx/*/git/board/freescale/imx93_evk
6.2 重新編譯
接著重新編譯 U-Boot 與 Bootloader。
# U-Boot
$ bitbake u-boot-imx -f -c compile
$ bitbake u-boot-imx -f -c deploy
# Bootloader
$ bitbake imx-boot -f -c compile
$ bitbake imx-boot -f -c deploy
?
七. 重新燒錄
編譯完成後,將 Bootloader 重新燒錄至 SD Card 或其他裝置,更多燒錄資訊請參考 【ATU Book-i.MX9系列】OP-Gyro ( i.MX93 ) 系統燒錄介紹這篇文章。
sudo dd if=<imx-boot> of=/dev/sdx bs=1k seek=32 conv=fsync
?
八. 開機
最後,開機就可以看到下圖 login 的成功開機畫面。
九. 結論
本文針對 NXP Config Tool - DDR Tool 的使用、如何對 OP-Gyro ( i.MX93 ) 進行 DDR Calibration 與 DDR Stress Test、DDR 參數的重新編譯等做說明與介紹,希望本篇文章的內容可以幫助到各位讀者更了解 OP-Gyro ( i.MX93 ) 與 DDR 的關係,也懇請各位讀者多多支持 【ATU Book-i.MX9系列】OP-Gyro ( i.MX93 ) 的系列博文。若未來讀者們有 i.MX 的相關問題歡迎隨時與世平集團做討論。
十. 參考資料
[1] https://www.nxp.com/design/design-center/development-boards/i-mx-evaluation-and-development-boards/config-tools-for-i-mx-applications-processors:CONFIG-TOOLS-IMX
參考來源