1 GIC-400的经典分析,请参考大牛 linuxer ,他的文章,是需要分几个阶段和时间,
结合自己的问题,代码去参阅,才会有收获。具体的可以参考下面的连接。
当然其实最好的文档是,英文原版,大部分人是根据那个文档翻译和理解的。
linux kernel的中断子系统之(七):GIC代码分析
http://www.wowotech.net/irq_subsystem/gic_driver.html#comments
2 我们因为在做TEE下的GIC处理,所以侧重点是Secure 下的IRQ。
准备材料:
“蜗蜗科技”的GIC文档
ARM官网下载的资料 IHI0069C_gic_architecture_specification.pdf
ARM® Generic Interrupt Controller.pdf
3 系统框架
复杂的问题简单化,在还没有现如今多的外设时,以前的IRQ直接就可以连接到CPU,
这样一个IRQ对应一个CPU irqhandle,当然可以加入IRQ的抢资源,增加prio优先级。但
总的来说原理是一样的。 因此始终围绕中断的原理核心,去找对应GIC的资源和问题,中断
来源,怎么来(高低电平,边缘触发),怎么连,中断源是否具有唤醒CPU的能力;收到中断
后,如何处理,优先谁处理,在多个CPU的情况下,发给哪个CPU处理。另外增加了中转IC后,
这个IC本身也需要编程处理,这都是多出IRQ出来的事情。然后在ARM增加了TEE架构后,多
出了Secure IRQ等。
4. 根据这些概念和问题,你就一个一个去找答案,比如IRQ number的划分。具体就不细说。
5. 跟Secrue IRQ相关的几个东西, Group 0, Group 1是如何设置?
从代码和注释,理解一下,Group 0 / 1