您好,
使用 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" 文檔。
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" 就停止。
9. Aid (MX8M_LPDDR4_RPA_v22.xlsx) 文檔的欄位回復 Clock Cycle Freq (MHz) : 1600,可以正常開機。
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!
-----------------------------------------------------------------------------------------------------------------------
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 應該放置在什麼位置,才會編譯得到?
非常感謝您的支持!