GIC_V3 初始化设置
在GIC 介绍之一和二中,可以看到GIC的逻辑结构和硬件框架。
那么在初始化时候,需要将各个组件配置起来,Interrupt Controller中的Distributor,Redistributor,CPU Interface需要按照不同顺序配置。既然Distributor是所有CPU都可以对应的,那么这个只要在第一个CPU启动时配置就可以了,对于Redistributor和CPU Interface是PER-CPU对应的,所以,在SECONDARY CPU启动时候需要配置各自的组件。这也是下图中所表示的:
我们从Distributor初始化开始。
GIC的初始化主要是通过配置其对应的寄存器来实现。我们介绍过
Distributor上的主要寄存器,实际上,在实现中,也就是通过配置这些Registers来实现的。
我们参考的代码基于X20,并且首先在Ex3的ATF安全世界里面先启动,这个并不妨碍对流程的认识: