免费注册 查看新帖 |

Chinaunix

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

问一个PCIe设备的问题(已解决) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-12-29 01:05 |只看该作者 |倒序浏览
在PCIe中,Completion包中有一个Completer ID,虽然说没有确定的值不会影响报文的路由,但想知道一下设备自己如何知道自己的Bus+Dev(Function自己会知道的)?好像标准的配置空间只有Bridge才有Bus相关的寄存器,难道这个要结合驱动自己去实现?而且PCIe支持Endpoint到Endpoint的访问吧,这种情况必须知道自己的这些信息才能正确填写Requester ID吧?

[ 本帖最后由 Cyberman.Wu 于 2009-12-29 11:12 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2009-12-29 11:02 |只看该作者
好像驱动初始化的时候,把bus 号写到设备的寄存器中了,我去看看代码

论坛徽章:
0
3 [报告]
发表于 2009-12-29 11:10 |只看该作者
自己搞明白了,这个是PCE Express配置空间中没有具体定义的,要设备自己去实现。在PCI Express System Architecture中的描述:
In PCI Express, each device "captures" (and remembers) its own Bus Number and Device Number contained in TLP header bytes 8-9 each time a configuration write (Type 0) is detected on its primary link. At reset, all bus and device numbers in the system revert to 0, so a device will not respond to transactions other than configuration cycles until at least one configuration write cycle (Type 0) has been performed. Note that the PCI Express protocol does not define a configuration space location where the device function is required to store the captured Bus Number and Device Number information, only that it must do it.


在PCI Express Base Specification的2.2.9中有更详细的描述。这个需要设备自己在收到Configration Write的时候记录(CfgWr总是用ID-Routing的),后面使用;因为#Bus/#Device有可能动态改变,所以就要每次写的都都自动记录一下。

看来以前说的书要读三遍不是没有道理的,只是现在都是项目催着人走,看书的时候一目十行,浮躁啊。

[ 本帖最后由 Cyberman.Wu 于 2009-12-29 11:13 编辑 ]

论坛徽章:
0
4 [报告]
发表于 2009-12-29 17:11 |只看该作者
你们是做芯片还是做设备阿?

论坛徽章:
0
5 [报告]
发表于 2009-12-30 21:34 |只看该作者

回复 #4 snail_314 的帖子

我们做设备。

论坛徽章:
0
6 [报告]
发表于 2009-12-31 00:22 |只看该作者
原帖由 Cyberman.Wu 于 2009-12-30 21:34 发表
我们做设备。

大侠能不能推荐一点PCIE的基础入门资料?
我只有情景分析下册上对PCI的一些基础的了解,现在想学一下PCIE,以后的项目中可能要用到。
谢过先!

论坛徽章:
0
7 [报告]
发表于 2009-12-31 02:33 |只看该作者
回LS, 我也正在学PCIE. 我觉得可以直接看SPEC, 或者看下这本书: PCI Express System Architecture

论坛徽章:
0
8 [报告]
发表于 2009-12-31 09:10 |只看该作者
原帖由 Cyberman.Wu 于 2009-12-29 01:05 发表
在PCIe中,Completion包中有一个Completer ID,虽然说没有确定的值不会影响报文的路由,但想知道一下设备自己如何知道自己的Bus+Dev(Function自己会知道的)?好像标准的配置空间只有Bridge才有Bus相关的寄存器 ...


bus, dev, function不是OS分配的麽,在PCI设备的枚举过程中,会为每个pci_dev分配bus, dev, function。

论坛徽章:
0
9 [报告]
发表于 2009-12-31 09:59 |只看该作者

回复 #8 北极狐BILL 的帖子

是软件写的阿,楼主的意思是说硬件还会detect这个写的事件然后纪录下来软件写的base address

论坛徽章:
0
10 [报告]
发表于 2009-12-31 11:50 |只看该作者
原帖由 accessory 于 2009-12-31 02:33 发表
回LS, 我也正在学PCIE. 我觉得可以直接看SPEC, 或者看下这本书: PCI Express System Architecture

多谢了~
回头研究下,有问题再请教
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP