linux 比较新的设备树 详解 device tree
首先,設備樹是一種數據結構,他用來描述一個系統的硬件組織,比如說一個BBB開發板是由哪些模塊組成的。既然如此,如何描述一個組織呢?分為兩部分。
這是通過常理就能推斷出來的。
然后根據這兩條常識,結合設備樹知識可以知道,dts文件中的每個節點代表一個組件,整個設備樹的層級關系也就是各個組件的層次關系。
二、各個組件的描述每個組件的信息通過屬性property來描述,每個屬性都有對應的值value。
2.1 屬性枚舉- compatible?
兼容性描述,驅動根據這個匹配設備。
2.1.1 地址相關屬性
reg?
設備寄存器地址描述,形式為???address1 length1 [address2 length2] …???,可以看到每個元組代表一個寄存器范圍。這也是我們希望看到的。#address-cells?
表示用幾個32bit單元來表示地址。如果是2,則第一個表示片選,第二個表示相對于片選基址的偏移。#size-cells?
為0或1。0表示沒有地址范圍,即只有一個地址;1表示用一個32bit數值表示range。ranges?
explicitly show 總線設備的地址映射,比如說bus掛了一個i2c控制器,bus節點通過range屬性告訴cpu訪問i2c控制器的地址。
2.1.2 中斷相關屬性
interrupt-controller?
一個空屬性,用來表示該設備接受中斷信號。#interrupt-cells?
中斷控制器的屬性,表示每個interrupt specifier中有多少個單元interrupt-parent?
表示連接的中斷控制器interrupts?
表示各個interrupt specifier,每個中斷輸出信號對應一個interrupt specifier。中斷線編號,中斷觸發信號是高有效or低有效or邊沿觸發or電平觸發的信息都編碼在interrupt specifier中。
2.1.3 設備特有屬性
比如某些廠商自己定義的兼容屬性等,除了不能和已有的名字沖突外,還都要給出相應的binding文檔,指出特定的兼容屬性是什么意思,需要定義哪些屬性,可能需要哪些子節點,代表什么設備。
三、特殊節點 ? 3.1 aliases節點給節點添加別名,相當于加了一個string屬性,保存對應節點的路徑。操作系統就可以通過這個屬性來訪問對應設備。
3.2 chosen節點不代表實際的設備,用于firmware和OS之間傳遞數據。
總結
以上是生活随笔為你收集整理的linux 比较新的设备树 详解 device tree的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux cpuidle framew
- 下一篇: Linux 设备树device tree