PCI 设备枚举流程

本文详细介绍了PCI设备枚举的过程,从PCI子系统注册、设备树配置、平台设备与驱动匹配到驱动程序的调用。通过内核初始化函数自动调用pci_driver_init,PCI控制器的设备树节点转化为platform device,然后匹配并执行对应的driver_probe。在设备枚举过程中,最终调用pci_device_probe,加载设备驱动。
摘要由CSDN通过智能技术生成

//0、pci子系统首先注册pci bus
struct bus_type pci_bus_type = {
.name = “pci”,
.match = pci_bus_match,
.uevent = pci_uevent,
.probe = pci_device_probe,
.remove = pci_device_remove,
.shutdown = pci_device_shutdown,
.dev_groups = pci_dev_groups,
.bus_groups = pci_bus_groups,
.drv_groups = pci_drv_groups,
.pm = PCI_PM_OPS_PTR,
.num_vf = pci_bus_num_vf,
};
EXPORT_SYMBOL(pci_bus_type);

static int __init pci_driver_init(void)
{
return bus_register(&pci_bus_type);
}
postcore_initcall(pci_driver_init);/* 将初始化函数放到内核代码特殊段,内核启动将会自动调用初始化函数 */

/* 设备的枚举流程和设备的驱动的调用过程 */
//1、pci控制器 设备树节点将会配转换成platform device
pcie@3400000 {
compatible = “fsl,ls1021a-pcie”, “snps,dw-pcie”;


//2、pci控制器匹配platform driver
static const struct of_device_id ls_pcie_of_m

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值