How to use TI CCS to find the optimum RAM slave ratio with AM335x
如何使用 TI CCS 找出 RAM slave ration 的最佳參數
開始之前
以 TI AM335X RAM 的設定,個人認為可以分成 3 個大主題來談。- EMIF General Configuration Registers
- AC timing registers
- DDR PHY registers (configuration for DDR3 using Software Leveling)
這邊主要是紀錄 DDR PHY registers 這個主題,如何使用 TI CSS 進行 software leveling 找出最佳的 slave ratio 參數。
環境設定
在進行 software leveling 前你需要準備好下列相關環境。- Code Composer Studio (CCS)
- TI JTAG Tools, EX: Blackhawk USB100v2
- AM3358 StarterKit GEL, 修改成與待測物相輔的參數
- DDR3_slave_ratio_search_auto.zip (Ref: TI)
- Ratio Seed spreadsheet (Ref: TI)
執行步驟
1. 完成 AM335X 的 GEL 檔案
GEL 檔案裡的參數,請依照自己客製化的硬體進行修改2. 使用 CCS 進行連線
先將 JTAG 與待測物進行連接,啟動 CCS 後於 Target Configurations 中,新增 AM335X 的連線設定。經測試連線,確定沒問題後,於該設定檔點擊滑鼠右鍵,執行 Launch Selected Configuration ,畫面便會切換到 CSS Debug 去。
在 Debug 視窗,於 CortxA8 的欄位,點及滑鼠右鍵 Connect Target
3. 載入 DDR3_slave_ratio_search_auto 和 GEL
這邊分別要將 GEL 和 DDR3_slave_ratio_search_auto.out 載入至待測物DDR3_slave_ratio_search_auto
先於 Debug 視窗執行 CPU Reset (HW),接著將 DDR3_slave_ratio_search_auto 載入至待測物,步驟如下:工具列:Run -> Load -> Load Program
GEL 檔案
工具列:Tools -> GEL Files於 GEL Files 視窗,將準備好的 GEL 檔案載入至 CCS
4. 開始進行 software leveling
進行 software leveling 前,需將待測物進行初始化。如果你的 GEL 檔案是參考 TI 所修改過來,那步驟會類似如下:工具列:Scripts -> AM335X System Initialization -> Initialization
初始化完成後,選取 Debug 視窗中的 main() at DDR3_slave_ratio_search_auto_AM335x.c 接著點擊 Resume ,在 Console 的視窗中便會開始運作該程式。
將 Ratio Seed spreadsheet 概算出來的數值,依據填入至 DDR3_slave_ratio_search_auto 程式中。
如果參數順利收斂的話,會產生類似下列的表格
***************************************************************
The Slave Ratio Search Program Values are...
***************************************************************
PARAMETER MAX | MIN | OPTIMUM | RANGE
***************************************************************
DATA_PHY_RD_DQS_SLAVE_RATIO 0x06f | 0x005 | 0x03a | 0x06a
DATA_PHY_FIFO_WE_SLAVE_RATIO 0x1dd | 0x05b | 0x11c | 0x182
DATA_PHY_WR_DQS_SLAVE_RATIO 0x0d3 | 0x064 | 0x09b | 0x06f
DATA_PHY_WR_DATA_SLAVE_RATIO 0x10a | 0x09c | 0x0d3 | 0x06e
***************************************************************
使用新參數
將 OPTIMUN 欄位的參數填入 RAM Initialization 的流程裡面就完成了調整。此外,在 TI wiki 上面也有提到,這隻程式所計算出來的參數,基本上只要符合一個範圍即可,所以同一塊板子每次都會得都不同的參數值。
留言
張貼留言