//mdio
在drivers/net/ethernet/hieth-gmac/下面有乙個檔案higmac.c
裡面實現了乙個platform框架,並且建立了乙個雜項裝置.
ret =
platform_device_register
(&higmac_platform_device);if
(ret)
ret =
platform_driver_register
(&higmac_dev_driver);if
(ret)
ret =
misc_register
(&gmac_dev);if
(ret)
else
miscdev_registered =
1;
//platform device端
static
struct platform_device higmac_platform_device =
,.num_resources =
array_size
(higmac_resources)
,.resource = higmac_resources,
};
//platform driver端
static
struct platform_driver higmac_dev_driver =,}
;
//雜項裝置
static
struct miscdevice gmac_dev =
;
看driver 端的probe函式,驅動一經插入,就開始執行
/*1. init glb adapter*/
/*2. 填充id netdev 和 higmac_board_info*/
/*3. init hw controller*/
/*4. phy reset*/
/*5. fwd_setup*/
/*6. init hw desc queue*/
/*7. register mdio bus*/
/*8. connect phy*/
/*9. request irq*/
/*10. register netdevice*/
MDIO匯流排相關 1
這裡主要是driver端 在drivers net phy裡面針對某一品牌的網路交換裝置有乙個檔案 例如 smsc 有乙個smsc.c 該品牌有多個裝置.每個裝置對應乙個結構體,因此組成了乙個結構體陣列 陣列元素型別 struct phy driver 陣列元素舉例 針對陣列中的每個元素都會註冊一次...
MDIO匯流排相關 3
這裡主要是匹配 匯流排匹配 struct bus type mdio bus type 從上面的結構體可以看出,linux中有多種匯流排型別.估計是從來匹配的.例如platform的 struct bus type platform bus type 可以看出和猜想一致 接下來看一下我們關心的匹配的...
(八)4 匯流排熱插拔
一 熱插拔的實現 我不知道在這裡用熱插拔這樣的名字是否合適,在之前的 需要我自己手動去載入驅動和裝置的模組,但在現實的情況下,一般是當裝置一被插入,系統自己會註冊裝置,並呼叫合適的驅動。所以,接下來我要實現的是,在載入了usb匯流排和usb滑鼠驅動的前提下,當有usb滑鼠插入,系統自己進行裝置的操作...