Chinaunix

标题: 请问, pgprot_noncached的具体作用是什么? [打印本页]

作者: 烟雾弹下的真实    时间: 2013-09-27 21:06
标题: 请问, pgprot_noncached的具体作用是什么?
如果我想讲io地址映射到应用层空间,内核mmap实现需要加 pgprot_noncached吗?
作者: wwxxxxll    时间: 2013-09-29 09:47
本帖最后由 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
作者: 哈师大出    时间: 2013-10-19 19:53
提示: 作者被禁止或删除 内容自动屏蔽




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2