PCI驱动

一、PCI总线
1、PCI桥
Host/PCI桥:用于连接CPU与PCI根总线,即“北桥芯片组”
PCI/ISA桥:用于连接PCI与旧的ISA总线,即“南桥芯片组”
PCI-to-PCI桥:用于连接PCI主总线与次总线


2、pci_bus结构体(PCI总线结构体)
定义在include/linux/pci.h中
struct pci_bus {
struct list_head node; /* 链表元素node*/
struct pci_bus *parent; /* PCI总线的父总线*/
struct list_head children; /* 子总线链表头 */
struct list_head devices; /* PCI总线上的设备链表*/
struct pci_dev *self; /* 指向应用该PCI总线*/
struct list_head slots; /* PCI总线上的插槽链表*/
struct resource *resource[PCI_BRIDGE_RESOURCE_NUM];
struct list_head resources; /* 路由到该总线上的地址空间资源链表*/


struct pci_ops *ops; /* PCI总线的访问配置空间的函数集 */
void *sysdata; /* 系统特定的数据hook for sys-specific extension */
struct proc_dir_entry *procdir; /* /proc/bus/pci对应的目录项*/


unsigned char number; /* 总线数*/
unsigned char primary; /* 总线号 */
unsigned char secondary; /* 次总线号 */
unsigned char subordinate; /* 最大总线号 */
unsigned char max_bus_speed; /* enum pci_bus_speed */
unsigned char cur_bus_speed; /* enum pci_bus_speed */


char name[48];


unsigned short  bridge_ctl; /* manage NO_ISA/FBB/et al behaviors */
pci_bus_flags_t bus_flags; /* Inherited by child busses */
struct device *bridge;
struct device dev;
struct bin_attribute *legacy_io; /* legacy I/O for this bus */
struct bin_attribute *legacy_mem; /* legacy mem */
unsigned int is_added:1;
};


3、pci_dev结构体(PCI设备结构体)
定义在include/linux/pci.h中
struct pci_dev {
struct list_head bus_list;
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值