留言板
路过的蜗牛们,在这里留个脚印吧~
蜗窝欢迎各种言论,谈天说地、技术交流、问题求救、跳槽招聘、牢骚抱怨……哈哈。
评论:
wowo
2015-07-07 12:25
2015-07-07 12:25
@passerby:以前的时候,能够主动访问memory的,只有CPU、DMA等少数器件,因此MMU大多是把CPU看到的虚拟地址转换为实际的物理地址。
而现在,为了减轻CPU的压力,很多外设,也具备访问memory的能力,如GPU、codec等等。正常情况下,这些外设看到的是物理地址,因此直接使用物理地址操作memory。
使用物理地址的一个缺点是,地址必须是连续的,如果memory的需求较大(如显示相关的器件),则对内存管理形成了压力。因而很多外设本身也支持MMU功能,这时,外设看到的是连续的IO虚拟地址,经过MMU转换为不连续的物理地址。
因此,位于外设中的MMU模块,就称作IOMMU。
现在IOMMU应用比较多的地方,是GPU,另外一些显示控制器、视频codec等,也有。
而现在,为了减轻CPU的压力,很多外设,也具备访问memory的能力,如GPU、codec等等。正常情况下,这些外设看到的是物理地址,因此直接使用物理地址操作memory。
使用物理地址的一个缺点是,地址必须是连续的,如果memory的需求较大(如显示相关的器件),则对内存管理形成了压力。因而很多外设本身也支持MMU功能,这时,外设看到的是连续的IO虚拟地址,经过MMU转换为不连续的物理地址。
因此,位于外设中的MMU模块,就称作IOMMU。
现在IOMMU应用比较多的地方,是GPU,另外一些显示控制器、视频codec等,也有。
wowo
2015-07-07 10:46
2015-07-07 10:46
@Robert:对mmc驱动而言,只需要实现一个MMC host(struct mmc_host),并提供相应的ops(struct mmc_host_ops)即可。后续的操作逻辑,都由mmc core负责,大概包括:
启动一个用于detect的work,检测MMC card的插入(由mmc_rescan完成,会调用host->bus_ops->detect接口);
调用mmc_rescan_try_freq,根据卡的类型,使用不同的速率,扫描mmc卡;
以MMC卡为例,会调用mmc_attach_mmc,最终会调用mmc_add_card添加一个card(struct mmc_card);
card driver在系统初始化的时候,已经注册了一个mmc driver(struct mmc_driver),每当有新的card加入时,会调用mmc_blk_probe接口,进而创建一个block device;
block device之上,就是文件系统。
因此,回答您的问题:狭义的mmc driver(指的是mmc host driver),是由mmc core调用;广义的mmc driver(一些wifi卡除外),由block device调用。
希望能给您提供一点帮助。
启动一个用于detect的work,检测MMC card的插入(由mmc_rescan完成,会调用host->bus_ops->detect接口);
调用mmc_rescan_try_freq,根据卡的类型,使用不同的速率,扫描mmc卡;
以MMC卡为例,会调用mmc_attach_mmc,最终会调用mmc_add_card添加一个card(struct mmc_card);
card driver在系统初始化的时候,已经注册了一个mmc driver(struct mmc_driver),每当有新的card加入时,会调用mmc_blk_probe接口,进而创建一个block device;
block device之上,就是文件系统。
因此,回答您的问题:狭义的mmc driver(指的是mmc host driver),是由mmc core调用;广义的mmc driver(一些wifi卡除外),由block device调用。
希望能给您提供一点帮助。
ZZ
2015-06-03 21:09
2015-06-03 21:09
@wowo and linuxer
请教一个问题,怎么保存内核 coredump(gdb专用core-file),
大致思路,系统发生panic的时候,调用panic函数的同时,能否把 从coredump保存下来;供后面用gdb + vmlinux+ core-file 来恢复死机现场,调试panic debug
请教一个问题,怎么保存内核 coredump(gdb专用core-file),
大致思路,系统发生panic的时候,调用panic函数的同时,能否把 从coredump保存下来;供后面用gdb + vmlinux+ core-file 来恢复死机现场,调试panic debug
飞来走去
2015-04-24 17:46
2015-04-24 17:46
你好,我在移植max17049的时候遇到了几个问题,一个是充满电的时候,读出来寄存器的值是90%,没有电的时候显示是0%,即充电越满,误差越大。
后来我让他们给我的电池重新建模得到model data,但是给了我的数据是128个字节,可给我的文档显示只需要64个字节,可以参考一下你们的代码吗~
后来我让他们给我的电池重新建模得到model data,但是给了我的数据是128个字节,可给我的文档显示只需要64个字节,可以参考一下你们的代码吗~
功能
最新评论
文章分类
随机文章
文章存档
- 2024年2月(1)
- 2023年5月(1)
- 2022年10月(1)
- 2022年8月(1)
- 2022年6月(1)
- 2022年5月(1)
- 2022年4月(2)
- 2022年2月(2)
- 2021年12月(1)
- 2021年11月(5)
- 2021年7月(1)
- 2021年6月(1)
- 2021年5月(3)
- 2020年3月(3)
- 2020年2月(2)
- 2020年1月(3)
- 2019年12月(3)
- 2019年5月(4)
- 2019年3月(1)
- 2019年1月(3)
- 2018年12月(2)
- 2018年11月(1)
- 2018年10月(2)
- 2018年8月(1)
- 2018年6月(1)
- 2018年5月(1)
- 2018年4月(7)
- 2018年2月(4)
- 2018年1月(5)
- 2017年12月(2)
- 2017年11月(2)
- 2017年10月(1)
- 2017年9月(5)
- 2017年8月(4)
- 2017年7月(4)
- 2017年6月(3)
- 2017年5月(3)
- 2017年4月(1)
- 2017年3月(8)
- 2017年2月(6)
- 2017年1月(5)
- 2016年12月(6)
- 2016年11月(11)
- 2016年10月(9)
- 2016年9月(6)
- 2016年8月(9)
- 2016年7月(5)
- 2016年6月(8)
- 2016年5月(8)
- 2016年4月(7)
- 2016年3月(5)
- 2016年2月(5)
- 2016年1月(6)
- 2015年12月(6)
- 2015年11月(9)
- 2015年10月(9)
- 2015年9月(4)
- 2015年8月(3)
- 2015年7月(7)
- 2015年6月(3)
- 2015年5月(6)
- 2015年4月(9)
- 2015年3月(9)
- 2015年2月(6)
- 2015年1月(6)
- 2014年12月(17)
- 2014年11月(8)
- 2014年10月(9)
- 2014年9月(7)
- 2014年8月(12)
- 2014年7月(6)
- 2014年6月(6)
- 2014年5月(9)
- 2014年4月(9)
- 2014年3月(7)
- 2014年2月(3)
- 2014年1月(4)
2015-07-07 11:29