- 论坛徽章:
- 0
|
本帖最后由 wwxxxxll 于 2013-09-29 11:58 编辑
在arch/arm/kernel/bios32.c下
/*
* Mark this as IO
*/
vma->vm_page_prot = pgprot_noncached(vma->vm_page_prot);
if (remap_pfn_range(vma, vma->vm_start, phys,
vma->vm_end - vma->vm_start,
vma->vm_page_prot))
return -EAGAIN;
是用了pgprot_noncached,
ldd3的话
引用设备内存不应当被处理器缓存.
常常系统 BIOS 做了正确设置
我觉得是要加的。
在arm里,在有mmu的情况下
pgprot_noncached(vma->vm_page_prot);
就是
(vma->vm_page_prot.pgprot & ~(L_PTE_MT_MASK)) | (_PTE_MT_UNCACHED)
_PTE_MT_UNCACHED这个应该在下面会用到,我没具体看,有兴趣可以讨论讨论!
linux驱动群:
163617970 |
|