首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在linux内核中映射io设备地址?

在linux内核中映射io设备地址?
EN

Stack Overflow用户
提问于 2013-02-06 17:35:32
回答 1查看 365关注 0票数 0
代码语言:javascript
复制
printk(" start = %p , end = %p \n",res->start ,res->end );
fbi->reg_base = ioremap_nocache(res->start, res->end - res->start);
printk(" fbi->reg_base = %p \n",fbi->reg_base);
printk(" virt_to_phys(fbi->reg_base) = %p \n", virt_to_phys(fbi->reg_base));
printk(" virt_to_bus(fbi->reg_base) = %p \n", virt_to_bus(fbi->reg_base));

输出为

代码语言:javascript
复制
start = 72100000 , end = 72100fff 
fbi->reg_base = 70b10000
virt_to_phys(fbi->reg_base) = a0b10000
virt_to_phys(fbi->reg_base) = a0b10000

为什么我不能拿回0x72100000

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-02-06 17:40:14

我想你不会得到那个地址,因为ioremap_nocache返回的地址不能保证是一个虚拟地址,因为它说的是here

ioremap_nocache执行特定于平台的操作序列,使总线内存CPU可通过readb/readw/readl/writeb/ writew/writel函数和其他mmio进行访问。不能保证返回的地址可以直接用作虚拟地址

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14725710

复制
相关文章

相似问题

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