免费注册 查看新帖 |

Chinaunix

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

[硬件及驱动] pci总线相关 [复制链接]

论坛徽章:
3
双鱼座
日期:2013-09-04 19:47:39天蝎座
日期:2013-12-11 20:30:532015年亚洲杯之澳大利亚
日期:2015-04-20 00:28:02
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-03-11 23:26 |只看该作者 |倒序浏览
   我最近在看pci总线的时候,有一个疑惑,不吐不快啊..

    x86的总线地址由:域(16bit)+总线号(8bit)+设备号(5bit)+功能号(3bit)组成.
    但这个设备号和功能号代表的意义不大理解。一说两者组成了逻辑设备号,一说设备号代表着pci接口芯片, 功能号是实际的设备.
    那是不是指每条pci总线能有一个支持32个接口芯片,每个接口芯片连接着8个真实设备?一条pci总线能操控256个设备?(但每个总线只提供4条中断线,这不够用的吧)
    如果以上成立,是否也意味着pci桥也作为一个连接在pci接口芯片上的设备呢?
   
   


论坛徽章:
15
射手座
日期:2014-02-26 13:45:082015年迎新春徽章
日期:2015-03-04 09:54:452015年辞旧岁徽章
日期:2015-03-03 16:54:15羊年新春福章
日期:2015-02-26 08:47:552015年亚洲杯之卡塔尔
日期:2015-02-03 08:33:45射手座
日期:2014-12-31 08:36:51水瓶座
日期:2014-06-04 08:33:52天蝎座
日期:2014-05-14 14:30:41天秤座
日期:2014-04-21 08:37:08处女座
日期:2014-04-18 16:57:05戌狗
日期:2014-04-04 12:21:33技术图书徽章
日期:2014-03-25 09:00:29
2 [报告]
发表于 2014-03-12 09:06 |只看该作者
kiongf 发表于 2014-03-11 23:26
我最近在看pci总线的时候,有一个疑惑,不吐不快啊..

    x86的总线地址由:域(16bit)+总线号(8bit)+ ...


x86的总线地址由:域(16bit)+总线号(8bit)+设备号(5bit)+功能号(3bit)组成.
    但这个设备号和功能号代表的意义不大理解。一说两者组成了逻辑设备号,一说设备号代表着pci接口芯片, 功能号是实际的设备.
    那是不是指每条pci总线能有一个支持32个接口芯片,每个接口芯片连接着8个真实设备?一条pci总线能操控256个设备?(但每个总线只提供4条中断线,这不够用的吧)
--------是的,APIC中断线是共享的,不是一对一的关系。

    如果以上成立,是否也意味着pci桥也作为一个连接在pci接口芯片上的设备呢?
--------PCI桥就是一个普通的pci设备。
   

论坛徽章:
1
天蝎座
日期:2013-10-23 21:11:03
3 [报告]
发表于 2014-03-12 09:52 |只看该作者
LZ可以看下中断响应过程,或者中断请求request_irq
中断信号是可以共享的

论坛徽章:
17
水瓶座
日期:2013-08-29 12:09:27白羊座
日期:2014-08-07 12:36:42丑牛
日期:2014-07-24 12:44:41寅虎
日期:2014-04-16 16:15:33寅虎
日期:2014-03-12 09:28:43摩羯座
日期:2014-03-06 13:22:04技术图书徽章
日期:2014-03-06 11:34:50天蝎座
日期:2014-01-09 11:31:44寅虎
日期:2013-12-27 17:01:44双子座
日期:2013-12-27 12:32:29双子座
日期:2013-12-25 09:03:33丑牛
日期:2013-12-24 16:18:44
4 [报告]
发表于 2014-03-12 10:26 |只看该作者
回复 1# kiongf

域,总线号,设备号和功能号用于寻址 configuration address space

PCI总线地址用于寻址 memory / io address space

域,总线号加设备号能够寻址到物理的PCI硬件。不过有的PCI硬件内部可以有多个逻辑功能。

每个逻辑功能提供了自己的配置空间,所以功能号用于寻址同个物理PCI硬件的不同逻辑功能的配置空间。

论坛徽章:
3
双鱼座
日期:2013-09-04 19:47:39天蝎座
日期:2013-12-11 20:30:532015年亚洲杯之澳大利亚
日期:2015-04-20 00:28:02
5 [报告]
发表于 2014-03-12 22:42 |只看该作者
回复 4# asuka2001


    不过有的PCI硬件内部可以有多个逻辑功能。
   
我的问题就是这个!! 这个逻辑功能就是用功能号来描述的吧。 我没有接触过太具体的外设,就是对这块很模棱两可.
能否举一些真实设备做下例子。比如说网卡,

论坛徽章:
3
双鱼座
日期:2013-09-04 19:47:39天蝎座
日期:2013-12-11 20:30:532015年亚洲杯之澳大利亚
日期:2015-04-20 00:28:02
6 [报告]
发表于 2014-03-12 22:47 |只看该作者
回复 3# openspace


    谢谢,我对中断还真是完全陌生..

论坛徽章:
3
双鱼座
日期:2013-09-04 19:47:39天蝎座
日期:2013-12-11 20:30:532015年亚洲杯之澳大利亚
日期:2015-04-20 00:28:02
7 [报告]
发表于 2014-03-12 22:51 |只看该作者
回复 2# humjb_1983


    pci_dev(桥)/pci_bus/pci_dev(普通设备)之间的拓扑关系,我看过总线枚举设备的代码,还是能理解。
    但还是pci_slot,,这个我就不大理解他和pci_bus之间的关系.

论坛徽章:
15
射手座
日期:2014-02-26 13:45:082015年迎新春徽章
日期:2015-03-04 09:54:452015年辞旧岁徽章
日期:2015-03-03 16:54:15羊年新春福章
日期:2015-02-26 08:47:552015年亚洲杯之卡塔尔
日期:2015-02-03 08:33:45射手座
日期:2014-12-31 08:36:51水瓶座
日期:2014-06-04 08:33:52天蝎座
日期:2014-05-14 14:30:41天秤座
日期:2014-04-21 08:37:08处女座
日期:2014-04-18 16:57:05戌狗
日期:2014-04-04 12:21:33技术图书徽章
日期:2014-03-25 09:00:29
8 [报告]
发表于 2014-03-13 14:08 |只看该作者
pci_dev对应的就是逻辑设备,就是功能号字段,3位
pci_slot对应的是物理插槽,相当于物理设备,对应你说的设备号,5位。

论坛徽章:
17
水瓶座
日期:2013-08-29 12:09:27白羊座
日期:2014-08-07 12:36:42丑牛
日期:2014-07-24 12:44:41寅虎
日期:2014-04-16 16:15:33寅虎
日期:2014-03-12 09:28:43摩羯座
日期:2014-03-06 13:22:04技术图书徽章
日期:2014-03-06 11:34:50天蝎座
日期:2014-01-09 11:31:44寅虎
日期:2013-12-27 17:01:44双子座
日期:2013-12-27 12:32:29双子座
日期:2013-12-25 09:03:33丑牛
日期:2013-12-24 16:18:44
9 [报告]
发表于 2014-03-13 14:22 |只看该作者
本帖最后由 asuka2001 于 2014-03-13 14:22 编辑

回复 5# kiongf

lspci

07:00.0 Ethernet controller: Intel Corporation I350 Gigabit Network Connection (rev 01)
07:00.1 Ethernet controller: Intel Corporation I350 Gigabit Network Connection (rev 01)
07:00.2 Ethernet controller: Intel Corporation I350 Gigabit Network Connection (rev 01)
07:00.3 Ethernet controller: Intel Corporation I350 Gigabit Network Connection (rev 01)


http://wiki.osdev.org/PCI#Multifunction_Devices

Multifunction Devices

Multifunction devices behave in the same manner as normal PCI devices. The easiest way to detect a multifunction device is bit 7 of the header type field. If it is set (value = 0x80), the device is multifunction -- else it is not. Make sure you mask this bit when you determine header type. To detect the number of functions you need to scan the PCI configuration space for every function - unused functions have vendor 0xFFFF. Device IDs and Class codes vary between functions. Functions are not neccesarily in order - you can have function 0x0, 0x1 and 0x7 in use.

[root@nn_1 ~]# hexdump '/sys/bus/pci/devices/0000:07:00.0/config' -C -n 16
00000000  86 80 21 15 47 04 10 00  01 00 00 02 10 00 80 00  |..!.G...........|
00000010




   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP