2012-11-27 21 views
0

我剛開始閱讀設備驅動程序和讀取Start_kernal功能之前,會發生什麼是體系結構無關的代碼部分,從架構相關的部分。我想知道這是什麼start_Kernal程序之前actully發生調用在凱爾納的啓動時,我們稱之爲卑鄙的意思。在Linux中調用Start_Kernal環境

我感興趣的是知道什麼時候newtork設備或USB設備使用此體系結構相關的代碼進行交互時會發生什麼(認爲建築-dependen是第一軟件與硬件交互)。

是體系結構相關的代碼是responsibe像MAC地址,連接到系統的硬件設備的供應商ID等獲取信息?

回答

1

早期內核代碼集中在:

  • 初始化內存,建立MMU和虛擬存儲器;
  • 初始化時鐘和計時器;
  • 初始化中斷子系統;的關鍵GPIO引腳
  • 檢索架構相關的數據,例如
  • 配置ARM ATAG信息。

需要注意的是體系結構相關的初始化不會一下子發生。在內核啓動之後但在驅動程序初始化之前,可以調用一個電路板初始化函數。

newtork設備或USB設備與此架構相關的代碼

網絡和USB主機&小工具設備由設備驅動器表示被遠遠晚於早期內核代碼初始化交互。 「交互」是最小的,並且符合建立的內核驅動程序接口。應編寫設備驅動程序以刪除所有板特定的依賴關係,並用配置選項替換它們。如果不是,那麼那個驅動代碼應該在平臺mach源代碼目錄下,而不是在驅動程序的目錄下。

是體系結構相關的代碼是responsibe用於獲取信息等...

MAC地址可在內核命令行(由設備驅動程序被傳遞,或者通過安裝一個引導程序檢索)。
供應商ID,線路板ID和其它數據可以是體系結構相關的代碼。對於ARM,內核在ATAGs的內存緩衝區中接收此信息。