i.MX8M LPDDR4 調降 800MHz 問題

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

i.MX8M LPDDR4 調降 800MHz 問題

2,771 Views
charleochiu
Contributor II

您好,

使用 Linux BSP L4.9.88 & MCIMX8M-EVK 平台,調降 LPDDR4 工作頻率為 800MHz,結果無法進入到 U-Boot。

請問下列步驟是否有問題? 

1. i.MX8 MSCALE SERIES DDR Tool Release (V2.10) (https://community.nxp.com/docs/DOC-340179) 下載相關文檔。

2. 修改 Aid (MX8M_LPDDR4_RPA_v22.xlsx) 文檔的欄位 Clock Cycle Freq (MHz) 為 800,並產生 "mx8m_micron_lpddr4_800.ds" 文檔。

pastedImage_2.png

3. MSCALE_DDR_Tool.exe (administrator 權限) 載入 "mx8m_micron_lpddr4_800.ds" 文檔,並調校和測試後,產生 "ddr_init.c" & "ddrphy_train.c" 文檔。

4. 將產生的 "ddr_init.c" & "ddrphy_train.c" 文檔複製到 /work/bsp-l4988/xway-8mqevk/tmp/work/imx8mqevk-poky-linux/u-boot-imx/2017.03-r0/git/board/freescale/imx8mq_evk/ddr 資料夾。

5. 複製 mscale_ddr_tool_v2.10 的 bin 資料夾內 lpddr4_pmu_train_1d_imem.bin & lpddr4_pmu_train_2d_imem.bin & lpddr4_pmu_train_1d_dmem.bin & lpddr4_pmu_train_2d_dmem.bin  四個文檔到 /work/bsp-l4988/xway-8mqevk/tmp/deploy/images/imx8mqevk 資料夾。

6. 下達 $ bitbake u-boot-imx -c compile -f imx-boot 編譯指令後在 /work/bsp-l4988/xway-8mqevk/tmp/work/imx8mqevk-poky-linux/imx-boot/0.2-r0/git/iMX8M 內產生 flash.bin 檔。

7. $ sudo dd if=/work/bsp-l4988/xway-8mqevk/tmp/work/imx8mqevk-poky-linux/imx-boot/0.2-r0/git/iMX8M/flash.bin of=/dev/sde bs=1k seek=33  燒入至 SD 卡。

8. 如下圖,供電後在 "Trying to boot from MMC2" 就停止。

pastedImage_1.png

9. Aid (MX8M_LPDDR4_RPA_v22.xlsx) 文檔的欄位回復 Clock Cycle Freq (MHz) : 1600,可以正常開機。 

pastedImage_3.png

Labels (2)
Tags (2)
0 Kudos
Reply
3 Replies

2,004 Views
igorpadykov
NXP Employee
NXP Employee

Hi charleo

L4.9.88 does not fully support i.MX8M, as described in p.2 Release Notes:

"i.MX 8MQuad EVK Board (Beta Quality) ".

Linux 4.9.88_2.0.0 BSP & Multimedia Codecs Documentation
Recommended to use L4.14.78 or  L4.14.98 which fully support i.MX8M, with uboot v.2018.03:
uboot-imx - i.MX U-Boot 
Link below gives example in [3] how set 1200MHz - use it in similar way to change DDR frequency.

Modify DRAM PLL configuration in uboot-imx/drivers/ddr/imx8m.c, specifically the code
highlighted below (function call dram_pll_init)
i.MX8 MSCALE SERIES DDR Tool Release (V2.10) 

ddr4_init.c\imx8m\ddr\drivers - uboot-imx - i.MX U-Boot 

Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

0 Kudos
Reply

2,004 Views
charleochiu
Contributor II

Hi Igor,

1.  "/work/bsp-l41498/xway-8mqevk/tmp/work/imx8mqevk-poky-linux/u-boot-imx/2018.03-r0/git/drivers/ddr/imx8m/lpddr4_init.c" 已經改為 "dram_pll_init(DRAM_PLL_OUT_400M);"

2. 在 L4.9.88 的資料夾 " bsp-l4988//xway-8mqevk/tmp/work/imx8mqevk-poky-linux/u-boot-imx/2017.03-r0/git/board/freescale/imx8mq_evk/ddr/ " 資料夾可以存放 "ddr_init.c" & "ddrphy_train.c",但是在 Linux BSP L4.14.98  沒有相對應的資料夾,搜尋後結果後,嘗試將 "ddr_init.c" & "ddrphy_train.c" 放進 "/bsp-l41498/xway-8mqevk/tmp/work/imx8mqevk-poky-linux/u-boot-imx/2018.03-r0/git/board/freescale/imx8mq_arm2/ddr/ddr4" 編譯後燒入 flash.bin 至 SD card。

3. 開機後沒看到埋入的 Log 訊息 [ printf("ddr_init_800M.c (fn: ddr_init) charleo : modify code for 800MHz \n");],所以確認應該是沒有編譯到這兩個文檔。

請問 "ddr_init.c" & "ddrphy_train.c" 在 BSP L4.14.98 應該放置在什麼位置,才會編譯得到? 

非常感謝您的支持!

0 Kudos
Reply

2,004 Views
igorpadykov
NXP Employee
NXP Employee

Hi charleo

one can try to rebuild all image from scratch using sect.4.5.13

How to build imx-boot image by using imx-mkimage attached Linux Guide.

Best regards
igor

0 Kudos
Reply