設(shè)備信息添加
ARM平臺的設(shè)備信息,都是通過Device Tree設(shè)備樹來添加,設(shè)備樹信息放置在arch/arm64/boot/dts/下
下圖就是一個中斷控制器的設(shè)備樹信息:

compatible字段:用于與具體的驅(qū)動來進行匹配,比如圖片中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ù)的各個字段含義,詳細可以參考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ù)再找機會補充。來一張圖,先簡要介紹下關(guān)鍵路徑:

設(shè)備樹的節(jié)點信息,最終會變成device_node結(jié)構(gòu),在內(nèi)存中維持一個樹狀結(jié)構(gòu);
設(shè)備與驅(qū)動,會根據(jù)compatible字段進行匹配;
-
嵌入式
+關(guān)注
關(guān)注
5200文章
20457瀏覽量
334292 -
驅(qū)動
+關(guān)注
關(guān)注
12文章
1957瀏覽量
88561 -
Linux
+關(guān)注
關(guān)注
88文章
11764瀏覽量
219092 -
設(shè)備
+關(guān)注
關(guān)注
2文章
4837瀏覽量
73746
發(fā)布評論請先 登錄
linux查看設(shè)備信息和驅(qū)動安裝信息 精選資料分享
設(shè)備樹中GIC中斷控制器節(jié)點
ARM GIC(二)之中斷術(shù)語的定義
uclinux添加設(shè)備驅(qū)動的完整過程
ARM-Linux-IIC設(shè)備的添加與驅(qū)動實現(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ū)動實現(xiàn)
GIC-600的組件是如何連接的
GIC-600的內(nèi)部結(jié)構(gòu)組件
gic和ARM Core的連接
GIC驅(qū)動設(shè)備信息添加
評論