[NXP i.MX 應用處理器教室] 如何在i.MX8M的平台上使用LPDDR4-1GB的記憶體並且跑Android P作業系統

當i.MX8M跑Android P作業系統,記憶體容量有最低的需求。
在i.MX8M的EVK平台上使用LPDDR4記憶體,其容量為3GByte。

通常客人為了價格的考量,通常會將記憶體容量降低。
當記憶體容量降低,必須有各方面的考量,這樣系統才不會出問題。



一、DDR的設置與Mapping(映射)

以下將Uboot由3GB改為1GB
  1. i.mx8mq_evk.h à 將 0xC00000000  修改為 0x40000000
  2. fsl-imx8mq.dtsi à 在memory 這個 node內將 0xC0000000 修改為 0x40000000
  3. fsl-imx8mq.dtsi à 在 gpu 這個 node內將 0xC0000000 修改為 0x40000000

二、DDR的CMA設置

在 Android 將預設 CMA 的size 1280Mbyte 。這是為了讓有VPU,GPU,HDMI,攝像機等,需要更長的擴展內存,並且這些內存都是需要使用DMA訪問的。
因此,將預設 CMA 的size 1280Mbyte,改成 256Mbyte,不然預設 CMA size 就超過 1GB,
只是由 1280M改成256M 後,如果有大量資料搬移 像是 video decode/encode,圖形顯示的部份,就會變成非常的慢,因為只有每 256M 搬移一次,原本是可以一次超過1GByte的連續性資料搬移

  1. 修改 Android board config 將 CMA 由 1280M 改為 256M

           /home/apollo/AP/imx-p9.0.0_2.0.0-ga/android_build/device/fsl/imx8m/evk_8mq/BoardConfig.mk 

                     ifeq ($(PRODUCT_IMX_DRM),true)

                     #CMASIZE=736M

                     CMASIZE=256M

                     else

                     #CMASIZE=1280M

                     CMASIZE=256M

                     endif


當系統跑起來之後,執行"free -h"即可以知道目前DDR的狀態。

evk_8mq:/ $ su

evk_8mq:/ #

evk_8mq:/ #

evk_8mq:/ # free -h

                           total        used        free      shared     buffers

Mem:             982M        952M         30M        804K        1.7M

-/+ buffers/cache:           950M         32M

Swap:            300M        4.7M        295M

evk_8mq:/ #





以下及為在Android P作業系統,1GB的記憶體,開機訊息




技術文檔

類型標題檔案
軟件Codes

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

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

評論