設(shè)備信息添加
ARM平臺的設(shè)備信息,都是通過Device Tree設(shè)備樹來添加,設(shè)備樹信息放置在arch/arm64/boot/dts/下
下圖就是一個中斷控制器的設(shè)備樹信息:
compatible字段:用于與具體的驅(qū)動來進(jìn)行匹配,比如圖片中arm, gic-400,可以根據(jù)這個名字去匹配對應(yīng)的驅(qū)動程序;
interrupt-cells字段:用于指定編碼一個中斷源所需要的單元個數(shù),這個值為3。比如在外設(shè)在設(shè)備樹中添加中斷信號時,通常能看到類似interrupts= 《0 234》;的信息,第一個單元0,表示的是中斷類型(1:PPI,0:SPI),第二個單元23表示的是中斷號,第三個單元4表示的是中斷觸發(fā)的類型;
reg字段:描述中斷控制器的地址信息以及地址范圍,比如圖片中分別制定了GIC Distributor(GICD)和GIC CPUInterface(GICC)的地址信息;
interrupt-controller字段:表示該設(shè)備是一個中斷控制器,外設(shè)可以連接在該中斷控制器上;
關(guān)于設(shè)備數(shù)的各個字段含義,詳細(xì)可以參考Documentation/devicetree/bindings下的對應(yīng)信息;
設(shè)備樹的信息,是怎么添加到系統(tǒng)中的呢?DeviceTree最終會編譯成dtb文件,并通過Uboot傳遞給內(nèi)核,在內(nèi)核啟動后會將dtb文件解析成device_node結(jié)構(gòu)。關(guān)于設(shè)備樹的相關(guān)知識,本文先不展開,后續(xù)再找機(jī)會補(bǔ)充。來一張圖,先簡要介紹下關(guān)鍵路徑:
設(shè)備樹的節(jié)點(diǎn)信息,最終會變成device_node結(jié)構(gòu),在內(nèi)存中維持一個樹狀結(jié)構(gòu);
設(shè)備與驅(qū)動,會根據(jù)compatible字段進(jìn)行匹配;
-
嵌入式
+關(guān)注
關(guān)注
5152文章
19676瀏覽量
317713 -
驅(qū)動
+關(guān)注
關(guān)注
12文章
1918瀏覽量
86951 -
Linux
+關(guān)注
關(guān)注
87文章
11511瀏覽量
213872 -
設(shè)備
+關(guān)注
關(guān)注
2文章
4668瀏覽量
71768
發(fā)布評論請先 登錄
linux查看設(shè)備信息和驅(qū)動安裝信息 精選資料分享
設(shè)備樹中GIC中斷控制器節(jié)點(diǎn)
ARM GIC(二)之中斷術(shù)語的定義
如何添加NandFlash驅(qū)動
uclinux添加設(shè)備驅(qū)動的完整過程
ARM-Linux-IIC設(shè)備的添加與驅(qū)動實(shí)現(xiàn)

基于GIC的物聯(lián)網(wǎng)的應(yīng)用方案

小電阻器對治理電網(wǎng)GIC的效果分析

GIC是什么意思 GIC硬件原理

GIC驅(qū)動的執(zhí)行流程是什么

Linux GIC驅(qū)動數(shù)據(jù)結(jié)構(gòu)分析

ARM-Linux-IIC設(shè)備的添加與驅(qū)動實(shí)現(xiàn)

GIC-600的組件是如何連接的

gic和ARM Core的連接

評論