Chinaunix首页 | 论坛 | 博客
  • 博客访问: 45018
  • 博文数量: 34
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 10
  • 用 户 组: 普通用户
  • 注册时间: 2014-08-18 21:23
文章分类

全部博文(34)

文章存档

2014年(34)

我的朋友

分类: LINUX

2014-08-18 21:33:17

原文地址:ioremap相关笔记 作者:humjb_1983

问题:分配mmio(request_mem_region)后,得到的是物理地址,按理只需要将其转换为虚拟地址后(内核中,低端内存只是一个偏移而已),
应该就可以直接访问了吧?但是为什么还需要使用ioremap将其转换为线性地址后才能访问呢?
解答:分配的mmio的物理地址在内核中不一定能直接访问,比如:
1、x86 32位环境中,mmio的地址范围就在3G-4G直接,位于高端内存,内核中不能直接访问,需要进行映射。
2、一些体系架构中,IO内存根本就不能直接访问,必须建立相应的映射后才行,相应的映射工作由架构相关的ioremap完成
ioremap完成相应的物理地址到内核空间中的线性地址(虚拟地址)的映射,并建立相应页表。
阅读(125) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~