溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

PCI設備的枚舉流程和PCI設備驅(qū)動的調(diào)用過程

發(fā)布時間:2020-06-05 10:38:28 來源:億速云 閱讀:1565 作者:Leah 欄目:系統(tǒng)運維

 這篇文章主要介紹了PCI設備的枚舉流程和PCI設備驅(qū)動的調(diào)用過程,具有一定借鑒價值,需要的朋友可以參考下。如下資料是關(guān)于實現(xiàn)過程代碼。   

//0、pci子系統(tǒng)首先注冊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);/* 將初始化函數(shù)放到內(nèi)核代碼特殊段,內(nèi)核啟動將會自動調(diào)用初始化函數(shù) */

/* 設備的枚舉流程和設備的驅(qū)動的調(diào)用過程 */
//1、pci控制器 設備樹節(jié)點將會配轉(zhuǎn)換成platform device
    	pcie@3400000 {
			compatible = "fsl,ls1021a-pcie", "snps,dw-pcie";
			....
		     }		
//2、pci控制器匹配platform driver
static const struct of_device_id ls_pcie_of_match[] = {
	{ .compatible = "fsl,ls1021a-pcie", .data = &ls1021_drvdata },
	..
	}
static struct platform_driver ls_pcie_driver = {
	.driver = {
		.name = "layerscape-pcie",
		.of_match_table = ls_pcie_of_match,
		.suppress_bind_attrs = true,
	},
};
builtin_platform_driver_probe(ls_pcie_driver, ls_pcie_probe);
//3、執(zhí)行pci控制器驅(qū)動函數(shù)ls_pcie_probe函數(shù)將被調(diào)用,直到pci_bus_type.pci_device_probe被調(diào)用
        ls_add_pcie_port
            pci_bus_add_devices
                pci_bus_add_device
                    device_attach
                        __device_attach
                            __device_attach_driver
                                driver_probe_device
                                    really_probe
                                        dev->bus->probe//將調(diào)用pci_bus_type.pci_device_probe
//4、枚舉pci設備調(diào)用設備驅(qū)動
    pci_device_probe
        __pci_device_probe
            pci_call_probe
               local_pci_probe
                   pci_drv->probe//設備的驅(qū)動的probe將被調(diào)用。

看完上述內(nèi)容,你們對PCI設備的枚舉流程和PCI設備驅(qū)動的調(diào)用過程有進一步的了解嗎?如果還想學到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI