AM335X 分配大於4M的framebuffer

最近正在將800X480的設備修改爲1024X600,算了一下, android

1024X600X4X2須要4M的framebuffer空間,其中4表明一個像素32位色的Byte數, ui

2表明雙framebuffer,LCD驅動程序中,使用dma_alloc_coherent來分配緩衝區 spa

dma_alloc_coherent分配緩衝區收到MAX_ORDER的制約,MAX_ORDER默認值是11 get

因此,dma_alloc_coherent分配的最大DMA空間只能小於2M,爲了支持 源碼

4M甚至更大的DMA空間,須要作如下修改: it

1. 修改arch/arm/configs/am335x_evm_android_defconfig文件,將 io

 CONFIG_FORCE_MAX_ZONEORDER=11 編譯

修改成: module

CONFIG_FORCE_MAX_ZONEORDER=12 配置

也能夠修改arch/arm/Kconfig中,將config FORCE_MAX_ZONEORDER的

default修改成12,我用的就是這種方法,由於發現修改am335x_evm_android_defconfig沒起做用

2. 修改arch/arm/configs/am335x_evm_android_defconfig文件,將

CONFIG_FB_DA8XX_CONSISTENT_DMA_SIZE 4

修改成:

CONFIG_FB_DA8XX_CONSISTENT_DMA_SIZE 8

3.從新配置並編譯內核

也可參考如下連接:

http://e2e.ti.com/support/arm/sitara_arm/f/791/t/189862.aspx

4.編譯燒寫到NandFLash後,系統啓動不了,出現如下錯誤:

pvrsrvkm: disagrees about version of symbol contig_page_data

這是因爲pvrsrvkm.ko等相關的內核模塊沒有在上述修改後從新編譯形成的,

解決辦法是:

使用如下命令清除sgx舊的編譯數據:

cd hardware/ti/sgx

make OMAPES=4.x ANDROID_ROOT_DIR=/home/skwiki/AKHMI_201309/ak2_ics clean

其中,ANDROID_ROOT_DIR是Android源碼所在目錄,繼續輸入如下命令:

make OMAPES=4.x BUILD=release all_km ANDROID_ROOT_DIR=/home/skwiki/AKHMI_201309/ak2_ics

我在編譯的時候遇到這個問題:

cp: cannot stat  .../binary2_omap4430_android_release/target/pvrsrvkm.ko

我發現編譯後生成的pvrsrvkm.ko存在於out/target/product/am335xevm/target/kbuild目錄中,

因而我修改目錄hardware/ti/sgx中的Makefile.KM.Android文件,大概在35行,將:

else ifeq ($(OMAPES),4.x)

......
@echo "copying the sgx kernel modules to $(GFX_REL_ES4_LIB_SRCPATH_ANDROID)"
@cp -rf $(GFX_KERNMOD_SRCPATH)/eurasiacon/binary2_omap4430_android_release/target/pvrsrvkm.ko
 $(GFX_REL_ES4_LIB_SRCPATH_ANDROID)/.
@cp -rf $(GFX_KERNMOD_SRCPATH)/eurasiacon/binary2_omap4430_android_release/target/omaplfb.ko
 $(GFX_REL_ES4_LIB_SRCPATH_ANDROID)/.
修改成:

else ifeq ($(OMAPES),4.x)
......
@echo "copying the sgx kernel modules from $(ANDROID_ROOT)/out/target/product/$(TARGET_PRODUCT)/target/kbuild"
@echo "copying the sgx kernel modules to   $(GFX_REL_ES4_LIB_SRCPATH_ANDROID)"
@cp -rf $(ANDROID_ROOT)/out/target/product/$(TARGET_PRODUCT)/target/kbuild/pvrsrvkm.ko $(GFX_REL_ES4_LIB_SRCPATH_ANDROID)/
@cp -rf $(ANDROID_ROOT)/out/target/product/$(TARGET_PRODUCT)/target/kbuild/omaplfb.ko $(GFX_REL_ES4_LIB_SRCPATH_ANDROID)/
修改完畢之後,在使用如下命令進行從新編譯:

make OMAPES=4.x BUILD=release all_km ANDROID_ROOT_DIR=/home/skwiki/AKHMI_201309/ak2_ics

嚴謹起見,咱們在Android源碼目錄下面從新編譯Android源碼,並生成ubi文件系統。

相關文章
相關標籤/搜索