日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

AM335X 分配大于4M的framebuffer

發布時間:2023/12/10 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 AM335X 分配大于4M的framebuffer 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

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

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

2代表雙framebuffer,LCD驅動程序中,使用dma_alloc_coherent來分配緩沖區

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

所以,dma_alloc_coherent分配的最大DMA空間只能小于2M,為了支持

4M甚至更大的DMA空間,需要做以下修改:

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

?CONFIG_FORCE_MAX_ZONEORDER=11

修改為:

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文件系統。

總結

以上是生活随笔為你收集整理的AM335X 分配大于4M的framebuffer的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。