phy device的新增流程,了解linux驅動中的 驅動、裝置、匯流排 模型。
[cpp]view plain
copy
print?
87 int mdiobus_register(struct mii_bus *bus)
88
124 }
125 }
// 省略。。。。。。
138 }
phydev = mdiobus_scan(bus, i) 這裡的scan,並不僅僅是掃瞄,而且還包括建立。mdiobus_scan()主要呼叫了get_phy_device()和phy_device_register()。get_phy_device()裡面主要有get_phy_id() 和 phy_device_create() 。 函式int get_phy_id()通過mii bus匯流排,讀暫存器mii_physid1(高16位)、mii_physid2(低16位)得到。phy_device_create() 建立了乙個phy裝置,完成了一些speed、duplex 、addr、phy_id等等預設初始化。看一下函式定義
[cpp]view plain
copy
print?
182 struct phy_device *mdiobus_scan(struct mii_bus *bus, int addr)
183
phy_device_register() 呼叫device_register()
[cpp]view plain
copy
print?
251 int phy_device_register(struct phy_device *phydev)
252
device_register()呼叫 device_add()
1040 int device_register(struct device *dev)
1041
device_add()東西比較多,以後再看。
[cpp]view plain
copy
print?
891 int device_add(struct device *dev)
892
// 省略。。。。。。
955 error = device_add_class_symlinks(dev);
956 if (error)
957 goto symlinkerror;
958 error = device_add_attrs(dev);
959 if (error)
960 goto attrserror;
961 error = bus_add_device(dev);
962 if (error)
963 goto buserror;
964 error = dpm_sysfs_add(dev);
965 if (error)
966 goto dpmerror;
967 device_pm_add(dev);
// 省略。。。。。。
1023 }
由此可見,phy裝置的新增,是在註冊mdio匯流排的時候。
簡單地,phy device裝置的新增流程:mdiobus_register() ----> mdiobus_scan() ----> phy_device_register() ----> device_register() ----> device_add() 。
platform device 的新增流程:platform_add_devices() ----> device_add()
原文見:
Apache新增ssl的流程
apache新增 ssl的流程 1.首先保證安裝了 openssl 並且能夠在在終端執行它。2.為你的 apache 三倍 des 加密,pem 格式 建立乙個 rsa私鑰。openssl genrsa des3 out server.key 1024 請將你的 server.key 檔案備份,並且...
zabbix新增主機流程
1新增host 以及新增host group 2鏈結到組的item模板 3看需求disable 不需要的item項 4檢視latest date 5 trigger看需求,關掉不需要的 6新增user以及郵件 給supper admin許可權,否則無法收到郵件 7配置action,盡量clone a...
數字流程中新增PAD流程總結
想寫這個內容大概是在半個月之前吧,苦於沒有比較系統的介紹pad的放置的教程,一直在到處收集摸索,現在把自己的經驗大致總結一下 首先闡明一點,這次放置的pad只是應專案需要,在晶元外面新增一些備用的框框給後端使用,因此具體到手動新增時,不知道會不會有什麼問題 1.首先,可以將pad分為兩類,一種是類似...