[问题] Kernel3_10 mmap

楼主: willy01 (网洋中的一条狗)   2014-12-15 20:56:41
大家好~
想要请问一下 最近在build android5.0 搭配 新的3.10 kernel内核
之前在旧个Android4.3 前辈有写份tool
主要是用mmap把底层的physical address映射到user space
让AP程式可以存取到hardware 存到内存的值 (类似driver)
主要code大概为
fd = open("/dev/mem",O_RDWR | O_SYNC);
map_address = mmap( (caddr_t)0 , size,
PROT_READ|PROT_WRITE,MAP_SHARED,fd,(off_t)phy_base_address );
其中
size=40* getpagesize(); //getpagesize=4096 byte
phy_base_address= 0xd80a0000 ; // GPU mmio base
在之前的版本可以正常work 但换到 ndroid5.0 搭配 新的3.10 kernel内核
则会回传errno 22 (invalid argument)
但确认过两个size和phy_base_address的都是为 pagesize的整数倍
一开始以为是SELINUX的权限 使AP不能用MMAP存取内存
但关掉SELINUX后 好像还是无法存取
网络上有看到一个说法是说
新的内核对 /dev/mem做了一些限制 导致不能映射了
不知有无有经验的高手
可以提供一个大概方向 让我可以继续解掉这问题?
非常感谢大家看完

Links booklink

Contact Us: admin [ a t ] ucptt.com