首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >写到HW控制器的寄存器和DMA是如何在ARM arch机上工作的?

问写到HW控制器的寄存器和DMA是如何在ARM arch机上工作的?
EN

Stack Overflow用户
提问于 2012-11-06 06:30:42
回答 1查看 323关注 0票数 0

调用此函数时:

代码语言:javascript
复制
static inline void writel(unsigned int v, volatile void __iomem *addr)
{
    *(volatile unsigned int __force *)addr = cpu_to_le32(v);
}
  1. 地址是简写的还是经过MMU的?
  2. DMA -写地址是由MMU翻译的吗?
  3. 为什么没有提到系统中的寄存器地址这里
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-11-06 08:02:08

这是我的答案,希望它们能帮助你:

  1. 是的,地址是由MMU翻译的。传递给writel的地址应该是通过ioremap调用获得的虚拟地址(VA)。ioremap将采用物理地址(PA)。
  2. 不,地址不是由MMU翻译的。传递给DMA的地址应该是物理地址。典型的DMA是存在于MMU之外的专用外围设备。
  3. 例如,您必须搜索“bcm2835 arm外围设备”,而不是“ARM Linux上的内核内存布局”。提示是,如果您想在linux内核中找到注册位置,请在linux内核树/arch/arm中搜索ioremap。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13245628

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档