ubuntu 在 R40e 上 還有 Debian 在 Sempron 2600 上

2012年11月27日 星期二

platform-device, plat-form-drier : part II

以前寫過一篇: platform-device, platform-driver.

device 就是 hardware,
driver 就是 software。

hardware 是說 memory map 位址區域, irq number。
software 是說 裝置的啟動,偵測,操作,移除 等等動作。


系統上,同一個裝置可以有很多個,
例如:多組 eMMC port。

因為eMMC 的動作都一樣,所以只要寫一組 platform-driver 的 code。
但是每一個 eMMC port mapping 的 DMA, memory map region, irq, hardware detect pin 都不一樣。 所以每一個 eMMC port 都要有一個 platform-device。

platform-device 和 platform-driver 利用 name 來關連,
註冊時,kernel 會比較 name 字串。

所以當 platform-driver 註冊時,kernel 會找是不是有.name 的 device 已經註冊,
如果有找到,就呼叫 platform-driver 的 probe function。
並且把找到的 platform-device 當作參數傳給 probe( )。

沒有留言:

標籤

網誌存檔