b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

系统的概念 GIC代码分析(20)

电脑杂谈  发布时间:2018-02-14 06:28:57  来源:网络整理

上面描述的都是BSP的初始化过程,具体包括:

……

gic_dist_init(gic);------初始化GIC的Distributor

gic_cpu_init(gic);------初始化BSP的CPU interface

gic_pm_init(gic);------初始化GIC的Power management

……

对于GIC的Distributor和Power management,这两部分是全局性的,BSP执行初始化一次就OK了。对于CPU interface,每个processor负责初始化自己的连接的那个CPU interface HW block。我们用下面这个图片来描述这个过程:

booting

假设CPUx被选定为BSP,那么第三章描述的初始化过程在该CPU上欢畅的执行。这时候,被初始化的GIC硬件包括:root GIC的Distributor、root GIC CPU Interface x(连接BSP的那个CPU interface)以及其他的级联的非root GIC(上图中绿色block,当然,我偷懒,没有画non-root GIC)。

BSP初始化完成之后,各个其他的CPU运行起来,会发送CPU_STARTING消息给关注该消息的模块。毫无疑问,GIC driver模块当然要关注这样的消息,在初始化过程中会注册callback函数如下:

register_cpu_notifier(&gic_cpu_notifier);

GIC相关的回调函数定义如下:

static struct notifier_block gic_cpu_notifier = {

.notifier_call = gic_secondary_init,

.priority = 100,

};

static int gic_secondary_init(struct notifier_block *nfb, unsigned long action, void *hcpu)

{

if (action == CPU_STARTING || action == CPU_STARTING_FROZEN)

gic_cpu_init(&gic_data[0]);---------初始化那些非BSP的CPU interface

return NOTIFY_OK;

}

因此,当non-BSP booting up的时候,发送CPU_STARTING消息,调用GIC的callback函数,对上图中的紫色的CPU Interface HW block进行初始化,这样,就完成了全部GIC硬件的初始化过程。


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/shumachanpin/article-76887-20.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    • 钟莹莹
      钟莹莹

      但是质监局用假货测试

    • 吕许营
      吕许营

      因为下—次来的胡朋狗友二流子比这一次多的多

    • 吕鑫
      吕鑫

      什么也不要说了

    每日福利
    热点图片
    拼命载入中...