arm GIC介绍之三

本文详细介绍了ARM GIC_v3的初始化过程,包括Distributor、Redistributor和CPU Interface的配置。在启动时,首先关闭Distributor,然后设置SPI发送目标为NS-G1。接着,配置Redistributor,激活CPU Interface。在KERNEL中,通过init_IRQ和gic_of_init进行进一步的初始化,建立硬件IRQ与软件IRQ的映射关系,并为IPI消息设置句柄。最后,针对多CPU系统,说明了如何为SECONDARY CPU进行配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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安全世界里面先启动,这个并不妨碍对流程的认识:
这里写图片描述
一个ARM设备在启动时候,首先上电,之后会从片内的BOOT ROM获取到启动初始代码,在这里做基本的芯片初始化,而后去
加载PRE-LOADER部分,这部分在

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值