code style

2017年7月17日 星期一

Device Tree(3)Interrupts and Interrupt Mapping

Properties for Interrupt Generating Devices
interrupt-parent 
在device tree中interrupt controller有一個interrupt-parent 屬性,這個用來表示interrupt之間的路由關係,它用一個phandle value表示其parent。各個interrupt controller的定義是不一樣的,有的用3個u32,有的用4個。

interrupt tree 有可能和device tree是不一樣的。
這個node本身如果沒有這interrupt-parent 的話,就是用parent node的interrupt-parent。

interrupts
一個能產生中斷的設備,必須要定義interrups這屬性。這裡指的就是設備產生的interrupt,描述interrupt source的又叫interrupt specifier。使用<u32>來表示。

例:
interrupts = <0xA 8>;
表示interrupt number:0xA, level/sense:8

Properties for Interrupt Controllers
interrupt-controller
Value type:<empty>
用來表示interrupt-controller

interrupt-cells
Value type:<u32>
用來表示interrupt-controller需要幾個單位做interrupt specifier

 Interrupt Nexus Properties
一個interrupt nexus node應該要有一個#interrupt-cells 屬性
interrupt nexus
用來轉譯的,nexus的意思就是"連結",連結上下兩個domains的那個node。
例:
PCI controller device node定義了一個nexus node,用來轉譯PCI interrupt namespace(INTA,INTB,etc.)到interrupt controller的IRQ。

interrupt關係圖示例


上圖中沒有interrupt-parent的open-pic為root,有3個doamin,2個nexus nodes。可轉換為下圖:


沒有留言:

張貼留言