天嵌 ARM开发社区

 找回密码
 注册
查看: 1683|回复: 6

如何设置MMU来设置制定的I/O地址空间为NCNB

[复制链接]
jinjf 发表于 2013-9-8 04:07:47 | 显示全部楼层 |阅读模式
我想把物理地址28000000开始的长16字节的I/O地址空间在MMU里面设置成no cache避免side effect, 我想是应该用MMU_SetMTT(0xC491C000,0x0xC491C00F,0x28000000,RW_NCNB)这样的函数来设置,但是我应该在linux-2.6.30.4里面的哪个文件进行修改才可以呢??
谢谢有了解如何做的请给些指导。
亚瑟王 发表于 2013-9-9 09:49:48 | 显示全部楼层
没有做过这个,如果你想要直接访问这段内存你可以将其映射出来。
 楼主| jinjf 发表于 2013-9-9 11:25:45 | 显示全部楼层
我用ioremap等到虚拟地址,然后用ioread8/iowrite8进行读写,感觉被mmu的cache机制影响了,痛苦中,不知道楼上说的映射出来具体指什么?
亚瑟王 发表于 2013-9-9 11:39:51 | 显示全部楼层
jinjf 发表于 2013-9-9 11:25
我用ioremap等到虚拟地址,然后用ioread8/iowrite8进行读写,感觉被mmu的cache机制影响了,痛苦中,不知道楼 ...

就是让应用程序直接访问物理地址。
至于你说的cache,可能我的水平有限,我没有在mmu中找到相关的硬件说明。我认为是软件的问题,可能是内核机制引起的。这个没有做过,不太懂。
 楼主| jinjf 发表于 2013-9-9 12:18:37 | 显示全部楼层
能具体说明一下,如何让应用程序直接访问物理地址吗? 直接用ioread/iowrite函数操作物理地址会报错,必须用remap函数转换为虚拟地址才可以。
TQ-ZQL 发表于 2013-9-9 14:01:02 | 显示全部楼层
驱动中使用void* __phy_to_virt(void* phy)这个宏可能将低端内存地址直接转成虚拟地址
 楼主| jinjf 发表于 2013-9-9 20:40:53 | 显示全部楼层
麻烦问一下这个宏定义在那个h文件内呢,搜了一遍没找到啊,谢谢了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

i.MX8系列ARM cortex A53 M4 工控板上一条 /1 下一条

Archiver|手机版|小黑屋|天嵌 嵌入式开发社区 ( 粤ICP备11094220号-2 )

GMT+8, 2024-7-16 15:41 , Processed in 1.078125 second(s), 19 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表