免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 6095 | 回复: 2
打印 上一主题 下一主题

[请教]pci驱动里面pci_request_selected_regions的作用 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-12-22 10:57 |只看该作者 |倒序浏览
最近在看一个驱动的源码,里面有一段代码:
        if (pci_request_selected_regions(pdev, ioc->bars,
            MPT2SAS_DRIVER_NAME)) {
                printk(MPT2SAS_WARN_FMT "pci_request_selected_regions: "
                    "failed\n", ioc->name);
                r = -ENODEV;
                goto out_fail;
        }

比较疑惑的是这个pci_request_selected_regions起什么作用呢?设备用到的资源在硬件初始化已经分配好了,驱动还需要再申请一下么?

我试了一下,把这段代码注释掉,影响的只是/proc/iomem的内容,功能上没有影响。感觉只是驱动对这段资源做了个标记。

fdf00000-fdffffff : PCI Bus 0000:0d
  fdf00000-fdf7ffff : 0000:0d:00.0
  fdf80000-fdfbffff : 0000:0d:00.0
    fdf80000-fdfbffff : mpt2sas
  fdffc000-fdffffff : 0000:0d:00.0
    fdffc000-fdffffff : mpt2sas
变成了
fdf00000-fdffffff : PCI Bus 0000:0d
  fdf00000-fdf7ffff : 0000:0d:00.0
  fdf80000-fdfbffff : 0000:0d:00.0
  fdffc000-fdffffff : 0000:0d:00.0

翻了一下CU的历史帖子,没找到确切的说法,有个帖子提到是为了保护这段资源,不让别的进程访问,感觉不是很充分。

另外还有request_region这个函数,申请io端口用于驱动和硬件间通信。这个也应该是硬件初始化就确认的一段地址。
我觉得,这种io端口,如果没有和硬件联系起来,驱动申请了有什么用啊?如果硬件已经分配好了,驱动还用去request一下,做个标记么?

对这块不是很了解,希望有人指点一下。先谢过了。

论坛徽章:
0
2 [报告]
发表于 2010-12-22 11:16 |只看该作者
我顶的这个精华帖子可能对你有帮助.IOMMU相关的可以略过不看

论坛徽章:
0
3 [报告]
发表于 2012-02-03 09:58 |只看该作者
*        If @exclusive is set, then the region is marked so that userspace
*        is explicitly not allowed to map the resource via /dev/mem or
*         sysfs MMIO access.
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP