关于zynq的中断述,在网上和datesheet中已经有详细的说明,但是在3.X的内核中,开始用dts来详细所有device的infor和source,这里就有关于中断号的指定,但是在关于zynq的dts文件中,我们看到指定的中断号不是datesheet上说所的Id,但是在proc下,我们可以看到每个设备的中断号对应关系:
zynq> more /proc/interrupts
CPU0 CPU1
27: 0 0 GIC 27 gt
29: 233 282 GIC 29 twd
35: 0 0 GIC 35 f800c000.ps7-ocmc
39: 2 0 GIC 39 f8007100.ps7-xadc
40: 0 0 GIC 40 f8007000.ps7-dev-cfg
43: 530 0 GIC 43 ttc_clockevent
45: 0 0 GIC 45 f8003000.ps7-dma
46: 0 0 GIC 46 f8003000.ps7-dma
47: 0 0 GIC 47 f8003000.ps7-dma
48: 0 0 GIC 48 f8003000.ps7-dma
49: 0 0 GIC 49 f8003000.ps7-dma
51: 10 0 GIC 51 e000d000.ps7-qspi
53: 0

本文介绍了Zynq设备在3.X内核中如何通过Device Tree Structure (dts)来定义中断信息。尽管dts中指定的中断号与数据手册上的ID不同,但在proc下可以观察到设备的正确中断号对应。以eth0为例,其在datesheet上的中断号为54,但在dts中被配置为SPI类型的中断,编号为22,由高电平触发。这个22实际上对应spi_status寄存器中的位置,eth0在spi_status_0的bit22,因此dts中设定为22;若在spi_status_1的22位,则中断号将是32+22=54。
最低0.47元/天 解锁文章

3247

被折叠的 条评论
为什么被折叠?



