linux 裝置樹和atags

2021-07-27 12:58:05 字數 527 閱讀 6946

linux接受引數有兩種方式。

一種是atags

一種是dtb

atags是傳統的方式,傳遞命令列等等資訊。

dtb是傳遞了更多的硬體資訊。

atag

通過啟動將各種引數打包成atag_tag標記傳遞資訊。

而dtb則是通過可描述的dtsi編譯成dtb塊。

將dtb和atag放到記憶體當中。通過暫存器r2引數傳遞位址給linuxkernel進行解析。

但是這個操作需要手工完成。也就是編譯好image以後。

通過cat zimage ***.dtb >zimage-dtb來實現。

在解壓核心的操作時會將r2(這裡的r8最終將會賦值給r2)的指標直接修改為dtb的位址。

如果同時使用atags和dtb。想要兩個一起使用,就還要定義config_arm_atag_dtb_compat實現相容性處理。

解壓**會使用atags_to_fdt將atags轉變成fdt和image末尾的fdt合併。常見的是cmdline傳遞使用atag,硬體資訊使用dtb實現。

linux裝置樹(裝置驅動)

一 裝置樹的簡單概念 裝置樹 由一系列的節點,屬性組成,節點本身包含子節點 屬性 成對出現的名稱和值 裝置樹可描述的資訊 原先大多數被編碼在核心中 它是電路板上cpu,匯流排,裝置組成的樹,bootloader會將這棵樹傳遞給核心,並根據它展開linux核心中的platform device等裝置。...

linux裝置樹及裝置新增

要點 裝置樹概念 傳統方式新增裝置 方式 arm mach mach s3c2410 mach s3c2440.c 在 裡面新增裝置描述符並有machine init時呼叫新增 新方式新增裝置 方式 增加獨有的檔案 dts 專門來描述硬體資訊,由系統最終解析出裝置樹,並一一新增入核心 有點 完全分離...

Linux裝置樹詳解

arm linux社群為什麼要引入裝置樹 linux之父linus torvalds閒來無事,在翻看arm linux 的時候,有一天終於忍不住了。他在2011年3月17日的arm linux郵件列表中說道 this whole arm thing is a f cking pain in the ...