2012-08-16 36 views
0

我想支持兩個類似的硬件平臺和一個嵌入式Linux內核。內核是否支持多個struct machine_desc結構?此結構的實例通常通過使用板的C定義文件中的MACHINE_STARTMACHINE_END宏來定義。定義多個struct machine_desc結構

有一種機制將MACH_TYPE從引導加載程序傳遞到內核,因此內核可以支持多個機器似乎是有意義的。有什麼特別的事情需要完成嗎?

回答

0

我花了一些時間看內核代碼(版本2.6.33),ARM架構支持同一內核中的多臺機器。但是我不確定其他體系結構是否可以。下面是它如何工作的

  1. 對於每個板類型由內核支持,相應的CONFIG_MACH_TYPE_*值需要在配置文件中進行設置。內核在生成時將根據源包含的mach-types版本生成所有機器宏。機器定義的源代碼也將被編譯到內核中。
  2. 啓動引導加載程序時,需要在啓動內核之前在寄存器r1中放置相應的機器類型編號(即最後一列mach-types中的編號)。
  3. 在初始化期間,內核將機器類型編號從寄存器r1傳遞到__lookup_machine_type以查找機器定義並初始化電路板。
相關問題