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相关推荐
- MongoDB文件操作(支持大于4M数据)
// MongoDB连接串,以[mongodb://]开头.这里,我们连接的是本机的服务 string connectionString = "mongodb://localhost&quo ...
- mysql一次更新内容大于4M时报错修改max_allowed_packet变量
mysql更新时报错: Packet for query is too large (8479926 > 4194304). You can change this value on the s ...
- linux系统2g内存,linux下分配大于2g内存的问题(c++)
linux下分配大于2g内存的问题(c++) 答案:5 信息版本:手机版 解决时间 2020-07-26 16:35 已解决 2020-07-25 20:51 机器是64位系统linux,但好像最大 ...
- JAVA之JVM之内存分配与回收策略(二)
前言 对象的内存分配,往大的方向上讲,就是在堆上分配,少数情况下也可能会直接分配在老年代中,分配的规则并不是百分之百固定的,其细节决定于当前使用的是哪种垃圾收集器组合,当然还有虚拟机中与内存相关的参数 ...
- Java虚拟机7:内存分配原则
前言 对象的内存分配,往大的方向上讲,就是在堆上分配,少数情况下也可能会直接分配在老年代中,分配的规则并不是百分之百固定的,其细节决定于当前使用的是哪种垃圾收集器组合,当然还有虚拟机中与内存相关的参数 ...
- JVM之内存分配与回收策略
JVM之内存分配与回收策略 来源 https://www.cnblogs.com/xiaoxi/p/6557473.html JVM分代垃圾回收策略的基础概念 来源 https://www.cnblo ...
- Linux内核常见分配函数
1. 原理说明 Linux内核中采用了一种同时适用于32位和64位系统的内存分页模型,对于32位系统来说,两级页表足够用了,而在x86_64系统中,用到了四级页表,如图2-1所示.四级页表分 ...
- Linux内核中常见内存分配函数
1. 原理说明 Linux内核中采用了一种同时适用于32位和64位系统的内存分页模型,对于32位系统来说,两级页表足够用了,而在x86_64系统中,用到了四级页表,如图2-1所示.四级页表分 ...
- Linux内核中内存分配函数
1.原理说明 Linux内核 中采 用了一种同时适用于32位和64位系统的内 存分页模型,对于32位系统来说,两级页表足够用了,而在x86_64系 统中,用到了四级页表,如图2-1所示.四级页表分别为 ...
最新文章
- AI一分钟 | 贾跃亭宣布FF开工,并在京沪展开招聘,回国在望?;亚马逊CEO贝佐斯搭伴波士顿动力机器狗参会
- 90 后女科学家,四年完成清华大学硕博连读,解决多个世界级难题
- python中requests库的用途-python中requests库session对象的妙用详解
- Servlet--HttpServletRequest一些不常用的方法
- TS基础2(类)-学习笔记
- 高度平衡二叉树的构建_数据结构与算法系列(十六)平衡二叉树的构建实现过程演示...
- [电影]十七岁的单车
- ElasticSearch学习(五):数据导入之Logstash
- Windows资源监控工具汇总
- JAVA代码生成器源码-基于SSM架构
- PythonSPSS完成空气质量状况的指数(AQI)分析
- MCU 8080规格LCD屏斜线问题——Tear功能
- 假定在使用CSMA/CD协议的10Mbit/s以太网中某个站在发送数据时检测到碰撞,执行退避算法时选择了随机数r=100.试问这个站需要等待多长时间后才能再次发送数据?如果是100Mbit/s的以太网
- eel+python 开发html5跨平台桌面应用1
- 广告主选择在今日头条推广的优势有哪些?头条搜索广告怎么做?
- windows下 搭建 wxWidgets 开发环境
- 数字城市的意义有哪些?如何构建数字城市?
- 实习随笔2(独自乘车南下深圳)
- PowerPoint Quick Tips PowerPoint快速提示 Lynda课程中文字幕
- TRACY自己学英语的5W三七法则
热门文章
- web编程 模块1 html,PYcore python programming笔记C20 Web编程
- mysql c webservice_如何编写webservice c
- 第11章 进入保护模式
- python安装依赖失败_python执行安装第三方依赖numpy失败:error: Unable to find vcvarsall.bat...
- hive 如何将数组转成字符串_教你如何将Power Logic的原理图转成Orcad的原理图
- Hive中COUNT的高级用法(条件过滤等)
- IOS多线程之Block编程
- 【LuoguP3038/[USACO11DEC]牧草种植Grass Planting】树链剖分+树状数组【树状数组的区间修改与区间查询】...
- Oracle数据库sql调优
- 进阶学习js中的执行上下文