設(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)行匹配;
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。
舉報投訴
相關(guān)推薦
lspci是列出所有的硬件信息,包括已經(jīng)安裝了驅(qū)動還是沒有安裝驅(qū)動的硬件設(shè)備,因?yàn)楦鶕?jù)pci規(guī)范,只要改設(shè)備在pci總線上掛著,就可以讀到起
發(fā)表于 07-23 07:25
文章目錄一、回顧二、設(shè)備樹中GIC中斷控制器節(jié)點(diǎn)三、外設(shè)中斷控制器節(jié)點(diǎn)三、其他設(shè)備使用中斷節(jié)點(diǎn)1、中斷類型四、常用函數(shù)1、request_irq()函數(shù)(1
發(fā)表于 01-10 07:37
同一個中斷號。2、寄存器banking對于同一個gic寄存器地址,在不同的情況下,訪問的是不同的寄存器。例如在secure和non-secure狀態(tài)下,訪問同一個gic寄存器,其實(shí)是訪問的不同的gic的寄存器。具體,更多的
發(fā)表于 04-06 10:15
這個文檔簡單介紹了如何在 H-FLASHER 中添加NAND FLASH 驅(qū)動。基于這個文檔,用戶可以根據(jù) 自己的實(shí)際需求修改已有的NAND FLASH 驅(qū)動程序,或添加新的NAND
發(fā)表于 04-01 10:21
?0次下載
下面以添加一個字符設(shè)備為例,說明添加設(shè)備驅(qū)動的過程.塊設(shè)備與網(wǎng)絡(luò)設(shè)備可以比照處理. 0.原文件放
發(fā)表于 10-13 15:29
?67次下載
本文分析了ARM-Linux下IIC總線及其設(shè)備驅(qū)動的層次結(jié)構(gòu),指出了IIC設(shè)備添加與驅(qū)動實(shí)現(xiàn)的途徑,詳細(xì)闡述了如何采用通用i2c-dev.
發(fā)表于 06-13 14:37
?57次下載
本文檔內(nèi)容介紹了基于GIC的物聯(lián)網(wǎng)的應(yīng)用方案,供參閱。
發(fā)表于 09-18 15:46
?0次下載
地磁感應(yīng)電流(geomagnetically induced currents,GIC)引起變壓器半波飽和對電力系統(tǒng)的安全運(yùn)行產(chǎn)生不利影響,甚至引發(fā)大面積停電事故。為了有效治理GIC對大規(guī)模電力系統(tǒng)
發(fā)表于 01-04 17:03
?7次下載
GIC硬件原理 ARM公司提供了一個通用的中斷控制器 GIC(Generic Interrupt Controller) , GIC 的版本包括 V1 ~ V4 ,由于本人使用的SoC中的中斷控制器
發(fā)表于 09-28 14:58
?1756次閱讀
匹配設(shè)備; 在GIC驅(qū)動程序中,使用 IRQCHIP_DECLARE 宏來聲明結(jié)構(gòu)信息,包括 compatible 字段和回調(diào)函數(shù),該宏會將這個結(jié)構(gòu)放置到 __irqchip_of_t
發(fā)表于 09-28 15:09
?466次閱讀
數(shù)據(jù)結(jié)構(gòu)分析 先來張圖: GIC驅(qū)動中,使用 struct gic_chip_data 結(jié)構(gòu)體來描述GIC控制器的信息,整個
發(fā)表于 09-28 15:18
?513次閱讀
電子發(fā)燒友網(wǎng)站提供《ARM-Linux-IIC設(shè)備的添加與驅(qū)動實(shí)現(xiàn).pdf》資料免費(fèi)下載
發(fā)表于 10-24 09:55
?0次下載
為了適應(yīng)大規(guī)模的SoC設(shè)計,GIC-600被設(shè)計成分布式IP。 所謂分布式,GIC-600由幾種組件構(gòu)成,每個組件可以跟其它相關(guān)模塊在物理設(shè)計上擺放在一起,并與其擁有共同的電源域;組件之間通過片上網(wǎng)
發(fā)表于 11-07 17:19
?633次閱讀
。用于gic的IRI組件,和cpu interface之間,傳輸信息。 ? ?distributor,redistributor和ITS,統(tǒng)稱為IRI組件(interrupt routing infrastructure)。 ? ?gi
發(fā)表于 11-07 18:07
?548次閱讀
添加設(shè)備驅(qū)動是使用LabVIEW進(jìn)行設(shè)備控制和數(shù)據(jù)采集的關(guān)鍵步驟之一。本文將向您介紹如何在LabVIEW中添加設(shè)備驅(qū)動程序。 在開始之前,您
發(fā)表于 01-02 16:10
?2027次閱讀
評論