[NXP i.MX 應用處理器教室] 如何在i.MX8M NANO的平台上使用DDR3L-512MB的記憶體

i.MX8M Nano的硬體可以支援DDR4,DDR4L和DDR3L三種不同形式的記憶體。而i.MX8M Nano開發版中所使用的記憶體為DDR4-2GB。客戶在開發中,通常為了成本考量或是效能取捨,會選擇不同的記憶體型態與容量。但在原廠程式碼中的u-boot目前只支援LPDDR4/DDR4這兩種類型記憶體,而沒有支援DDR3L類型。

以下則是教導與說明:如何在i.MX8M NANO的平台上使用DDR3L-512MB 的記憶體。

一、硬件設計部分:
       1、i.MX8M Nano中設計DDR3L的硬件線路如下:        2、DDR3L 電源:由於DDR3L與LPDDR4/DDR4的電源電壓是不同的,這也是需要注意"正確提供1.35V電源給DDR3L"
              目前所使用ROHM PMIC"BD71847"來提供系統電源,包含DDR的部分。所以也要確認 PMIC"BD71847"提供給DDR3L的電壓正確(1.35V)
        

二、軟件修改部分如下:
       1、用i.MX8M Series的 MSCALE_DDR_Tool 產生正確且符合DDR3L速度容量的 "ddr3l_timing.c"
       

       2、須將此檔案"ddr3l_timing.c"放在u-boot的source code做編譯,請參考接下來步驟:
              在此以Linux 4.14.98_2.2.0的版本為範例。

          a、將DDR stress tool所產生的"ddr3l_timing.c"放到/board/freescale/imx8mn_evk目錄下。
                另外也要修改/board/freescale/imx8mn_evk/MakeFile檔案中第11行位置,如下

          b、修改/arch/arm/mach-imx/imx8m/Kconfig,是將本來的IMX8M_DDR4改成IMX8M_DDR3L,是在Kconfig此檔案中第79行的位置


          c、修改/include/configs/imx8mn_evk.h,是將本來的PHYS_SDRAM_SIZE 由2GB改成512MB,是在imx8mn_evk.h中第233行的位置


        d、修改/board/freescale/imx8mn_evk/spl.c,是將本來的DDR4的設定改成DDR3L。
              電壓DDR4的電壓1.2V修改成DDR3L電壓的1.35V。變更在spl.c中第175行到177行的位置,
              並將其VDD_DRAM修改成0.975V,變更在spl.c中第172行的位置(i.MX8M Nano需求)


        e、編譯u-boot的相關訊息如下:

        f、將編譯過後產生的uboot,燒錄到開機儲存裝置上(eMMC/SD..),即可以正確開機。
             在DDR3L板子成功開機的訊息如下,並顯示為512MB:


以上的流程,完整教導與說明:如何在i.MX8M NANO的平台上使用DDR3L-512MB 的記憶體。


技術文檔

類型標題檔案
軟件Patch

★博文內容均由個人提供,與平台無關,如有違法或侵權,請與網站管理員聯繫。

★文明上網,請理性發言。內容一周內被舉報5次,發文人進小黑屋喔~

評論